Abstract
Generating programs from specifications is an ambitious task that is solved at most for restricted application domains. General solutions which are practically satisfying as well are hard to achieve. Language implementation is a field, where tools and toolsets are available which process executable specifications and derive language implementing programs (compilers or interpreters) from them.
In this paper we will study specification principles that contribute to the success of program generation in this application domain. Examples are taken from the specification techniques of the Eli-System. The task of language implementation is decomposed into subtasks which have well understood and sufficiently general algorithmic solutions. Hence the instances of subtasks for a particular language can be specified. Certain language concepts like scope rules can be understood as a combination and variation of some basic rules. This situation allows specifications on a rather high level and reuse of precoined solutions. Domain specific expert know-how embedded in a toolset can further raise the specification level. The presentation of such specification principles in language implementation may raise discussion whether and how they can be applied to other areas as well.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Cleaveland, J. C.: Building Application Generators. IEEE Software 5 (July 1988), 25–33
Gray, R. W., Heuring, V. P., Levi, S. P., Sloane, A. M. & Waite, W. M.: Eli: A Complete, Flexible Compiler Construction System. Communications of the ACM 35 (Feb. 1992), 121–131.
Horowitz, E., Kemper, A. & Narisimhan, B.: A Survey of Application Generators. IEEE Software 2 (Jan. 1985), 40–54.
Kastens, U.: Attribute Grammars in a Compiler Construction Environment. Proceedings of the International Summer School on Attribute Grammars, Application and Systems, Lect. Notes in Comp. Sci.# 545, Springer Verlag, New York-Heidelberg-Berlin, 1991, 380–400.
Kastens, U. & Waite, W. M.: An Abstract Data Type for Name Analysis. Acta Informatica 28 (1991), 539–558.
Kastens, U. & Waite, W. M.: Modularity and Reusability in Attribute Grammars. Universit t-GH Paderborn, Reihe Informatik, July 1992.
Krueger, C.W.: Software Reuse. ACM Computing Surveys 24 (June 1992), 131–183.
Spivey, J. M.: The Z Notation A Reference Manual, 2nd Ed. International Seriers in Computer Science, Prentice Hall, 1992.
Waite, W. M.: A Complete Specification of a Simple Compiler. Department of Computer Science, University of Colorado, Boulder, CU-CS-638-93, Jan. 1993.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kastens, U. (1993). Executable specifications for language implementation. In: Bruynooghe, M., Penjam, J. (eds) Progamming Language Implementation and Logic Programming. PLILP 1993. Lecture Notes in Computer Science, vol 714. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57186-8_67
Download citation
DOI: https://doi.org/10.1007/3-540-57186-8_67
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57186-5
Online ISBN: 978-3-540-47945-1
eBook Packages: Springer Book Archive