Some difficulties with abstract and concrete syntax
- 22 Downloads
Abstract syntax is a useful mechanism in defining the semantics of programming languages as it relieves the semantic definition from text handling and syntactic analysis and shows clearly the semantically essential parts of program texts. Abstract syntax is usually required to have a high quality semantic content and so a straightforward forming of abstract syntax from a concrete one may lead to many errors. This paper introduces three error-prone constructs: parentheses that have an uncommon meaning, ambiguous concrete syntax, and empty lists. The first two errors originate in problems with concrete syntax while the last one is due to a weakness of some formalisms for abstract syntax.
KeywordsComputational Mathematic Programming Language Semantic Content Abstract Syntax Syntactic Analysis
Unable to display preview. Download preview PDF.
- 1.P. W. Abrahams,A Final Solution to the Dangling else of ALGOL 60 and Related Languages, CACM 9,9 (1966), 679–682.Google Scholar
- 2.A. Hassit, J. W. Lageschulte and L. E. Lyon,Implementation of a High Level Language Machine, CACM 16,4 (1973), 199–212.Google Scholar
- 3.P. Lauer,Formal Definition of Algol 60, IBM Lab. Vienna, TR 25.088, 1968.Google Scholar
- 4.P. Lucas, P. Lauer and H. Stigleitner,Method and Notation for the Formal Definition of Programming Languages, IBM Lab. Vienna, TR 25.087, 1968.Google Scholar
- 5.J. McCarthy,Towards a Mathematical Science of Computation, Information Processing 1962 (ed. C. M. Popplewell), North-Holland, 1963, 21–28.Google Scholar
- 6.P. Naur (ed.),Revised Report on the Algorithmic Language ALGOL 60, CACM 6,1 (1963), 1–17.Google Scholar
- 7.A. Ollongren,Definition of Programming Languages by Interpreting Automata, Academic Press, 1974.Google Scholar
- 8.P. Wegner,The Vienna Definition Language, Computing Surveys 4,1 (1972), 5–63.Google Scholar