Executable specifications for language implementation | SpringerLink
Skip to main content

Executable specifications for language implementation

  • Invited Talk
  • Conference paper
  • First Online:
Progamming Language Implementation and Logic Programming (PLILP 1993)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 714))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Cleaveland, J. C.: Building Application Generators. IEEE Software 5 (July 1988), 25–33

    Google Scholar 

  2. 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.

    Google Scholar 

  3. Horowitz, E., Kemper, A. & Narisimhan, B.: A Survey of Application Generators. IEEE Software 2 (Jan. 1985), 40–54.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. Kastens, U. & Waite, W. M.: An Abstract Data Type for Name Analysis. Acta Informatica 28 (1991), 539–558.

    Google Scholar 

  6. Kastens, U. & Waite, W. M.: Modularity and Reusability in Attribute Grammars. Universit t-GH Paderborn, Reihe Informatik, July 1992.

    Google Scholar 

  7. Krueger, C.W.: Software Reuse. ACM Computing Surveys 24 (June 1992), 131–183.

    Google Scholar 

  8. Spivey, J. M.: The Z Notation A Reference Manual, 2nd Ed. International Seriers in Computer Science, Prentice Hall, 1992.

    Google Scholar 

  9. Waite, W. M.: A Complete Specification of a Simple Compiler. Department of Computer Science, University of Colorado, Boulder, CU-CS-638-93, Jan. 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Maurice Bruynooghe Jaan Penjam

Rights and permissions

Reprints 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

Publish with us

Policies and ethics