Conditional syntactic specification

In this paper, the shortcomings of Backus Naur specification of the syntactic properties of programming languages are investigated and a method for the specification of context-sensitive properties is suggested. Based on the notation of the tree structures of the Vienna Definition Language [Lu 1], samples of descriptions of context-sensitive grammars are presented as sets of conditionals which operate over the derivation trees of context-free specifications in BNF grammars to eliminate the extra-lingual features. The method is also extended to provide a syntactic specification of the default attributes of a language by the description of modifications which are to be made to the parsed form (syntactic tree) of instances of the language. For the purposes of example, a mini-language (ML 5/2) is presented. This paper exemplifies the problems of parameter passing and provides examples of the context-sensitive conditions of matching procedure calls and their declarations as well as matching parameters and their corresponding arguments.