Kelly BauerMeta Languages
Why?	Describes the syntax of a computer languageRules that govern the arrangement of elements in a languageeg. The ran cat		OR		The cat ran
Why not just learn the language?Programming languages are very complex. You cant possibly know every way to do everything that you want. The likelihood is that you won’t program in the language you learn.
Why not just learn the language?Programming languages are very complex. You cant possibly know every way to do everything that you want. The likelihood is that you won’t program in the language you learn. Allows language specifications be understood by programmers and allows more learnability between languages
2 Basic Forms		Railroad diagram (aka syntax structure diagrams)BNF/EBNF
Railroad diagrams
ElementsAllowable Paths
Pre defined langauge elements	Eg, letter, sentence, program, variable nameVariable
Fixed Elements	Reserved words, eg, Dim, -+, 0, 1DimAs
The elements can be combined to give optionsEg,  A Boolean ConstantTF
Or to repeat elementsEg,  A wordLetter
And these can then be combinedEg, a number that can be either positive or negativeDigit_
Textbook	Pg 168 Defines the Winston language in railroad diagramsIs the following legitimate conditionsAbcd  =  +99
Abcd  =  +99Abcd is a legitimate identifier, because it starts with an uppercase followed by a number of lower case+99 is a legitimate constant because it is a negative followed by a number of digitsThe statement follows the correct order of  		Identifier condition constantDavis, Sam (2008) Software Design and Development: The Preliminary Course, Parramatta Education Centre, Sydney
Abcd  =  +99Abcd is a legitimate identifier, because it starts with an uppercase followed by a number of lower case+99 is a legitimate constant because it is a negative followed by a number of digitsThe statement follows the correct order of  		Identifier condition constant
Complete 2nd activity on pg 168TEXT ACTIVITY
an example
In Visual Basic	Construct a railroad diagram to describe a best practice, legal variable declaration. Should follow the following structure: Dim Public or Private Variable Name As Data Type
PublicDimVariableAsData TypePrivateFrom this, what needs to be further defined?
Data type	In Visual Basic, this can be Boolean, Byte, Char, Date, Time, Decimal, Double, Int, Long, Object, Short, Single
SingleShortBooleanByteCharDateTimeDecimalDoubleIntLong
Variables in VBMust begin with an uppercase letterCan be lower or upper case or digits after first letter
Upper CaseLowerCaseUpperCaseDigit
0987654321
Images from	http://www.trs-80.com/trs80-mag-books.htmhttp://homepages.cwi.nl/~dik/english/codes/punched.htmlhttp://www.borislavdopudja.net/en/writings/cheating_google/

Meta Languages Railroad Diagrams