Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
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 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
  • 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
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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 November 1988
Published in SIGSOFT Volume 13, Issue 5

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)65
  • Downloads (Last 6 weeks)16
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2005)Tree transformations, functional languages, and attribute grammarsAttribute Grammars and their Applications10.1007/3-540-53101-7_9(116-129)Online publication date: 31-May-2005
  • (1995)LISAACM SIGPLAN Notices10.1145/202176.20218530:4(71-79)Online publication date: 1-Apr-1995
  • (1992)An object-oriented specification and its generation for compilerProceedings of the 1992 ACM annual conference on Communications10.1145/131214.131255(323-330)Online publication date: 1-Apr-1992
  • (1992)An object-oriented specification for compilerACM SIGPLAN Notices10.1145/130722.13073327:1(85-94)Online publication date: 1-Jan-1992
  • (1992)The Pan language-based editing systemACM Transactions on Software Engineering and Methodology10.1145/125489.1228041:1(95-127)Online publication date: 2-Jan-1992
  • (1990)The Pan language-based editing system for integrated developmentACM SIGSOFT Software Engineering Notes10.1145/99278.9928615:6(77-93)Online publication date: 1-Oct-1990
  • (1990)The Pan language-based editing system for integrated developmentProceedings of the fourth ACM SIGSOFT symposium on Software development environments10.1145/99277.99286(77-93)Online publication date: Oct-1990
  • (1989)The ergo support system: an integrated set of tools for prototyping integrated environmentsProceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments10.1145/64135.65006(25-34)Online publication date: 3-Jan-1989
  • (1988)The ergo support system: an integrated set of tools for prototyping integrated environmentsACM SIGPLAN Notices10.1145/64140.6500624:2(25-34)Online publication date: 3-Nov-1988
  • (1988)The ergo support system: an integrated set of tools for prototyping integrated environmentsACM SIGSOFT Software Engineering Notes10.1145/64137.6500613:5(25-34)Online publication date: 3-Nov-1988
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media