Abstract
Attribute grammars were introduced in the late 60's. In the 70's they found use in compiler work, a use that is continuing to grow. A more recent development is that of the ‘attribute grammar programming paradigm’. A number of environments have been built to support this paradigm. W/AGE is one such environment. It consists of several functions that extend the standard environment of the pure lazy functional programming language Miranda. W/AGE has been used in the construction of various types of program including natural language interpreters, database front-ends, file-processors, theorem provers, and VLSI specification transformers.
The authors acknowledge the assistance of N.S.E.R.C. of Canada, and of Subir Bandyopadhyay and Walid Saba of the School of Computer Science at the University of Windsor.
Preview
Unable to display preview. Download preview PDF.
References
B. Edupuganty and B. R. Bryant, Two-level grammar as a functional programming language. The Computer Journal, 32 (1), 36–44 (1989).
M. S. Feather, A survey and Classification of some program transformation approaches and techniques. In L. G. L. T. Meertens (Editor) Program Specification and Transformation. IFIP 1987. Elsevier Science Publishers B. V. North-Holland.
P. Forbig, and U. Lammel, Knowledge based program generation using attribute grammars, in: Grabowski, J (ed), Proc. of the Berliner Informatik Tage bit '89. Akademie d. Wissenschaften der DDR, iir-Report, 114–123, (1989).
R. A. Frost, Constructing Programs in a Calculus of Interpreters, Proceedings of the 1990 ACM International Workshop on Formal Methods in Software Development, (1990).
R. A. Frost, Constructing programs as executable attribute grammars, The Computer Journal (to appear in the August 1992 issue).
R. A Frost, Guarded Attribute Grammars: Top Down Parsing and Left Recursive Productions, ACM SIGPLAN 27(6), 72–76, (1992).
E. C. R. Hehner and B. A. Silverberg, Programming with grammars: an exercise in methodology-directed language design. The Computer Journal 26 (3), 227–281 (1983).
T. Johnsson, Attribute grammars as a functional programming paradigm. Springer Lecture Notes 274, 155–173 (1987).
T. Katayama, HFP: A hierarchical and functional programming based on attribute grammars, Proceedings of 5th International Conf. on Software Engineering, 343–353, (1981).
D. E. Knuth, Semantics of context-free languages. Math. Syst. Theory. 2(2), 127–145, (1968).
D. E. Knuth, Semantics of context-free languages: correction. Math. Syst. Theory. 5, 95–96, (1971).
D. E. Knuth, Examples of Formal Semantics. Springer Lecture Notes in Computer Science Vol 188, 212–235 (1971).
K. Koskimies, Lazy recursive descent parsing for modular language implementation. Software Practice and Experience, 20 (8), 749–772 (1990).
T. Panayiotopoulos, G. Papakonstantinou, and G. Stamatopoulos, Attribute grammars and logic programming, Agnew. Inf. No 5 (1988) 227.
Y. Shinoda and T. Katayama, Attribute grammar based programming and its environment, Proceedings of 21st Hawaii International Conference on System Sciences, Kailu-Kona, Hawaii, 612–620, (1988).
E. Simon, A new programming methodology using attribute grammars, Acta Cybernetica, 7 (4), 425–436 (1986).
D. Turner, A non-strict functional language with polymorphic types. Proc. IFIP Int. Conf. on Functional Programming Languages and Computer Architecture, Nancy, France. Springer Lecture Notes in Computer Science 201. (1985).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Frost, R.A., Karamatos, S. (1993). Supporting the attribute grammar programming paradigm in a lazy functional programming language. In: Lauer, P.E. (eds) Functional Programming, Concurrency, Simulation and Automated Reasoning. Lecture Notes in Computer Science, vol 693. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56883-2_13
Download citation
DOI: https://doi.org/10.1007/3-540-56883-2_13
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-56883-4
Online ISBN: 978-3-540-47776-1
eBook Packages: Springer Book Archive