Sdf Requirements

Sdf
The design of SDF is the result of a number of requirements. This page discusses these requirements.

Completeness of Syntax Definition

All aspects of the syntax of a language are defined in one specification and in one formalism. This entails that lexical syntax, context-free syntax and disambiguation information are all specified in the same formalism.

In contrast to LEX/YACC where lexical and context-free syntax are defined in separate formalisms.

Orthogonality

Features that are available for some type of expression in one context should be available for that type of expression in another context as well and should mean the same thing.

For example, the iteration construct {A B}* should mean the same thing when used in lexical syntax or context-free syntax.

Modular

It should be possible to extend a syntax definition with additional productions, i.e., syntax definitions should be modular.

Expressive

Frequently occurring syntax patterns such as lists and optionals should not have to be defined every time. In other words SDF should support the common extensions of Extended BNF.

Extensible

The formalism itself should be extensible. It should possible to add some new abstractions to the formalism.