|
|
Properties of Good Metalanguages
A good metalanguage should be easy-to-learn, easy-to-read, and easy-to-use. It should be appropriate. For example, if the metalanguage is to describe tokens, it should be close to the notation for regular expressions.
A metalanguage should be "integrated", that is, have similar notations for functions throughout the different parts of the tool. For example, "=" might be used as the assignment operator for the regular expressions part, the context-free part, and the semantic function part. LEX and YACC use "%%" as separators between the different sections for all parts of the metalanguage.
Like programming languages themselves, the metalanguage should not contain constructs that are easily error-prone such as comments that extend over line boundaries.
A good metalanguage is difficult to define and probably a matter of taste. This section has mentioned properties that all metalanguages should have.
|