Implementing high-level identification specifications

  • Arnd Poetzsch-Heffter
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 641)


Identification is the task of finding the relation between used identifier occurrences and the declared entities of a program. The paper presents the techniques needed for the implementation of high-level identification specifications based on visibility rules. The underlying specification method is related to descriptions in language reports defining the identification in terms of validity and hiding of bindings in program ranges. This leads to shorter and better to read specifications. Sematics and specification properties of the method are already considered in [PH91c], [PH91b]. Here, we present the new implementation techniques developed for the generation of compiler front-ends from high-level identification specifications. The implementation combines instantiation and partial evaluation of expressions with a generated global table mechanism.


Abstract Syntax Identification Function Syntax Tree Program Point Attribute Grammar 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [Gan85]
    H. Ganzinger. Modular first-order specifications of operational semantics. In H. Ganzinger and N. D. Jones, Programs as Data Objects, 1985. LNCS 217.Google Scholar
  2. [Gar87]
    P. E. Garrison. Modeling and Implementation of Visibility in Programming Languages. PhD thesis, University of California, Berkley, 1987.Google Scholar
  3. [GWEB87]
    G. Goos, W. A. Wulf, A. Evans, Jr., and K. J. Butler, editors. DIANA An Intermediate Language for Ada, volume 161 of LNCS. Springer-Verlag, 1987.Google Scholar
  4. [KW91]
    U. Kastens and W. M. Waite. An abstract data type for name analysis. Acta Informatica 28, 1991.Google Scholar
  5. [Ode89]
    M. Odersky. A New Approach to Formal Language Definition and its Application to Oberon. PhD thesis, (ETH) Zürich, 1989. Diss. ETH No. 8938.Google Scholar
  6. [Pal92]
    J. Palsberg. A provably correct compiler generator. In Proc. of ESOP'92 Symposium on Compiler Construction, 1992.Google Scholar
  7. [PH91a]
    A. Poetzsch-Heffter. Formale Spezifikation kontextabhängiger Syntax von Programmiersprachen. PhD thesis, Technische Universität München, 1991.Google Scholar
  8. [PH91b]
    A. Poetzsch-Heffter. Identification as programming language principle. Interner Bericht; Technische Universität München, 1991.Google Scholar
  9. [PH91c]
    A. Poetzsch-Heffter. Logic-based specification of visibility rules. In J. Maluszynski and M. Wirsing, editors, PLILP'91, 1991. LNCS 528.Google Scholar
  10. [PH92]
    A. Poetzsch-Heffter. Making more use of syntax trees during semantic analysis. Technical report; Technische Universität München, 1992.Google Scholar
  11. [Rei83]
    S. Reiss. Generation of compiler symbol processing mechanisms from specifications. ACM Transactions on Programming Languages and Systems, 5(2), 1983.Google Scholar
  12. [Uhl86]
    J. Uhl. Spezifikation von Programmiersprachen und Übersetzern, volume 161 of GMD-Bericht. R. Oldenbourg Verlag, 1986.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Arnd Poetzsch-Heffter
    • 1
  1. 1.Institut für Informatik der TU MünchenMünchen 2

Personalised recommendations