skip to main content
10.1145/64135.65014acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article
Free access

The ergo attribute system

Published: 03 November 1988 Publication History

Abstract

The Ergo Attribute System was designed to satisfy the requirements for attributes in a language-generic program derivation environment. It consists of three components: (1) an abstract data type of attributes that guarantees attribute consistency, (2) a Common Lisp implementation which combines demand-driven and incremental attribute evaluation in a novel way while allowing for attribute persistence over many generations of a program, and (3) an attribute-grammar compiler producing code based on this abstract data type from a high-level specification. Our experience with three major applications (one being the attribute-grammar compiler itself) confirms that the overhead in storing and accessing attributes incurred by our implementation scheme is more than offset by the gains from the demand-driven, incremental, and persistent nature of attribution.

References

[1]
Gregor V. Bochmann. Semantics evaluation from left to right. Communications of the ACM, 19(2) :55-62, February 1976.
[2]
Scott R. Dietren, Mary Ann Pike, Anne M. Rogers, and William L. Scherlis. User's Guide to the Ergo Syntaz Facility. Ergo Report In preparation, Carnegie Mellon University, Pittsburgh, 1988.
[3]
Rodney Farrow. Experiences with an attribute grammar-based compiler. In Ninth ACM Symposium on Principles of Programming Languages, pages 95-107, ACM, February 1982.
[4]
Harald Ganzinger, Robert Giegerich, Ulrich Moncke, and Reinhard Wilhelm. A truly generative semantics-directed compiler generator. In SIGPLAN 82 Symposium on Compiler Construction, pages 172-184, ACM, 1982. In: SIG- PLAN Notices 17(6).
[5]
M. Jazayeri and K.G. Walter. Alternating semantic evaluator. In ACM Annual Conference, pages 230-234, ACM, 1975.
[6]
Martin Jourdan. Strongly non-circular at tribute grammars and their recursive evaluation. In SIGPLAN 84 Symposium on Compiler Construction, pages 81-93, ACM, 1984. In: SIG- PLAN Notices 19(6).
[7]
Uwe Kastens. Ordered attribute grammars. Acta Informatica, 13:229-256, 1980.
[8]
Uwe Kastens, Brigitte Hutt, and Erich Zimmermann. GAG: A Practical Compiler Generator. Volume 141 of Lecture Notes in Computer Science, Springer-Verlag, 1982.
[9]
Ken Kennedy and Scott K. Warren. Automatic generation of efficient evaluators for attribute grammars. In Third ACMSymposium on Principles of Programming Languages, pages 32-49, ACM, 1976.
[10]
Kai Koskimies. A specification language for onepass semantic analysis. In SIGPLAN 84 Symposium on Compiler Construction, pages 179-189, ACM, 1984. In: SIGPLAN Notices 19(6).
[11]
Kai Koskimies, Kari-Jouko Raiha, and Matti Sarjakoski. Compiler construction using attribute grammars. In SIGPLAN 82 Symposium on Compiler Construction, pages 153-159, ACM, 1982. In: SIGPLAN Notices 17(6).
[12]
Peter Lee, Frank Pfenning, John Reynolds, Gene Rollins, and Dana Scott. Research on Semantically Based Program-Design Environments: The Ergo Project in 1988. Technical Report CMU- CS-88-118, Carnegie Mellon University, Pittsburgh, March 1988.
[13]
Peter Lee, Frank Pfenning, Gene Rollins, and William Scherlis. The Ergo Support System: an integrated environment for prototyping integrated environements. In Proceedings of the SIGPLAN'83 Symposium on Software Development Environments, Boston, November 28-30, ACM Press, 1988.
[14]
Robert L. Nord. A Framework for Program Flow Analysis. Ergo Report 87-038, Carnegie Mellon University, Pittsburgh, November 1987.
[15]
Frank Pfenning and Conal Elliott. Higher-order abstract syntax. In Proceedings of the SIGPLAN '88 Symposium on Language Design and Implementation, pages 199-208, ACM Press, June 1988. Available as Ergo Report 88-036.
[16]
William Pugh. An improved replacement strategy for function caching. In Proceedings of the 1988 ACM Conference on Lisp and Functional Programming, Snowbird, Utah, pages 269-276, ACM Press, July 1988.
[17]
Kari-Jourko Raiha. Bibliography on attribute grammars. SIGPLAN Notices, 15(3):35-44, 1980.
[18]
Thomas Reps and Tim Teitelbaum. The synthesizer generator. In Software Engineering Symposium on Practical Software Development Environments, pages 42-48, ACM, 1984. In: SIG- PLAN Notices 19(5).
[19]
Thomas Reps, Tim Teitelbaum, and Alan Demers. Incremental context-dependent analysis for language-based editors. ACM Transactions on Programming Languages and Systems, 5(3):449-477, July 1983.
[20]
William L. Scherlis. Abstract data types, specialization and program reuse. In International Workshop on Advanced Programming Environments, Springer-Verlag LNCS 244, 1986.
[21]
Reinhard Wilhelm. Global Flow Analysis and Optimization in the MUG2 Compiler Generating System, pages 132-159. Prentice Hall, 1981.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SDE 3: Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
January 1989
257 pages
ISBN:089791290X
DOI:10.1145/64135
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 24, Issue 2
    Special issue: Proceedings of the ACM SIGSOFT/SIGPLAN software engineering symposium on practical software development environments
    Feb. 1989
    257 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/64140
    Issue’s Table of Contents
  • cover image ACM SIGSOFT Software Engineering Notes
    ACM SIGSOFT Software Engineering Notes  Volume 13, Issue 5
    Special issue: Proceedings of the ACM SIGSOFT/SIGPLAN software engineering symposium on practical software development environments
    November 1988
    257 pages
    ISSN:0163-5948
    DOI:10.1145/64137
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 November 1988

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

SIGSOFT88
SIGSOFT88: 3rd Symposium on Software Development Environments
November 28 - 30, 1988
Massachusetts, Boston, USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)96
  • Downloads (Last 6 weeks)28
Reflects downloads up to 21 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media