Skip to Main Content
This paper introduces a formalism for the syntactic description of programming languages. While our work clearly borrows from existing, well-known formalisms such as EBNF, its primary contribution is to provide a notation that can serve both as a concise, formal linguistic description as well as input to a parser generator. This is achieved through the use of notational conventions in place of excessive markup. These conventions are fully defined and enable a syntax to remain concise without relying on informal descriptions. Benefits of the notation include a clear separation of microsyntax and macrosyntax - a trait curiously lacking from many published programming language standards. We also provide a description of the formalism using its own notation.