Recognition of generative languages
Generative languages are a comprehensive class which includes so-called extensible programming languages. Our formal descriptions of syntax and semantics of these languages differ from traditional approaches in that any kind of declaration is viewed as a language extension. As a consequence, the concept of types in programming languages is handled in a simple and conceptually satisfactory fashion. In this paper we show how recursive-descent parsing can be adapted for generative languages.
New powerful languages may be described this way and implementations of traditional languages can be improved.
KeywordsLanguage Description Generative Language Denotational Semantic Generative Grammar Semantic Component
Unable to display preview. Download preview PDF.
- Aho, A.V., Johnson, S.C., and Ullman, J.D., Deterministic Parsing of Ambiguous Grammars, Communications of the ACM 8, pp. 441–452 (1975).Google Scholar
- Aho, A.V. and Ullman, J.D., Principles of Compiler Design, Addison-Wesley, Reading, Massachusetts (1977).Google Scholar
- Christiansen, H. Syntax, semantics, and implementation strategies for programming languages with powerful abstraction mechanisms, Proc. 18th Hawaii International Conference on System Sciences, pp. 57–66 (1985).Google Scholar
- Christiansen, H., Parsing and compilation of generative languages, Datalogiske skrifter 3, Roskilde University Centre (1986).Google Scholar
- Christiansen, H. and Jones, N.D., Control Flow Treatment in a Simple Semantics-Directed Compiler Generator, Proc. Formal Description of Programming Concepts II, pp. 73–97, North-Holland, Amsterdam (1983).Google Scholar
- Church, A., The Calculi of Lambda-Conversions, Annals of Mathematical Studies 6, Princeton Univ. Press, Princeton, N.J. (1951).Google Scholar
- Goguen, J.A., Thatcher, J.W., and Wagner, E.G., An initial algebra approach to the specification, correctness, and implementation of abstract data types, Current Trends in Programming Methodology, vol. IV, ed. R.T. Yeh, Prentice-Hall (1979).Google Scholar
- Knuth, D.E., Semantics of context-free languages, Mathematical Systems Theory 2, pp. 127–145 (1968).Google Scholar
- Knuth, D.E. and Bendix, P.B., Simple Word Problems in Universal Algebras, Computational Problems in Abstract Algebra, ed. J.Leech, pp. 263–297, Pergamon Press (1970).Google Scholar
- Layzell, P.J., The History of Macro Processors in Programming Language Extensibility, The Computer Journal, vol. 28, pp. 29–33 (1985).Google Scholar
- Milne, R. and Strachey, C., A Theory of Programming Language Semantics, Chapman and Hall, London (1976).Google Scholar
- Mosses, P.D., A constructive approach to compiler correctness, Lecture Notes in Computer Science 85, pp. 449–469, Springer-Verlag, Berlin, Heidelberg (1980).Google Scholar
- Mosses, P.D., Abstract semantic algebras! Proc. Formal Description of Programming Concepts II, pp. 45–70, North-Holland, Amsterdam, 1983.Google Scholar
- Pereira, F.C.N. and Warren, D.H.D., Definite Clause Grammars for Language Analysis — A Survey of the Formalism and a Comparison with Augmented Transition Networks, Artificial Intelligence 13, pp. 231–278 (1980).Google Scholar
- Solntseff, N. and Yezerski, A., A Survey of Extensible Programming Languages, Annual Rewiev in Automatic Programming vol. 7, pp. 267–307 (1974).Google Scholar
- Triance, J.M. and Layzell, P.J., Macro Processors for Enhancing High-Level Languages — Some Design Principles, The Computer Journal, vol. 28, pp. 34–43, 1985.Google Scholar
- Watt, D.A., and Madsen, O.L., Extended attribute grammars, DAIMI PB-105, Computer Science Department, Aarhus University (1979).Google Scholar