Home > Software Design and Development > Core > Software Development Cycle > Metalanguages
| Example | Data type | Legal or illegal | Reason |
|---|---|---|---|
| A | letter | Legal | “A” is defined as a letter |
| 7 | integer | Legal | An integer may be defined as a single digit |
| 77 | integer | Legal | An integer may be defined as a digit followed by an integer, which may be… (and so on) |
| 77 | signed integer | Illegal | A signed integer must begin with “+” or “-” |
| -77 | integer | Illegal | An integer must begin with a digit |
| -77 | signed integer | Legal | Starts with “-” and followed by an integer |
| a1 | address | Illegal | “a” is not defined as a letter |
| AB6 | address | Illegal | An address is defined as a single letter, followed by an integer |
| C108 | address | Legal | C108 is a letter followed by a legal integer |
| D | address | Illegal | An address must contain an integer |
| D-1 | address | Illegal | An address must contain an integer but not a signed integer |
| Example | Data type | Legal or illegal | Reason |
|---|---|---|---|
| a | letter | Legal | “a” is defined as a letter |
| t | letter | Illegal | “t” is NOT defined as a letter |
| b222 | identifier | Legal | Matches the syntax of an identifier |
| -22 | number | Legal | Matches the syntax of a number |
| -12.33 | number | Legal | Matches the syntax of a number |
| 21. | Illegal | A number must have a at least one digit after a “.” | |
| a:="a2+3 | expression | Legal | Matches the syntax of an expression |
| b1:="22+12-3 | expression | Legal | Matches the syntax of an expression |
| b2:="14+2 | Illegal | 4 is not a digit, if 4 was defined as a digit this would be an legal expression |
| selection | Legal or Illegal | Reason |
|---|---|---|
| IF(p13>177, CALLA, CALLB) | Legal | No problem. 177 is a legal integer |
| IF(a0="p3," CALLA , CALLB) | Illegal | “="”" is not defined as a logical operator |
| If(p13<p12, CALLA CALLB) | Illegal | Statement must begin with “IF” and "," is missing between CALLA and CALLB |
digit = “1” |” 2” |” 3”
letter = “a” |” b” |”c”
operator = “+” |” –“
identifier = letter {letter | digit}
number = [“-“] digit {digit} [“.”digit { digit } ]
expression ="identifier" “:="”" (identifier | number) {operator (identifier| number)}




