Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Attribute grammar paradigms—a high-level methodology in language implementation

Published: 01 June 1995 Publication History
  • Get Citation Alerts
  • Abstract

    Attribute grammars are a formalism for specifying programming languages. They have been applied to a great number of systems automatically producing language implementations from their specifications. The systems and their specification languages can be evaluated and classified according to their level of application support, linguistic characteristics, and degree of automation.
    A survey of attribute grammar-based specification languages is given. The modern advanced specification languages extend the core attribute grammar model with concepts and primitives from established programming paradigms. The main ideas behind the developed attribute grammar paradigms are discussed, and representative specification languages are presented with a common example grammar. The presentation is founded on mapping elements of attribute grammars to their counterparts in programming languages. This methodology of integrating two problem-solving disciplines together is explored with a classification of the paradigms into structured, modular, object-oriented, logic, and functional attribute grammars. The taxonomy is complemented by introducing approaches based on an implicit parallel or incremental attribute evaluation paradigm.

    References

    [1]
    ABRAMSON, H. 1984. Defimte clause translation grammars. In Proceedings of the 1984 IEEE Symposium on Logzc Prograraramg (Atlantic City, N.J.). IEEE, New York, 233 240
    [2]
    ACM COMPUTINO SURVEYS 21, 3, 1989. Specml Issue on Programming Language Paradigms.
    [3]
    A~Io, A. V., SF, Tm, R., AND ULLMAN, J. D. 1986 Cornpders--Prmc~ples, Techniques, and Tools. Addison-Wesley, Reading, Mass.
    [4]
    AKSIT, M., MOSTERT, R., AND HAVERKORT, B. 1990. Compiler generation based on grammar inheritance. Rep. 90-07, Dept. of Computer Science, Umv. of Twente.
    [5]
    ALBLAS, H. 1991. Attribute evaluation methods. In Attrzbute Grammars, Apphcatzons, and Systems, Lecture Notes in Computer Scmnce, vol 545, Springer-Verlag, New York, 48 113.
    [6]
    ALBLAS, H. 1990. Concurrent incremental attribute evaluation. In Proceedings of the International Conference on Attribute Grammars and thezr Applications, Lecture Notes in Computer Science, vol 461 Sprmger-Verlag, New York, 343-358.
    [7]
    ALBLAS, H. AND MELICHAR, B. (EDs) 1991. Attribute Grammar% Apphcations, and Systems. Lecture Notes in Computer Science, vol 545. Springer-Verlag, New York.
    [8]
    ALEXiN, Z, GYIMd~THY, T., HORV~TH, T, AND FABRiCZ, K. 1990. Attribute grammar specification for a natural language understanding interface In Proceedings of the Internahonal Conference on Attribute Grammars and their Apphcatmns, Lecture Notes m Computer Scmnce, voI 461, Sprlnger-Verlag, New York, 313 326.
    [9]
    APPEL, A. W. AND MAcQuEEN, D. B. 1991. Standard ML of New Jersey In Proceedings o/ the 3rd Internatwnal Symposium on Prograrnmzng Language Implernentatmn and Logic Programming (PLILP '91). Lecture Notes m Computer Science, vol. 528, J. Maluszynsk~ and M. Wlrsmg, Eds. Springer-Verlag, New York, 1-13.
    [10]
    ARBAB, B. 1986. Compiling circular attribute grammars into Prolog. IBM J. Res. Devel. 30, 3, 294 309.
    [11]
    AUGUSTEIJN, L. 1990. The Elegant Compiler Generator System. In Proceedings of the Internatzona{ Conference on Attribute Orammar~ and their Appltcatzons, Lecture Notes in Computer Science, vol 461. Springer-Verlag, New' York, 238 254.
    [12]
    B^mCH, W. A AND JAZ^YERL M. 1978 The method of attributes for data flow analysis, Part I. Exhaustive analysis; Part II: Demand analysm Acta Inforraat~ca 10, 245-272.
    [13]
    BALLANCE, R. A. AND GRAHAM, S. L. 1991. Incremental consistency mmntenance for interactive applications In Proceedtngs of the 8th Internatmna{ Conference on Logic Programming, K. Furukawa, Ed The MIT Press, Cambridge, Mass., 895-909.
    [14]
    BALLANCE, R. A., GRAHAM, S. L., AND VAN DE VAN- TER, M. L. 1990. The Pan language-based editing system for integrated development environments. In Proceedings of the 4th ACM SIC- SOFT Symposium on Software Development Environments (SIGSOFT '90). ACM SIC- SOFT Softw. Eng. Notes 15, 6, 77-93.
    [15]
    BENTLEY, J. 1986. Little languages. Commun. ACM 29, 8, 711-722.
    [16]
    BOCHMANN, G. V. 1976. Semantic evaluation from left to right. Commun. ACM 19, 2, 55-62.
    [17]
    BOCHMANN, G. V. AND WARD, P. 1978. Compiler writing system for attribute grammars. Cornput. J. 21, 2, 144-148.
    [18]
    BOEHM, H.-J. AND ZWAENEPOEL, W. 1987. Parallel attribute grammar evaluation. In Proceedings of the 7th International IEEE Conference on Distributed Computing Systems (Berlin). IEEE, New York, 347-354.
    [19]
    BRYANT, B. R. AND PAN, A. 1989. Rapid prototyping of programming language semantics using Prolog. In Proceedings of IEEE COMPSAC '89 (Orlando, F1.). IEEE, New York, 439 446.
    [20]
    CHAPMAN, N. P. 1990. Defining, analysing and implementing communication protocols using attribute grammars. Formal Aspects Comput. 2, 359-392.
    [21]
    CHIRICA, L. M. AND MARTIN, D. F. 1979. An orderalgebraic definition of Knuthian semantics. Math. Syst. Theory 13, 1, 1 27.
    [22]
    CHOMSKY, N. 1959. On certain formal properties of grammars. Inf. Contr. 2, 137-167.
    [23]
    COLMERAUER, A. 1978. Metamorphosis grammars. In Natural Language Communication with Compute~, L. Bolc, Ed. Springer-Verlag, New York, 133-189.
    [24]
    COURCELLE, B. AND FRANCHI-ZANNETTACCI, P. 1982. Attribute grammars and recursive program schemes. Theor. Comput. Sci. 17, 2, 163 191 (Part I) and 17, 3, 235 257 (Part II).
    [25]
    COUSINEAU, G. AND HUET, G. 1990. The CAML Primer. Tech. Rep. 122, INRIA.
    [26]
    CRIMI, C., GUERCIO, A., PACINI, G., TORTORA, G., AND TUCCI, M. 1990. Automating visual language generation. IEEE Trans. Softw. Eng. 16, 10, 1122-1135.
    [27]
    DAHL, V. AND ABrAMSON, H. 1989. Logic Grammars. Springer-Verlag, New York.
    [28]
    DAttL, V. AND ABRAzMSON, H. 1984. Gapping grammars. In Proceedings of the 2rid Internattonal Logic Programming Conference (Uppsala).
    [29]
    DECLARATIVE SYSTEMS 1992. User Manual for the Linguist Translator-Writing System. Declarative Systems, Inc., Palo Alto, Calif.
    [30]
    DELEST, M. P. AND FEDOU, J. M. 1992. Attribute grammars are useful for combinatorics. Theor. Comput. Sci. 98, 1, 65-76.
    [31]
    DEPARTMENT OF DEFENSE. 1983. The Programming Language Ada, Reference Manual. ANSI/MIL- STD-1815A-1983. Springer-Verlag, New York.
    [32]
    DERANSART, P. AND JOURDAN, M. (ED.). 1990. Proceedings of the International Conference on Attribute Grammars and their Applications. Lecture Notes in Computer Science, vol. 461. Springer-Verlag, New York.
    [33]
    DERANSART, P. AND MALUSZYNSKI, J. 1993. A Grammatical View of Logic Programming. The MIT Press, Cambridge, Mass.
    [34]
    DERANSART, P. AND MALUSZ~q'~SKI, J. 1985. Relating logic programs and attribute grammars. J. Logic Program. 2, 2, 119 155.
    [35]
    DERANSART, P., JOURDAN, M., AND LORHO, B. 1988. Attribute Grammars Definitions, Systems and Bibliography. Lecture Notes in Computer Science, vol. 323, Springer-Verlag, New York.
    [36]
    DING, S. AND KATAYAMA, T. 1993. Attributed state machines for behavior specification of reactive systems, In Proceedings of the 5th Internatwnal Conference on Software Engineering and Knowledge Engineering (SEKE'93) (San Francisco). Knowledge Systems Institute, 695-702.
    [37]
    DUECK, G. D. P. AND CORMACK, G. V. 1990. Modular attribute grammars. Comput. J. 33, 2,164-172.
    [38]
    EXPERT SOFTWARE SYSTEMS. 1984. MIRA, User's Manual. Expert Software Systems.
    [39]
    FANG, I. 1972. FOLDS A declarative semantic formal language definition system. Rep. STAN- CS-72-239, Computer Science Department, Stanford University, Stanford, Calif.
    [40]
    FARROW, R. 1986. Automatic generation of fixedpoint-finding evaluators for circular, but welldefined attribute grammars. In Proceedings of the ACM SIGPLAN '86 Symposium on Compiler Construction. ACM SIGPLAN Not. 21, 7, 85-98.
    [41]
    FARROW, R. 1983. Attribute grammars and data-flow languages In Proceedings of the SIGPLAN'83 Symposium on Programming Language Issues in Software Systems. ACM SIGPLAN Not. 18, 6, 28-40.
    [42]
    FARROW, R. 1982. LINGUIST-86, yet another translator writing system based on attribute grammars. In Proceedings of the ACM SIGPLAN '82 Sympostum on Compzler Construction. ACM SIGPLAN Not. 17, 6, 160 171.
    [43]
    FARROW, R., MARLOWE, T. J., AND YELLIN, D. M. 1992. Composable attribute grammars: Support for modularity in translator design and implementation. In Conference Record of the 19th Annual ACM SIGPLAN-SIGACT Symposzum on Principles of Programmin~' Languages (Albuquerque, New Mex.). ACM, New York, 223-234.
    [44]
    FISCHER, C. N. AND LEBLANC, R. J. 1988. Crafting a Compiler. Benjamin-Cummings, Menlo Park, Calif.
    [45]
    FROST, R. A. 1993. Guarded attribute grammars. Softw, Prac, Exp, 23, 10, 1139-1156.
    [46]
    FROST, R. A. 1992. Constructing programs as executable attribute grammars. Comput. J 35, 4, 376-389.
    [47]
    GANZINGER, H. 1980. Transforming denotational semantics into practical attribute grammars. In Procee&ngs of the Workshop on Semantics- Directed Compiler Generation Lecture Notes in Computer Science, vol. 94, N. D. Jones, Ed. Springer-Verlag, New York, 1-69.
    [48]
    GANZINGER, H AND GIEGERICH, R. 1984. Attribute coupled grammars. In ProceedzTzgs of the ACM SIGPLAN '84 Sympostum on Compiler Canstructzon. ACM SIGPLAN Not. 19, 6, 157-170.
    [49]
    GANZINGER, H, GIEGERICH, R., MONCKE, U., AND WILHELM, R. 1982. A truly generative semantics-directed compiler generator. In Proceedings of the ACM S1GPLAN '82 Sympoaum on Compiler Construction. ACM SIGPLAN Not. 17, 6, 172-184.
    [50]
    GARRISON, P. 1987 Modeling and implementation of vimbility in programming languages. Rep. UCB/CSC 88/400, Computer Science Division, Univ. of California, Berkeley, Calif.
    [51]
    GiEGERICH, R. AND WILHELM, R. 1978. Counter-onepass features in one-pass compfiation: A formalisation using attribute grammars. Inf. Process. Lett. 7, 6, 279-284.
    [52]
    GOLDBERG, A. AND ROBSON, D. 1983. Smalltalk-80: The Language and Its Implementation Addison-Wesley, Reading, Mass.
    [53]
    GROSCH, J. 1990. Object-oriented attribute grammars. In Proceedings of the 5th International Sympostum on Computer and Information ScleTzces (ISCIS V), A. E. Harmanm and E. Gelenke, Eds. 807 816.
    [54]
    GRoss, T., ZOBEL, A., ^ND ZOLG, M. 1989. Parallel compilation for a parallel machine. In Proceedrags of the ACM SIGPLAN '89 Conference on Programming Language Design and Implementation. ACM SIGPLAN Not. 24, 7, 91-100.
    [55]
    GROSSMANN, R., HUTSCHENREITER, J., LAMPE, J., L(~TZSCH, J., AND MAGER, K. 1984. DEPOT2a--Metasystem fur die Analyse und Verarbeitung verbundener Fachsprachen. Anwenderhandbuch, Sektion Mathematlk, Technische Universit~t Dresden.
    [56]
    HANSON, D. R. 1981 Is block structure necessary? Soft. Prac. Exp. 11, 8, 853 866.
    [57]
    HEDIN, G. 1989. An object-oriented notation for attribute grammars. In Procee&ngs of the 3rd European Conference on Object-Oriented Programming (ECOOP '89), S. Cook, Ed. British Informatics Society Ltd., Nottingham, 329 345.
    [58]
    HEDIN, G. 1994. An overview of door attribute grammars In Proceedings of the Internattoy~al Conference on Compzler Construction (CC'94) Lecture Notes m Computer Science, vol 786, P. Fritzson, Ed. Sprmger-Verlag, New York.
    [59]
    HEDIN, G. 1992. Incremental semantic analysis. Doctoral dissertation, Lund University.
    [60]
    HEERING, J., KLINT, P., AND REKERS, J. 1990. Incremental generation of parsers. IEEE Trans. Softw Eng. SE-16, 12, 1344 1351.
    [61]
    HORWITZ, S. AND REPS, T. 1992. The use of program dependence graphs in software engineering. In Proceedzngs of the 14th International Conference on Software Engineering IEEE Computer Society Press, Los Alamitos, Calif., 392-411.
    [62]
    HUDSON, S. E. AND KING, R. 1987. Implementing a user interface as a system of attributes In Procee&ngs of the ACM SIGSOFT/SIGPLAN Software Engmeerzng Symposium oa Practtcal Software Development Enwronments. ACM SIGPLAN Not. 22, 1, 143-149.
    [63]
    IRONS, E. T 1961. A syntax directed compiler for Algol 60. Commun. ACM 4, 1, 51-55
    [64]
    JAZAYER~, M., OGDEN, W F., AND ROUNDS, W C. 1975. The intrinsically exponentml complexity of the circularity problem for attribute grammars. Commun. ACM 18, 12, 679-706.
    [65]
    JOHNSON, S. C. 1975. YACC, yet another compiler compiler. Rep. CS-TR-32, Bell Laboratories, Murray Hill, N.J.
    [66]
    JOHNSSON, T. 1987. Attribute grammars as a functional programming paradigm In Proceedings of the Symposium on Functional Programming Languages and Computer Architecture. Lecture Notes m Computer Science, vol. 274, G. Kahn, Ed. Springer-Verlag, New York, 154-173
    [67]
    JONES, L. G. 1990. Efficient evaluation of circular attribute grammars. ACM Trans. Program. Lang. Syst. 12, 3,429-462.
    [68]
    JONES, R. 1986. Flex--An experience of Miranda. UKC Computing Laboratory Rep. 38, Univ. of Kent at Canterbury.
    [69]
    JONES, L. G AND SIMON. J. 1986. Hierarchical VLSI design systems based on attribute grammars. In Conference Record of the 13th ACM Sympaszum on Prznciples of Programming Languages ACM, New York, 58 69.
    [70]
    JOURDAN, M. 1991. A survey of parallel attribute evaluation methods. In Attribute Grammars, Apphcations, and Systems. Lecture Notes in Computer Science, vol. 545. Springer-Verlag, New York, 234 255.
    [71]
    JouRI)AN, M. 1984. Strongly non-circular attribute grammars and thmr recurmve evaluation. In Proceedings of the ACM SIGPLAN'84 Symposzum on Compiler Constructwn ACM SIGPLANNot. 19, 6, 81 93.
    [72]
    JOURDAN, M. AND PARIGOT, D. 1991. Internals and externals of the FNC-2 attribute grammar system. In Attribute Grammars, Appl~catwns and Systems Lecture Notes in Computer Smence, vol 545. Springer-Verlag, New York, 485-506.
    [73]
    JOURDAN, M, LE BELLEC, C, AND PARIGOT, D. 1990 The aLGA attnbpte grammar description language: Design, implementation and evaluation In Proceedings of the International Conference on Attrzbute Grammars and their Appllcatwns. Lecture Notes m Computer Science, vol. 461. Springer-Verlag, New York, 222-237.
    [74]
    KAISER, G AND KAPLAN, S. M. 1993. Parallel and distributed incremental attribute evaluation algorithms for multiuser software development environments. ACM Trans. Softw Eng. Method. 2, 1, 47-92.
    [75]
    KASTENS, U. 1991. Attribute grammars as a specification method. In Attribute Grammars, Apphcatzons and Systems Lecture Notes in Campurer Science, voI. 545. Springer-Verlag, New York, 16-47.
    [76]
    KASTENS, U. 1980. Ordered attributed grammars. Acta Informatica 13, 229-256.
    [77]
    KASTENS, U. AND WAITE, W. M. 1991. An abstract data type for name analysis. Acta Informatlca 28, 6, 539-558.
    [78]
    KASTENS, U., HUTT, B., AND ZIMMERMANN, E. 1987. User Manual for the GAG-System, Verswn 7. GAG Documentation, GMD Forschungsstelle an der Universitiit Karlsruhe.
    [79]
    KASTENS, U., HUTT, B., AND ZIMMERMANN, E. 1982. GAG: A Practical Compiler Generator. Lecture Notes in Computer Science, vot. 141. Springer- Verlag, New York.
    [80]
    KATSEFF, H. P. 1988. Data partitioning to implement a parallel assembler. In Proceedings of the ACM Conference on Parallel Programming: Experiences with Applications, Languages and Systems (PPEALS 1988). ACM SIGPLAN Not. 23, 9, 66-76.
    [81]
    KENNEDY, K. AND WARREN, S. 1976. Automatic generation of efficient evaluators for attribute grammars. In Conference Record of the 3rd ACM Symposium on Principles of Programming Languages. ACM, New York, 32-49.
    [82]
    KLEENE, S. C. 1952. Introductwn to Metamathematics. North-Holland, Amsterdam.
    [83]
    KLEIN, E. 1992. Parallel ordered attribute grammars. In Proceedings of the IEEE Conference on Computer Languages. IEEE, New York, 106-116.
    [84]
    KLEIN, E. AND KOSKIMIES, K. 1989. The parallelization of one-pass compilers. Arbeitspapiere der GMD 416, Gesellschaft fdr Mathematik und Datenverabeitung mbH.
    [85]
    KLEIN, E. AND KOSKIMIES, K. 1990. Parallel one-pass compilation. In Proceedtngs of the International Conference on Attribute Grammars and their Applicatmns. Lecture Notes in Computer Science, vol. 461. Springer-Verlag, New York, 76 90.
    [86]
    KNUTH, D. E. 1990. The genesis of attribute grammars. In Proceedings of the International Conference on Attribute Grammars and their Apphcations. Lecture Notes in Computer Science, vol. 461. Springer-Verlag, New York, i 12.
    [87]
    KNUTH, D. E. 1971. Examples of formal semantics. In Proceedings of the Symposium on Semantics of Algorithmic Languages. Lecture Notes in Mathematics, vol. 188, E. Engeler, Ed. Springer-Verlag, New York, 212-235.
    [88]
    KNUTH, D. E. 1968. Semantics of context-free languages. Math. Syst. Theory 2, 2, 127-145. (Corrigenda: Math. Syst. Theory 5, 1, 1971, 95-96.)
    [89]
    KNUTIt, D. E. 1965. On the translation of languages from left to right. Inf. Contr. 8, 6, 607-639.
    [90]
    KOSKIMIES, K. 1991. Object-orientation in attribute grammars. In Attrtbute Grammars, Applications and Systems. Lecture Notes in Computer Science, vol. 545. Springer-Verlag, New York, 297-329.
    [91]
    KOSKIMIES, K. 1990. Lazy recursive descent parsing for modular language implementation. Softw. Pract. Exp. 20, 8, 749-772.
    [92]
    KOSKIMIES, K. 1989. Software engineering aspects in language implementation. In Proceedings of the 2nd Workshop on Compiler Compilers and High Speed Compilation. Lecture Notes in Computer Science, vol. 371, D. Hammer, Ed. Springer-Verlag, New York, 39-51.
    [93]
    KOSK~MmS, K. 1984. A specification language for one-pass semantic analysis. In Proceedings of the ACM SIGPLAN'84 Symposium on Compiler Construction. ACM SIGPLAN Not. 19, 6, 179-189.
    [94]
    KOSKIMIES, K. AND PAAKKI, J. 1991. High-level tools for language implementation. J. Syst. Softw. 15, 2, 115-131.
    [95]
    KOSKIMIES, K. AND PAAKKI, J. 1990. Automating Language Implementation--A Pragmatic Approach. Ellis Horwood, Chichester, England.
    [96]
    KOSKIMIES, K., NURMI, O., PAAKKI, J., AND SIPPU, S. 1988. The design of a language processor generator. Softw. Pract. Exper. 18, 2, 107-135.
    [97]
    KUIPER, M. F. AND SWIERSTRA, S. D. 1990. Parallel attribute evaluation: Structure of evaluators and detection of parallelism. In Proceedings of the International Conference on Attribute Grammars and their Applications. Lecture Notes in Computer Science, vol. 461. Springer- Verlag, New York, 61-75.
    [98]
    LEE, P. 1989. Reahstic Compder Generation. The MIT Press, Cambridge, Mass.
    [99]
    LEWI, J., DE VLAMINCK, K., HUENS, J., AND HUYBRECHTS, M. 1979. A Programming Methodology in Compiler Construction. Vol. 1 and 2. North-Holland, Amsterdam.
    [100]
    LEWI, J., DE VLAMINCK, K., STEEGMANS, E., AND VAN HOREBEEK, J. 1992. Software Development by LL(1) Syntax Description. John Wiley & Sons, New York.
    [101]
    LEWIS, P. M. AND STEARNS, R. E. 1968. Syntaxdirected transduction. J. ACM 15, 3, 465-488.
    [102]
    LEwis, P. M., ROSENKRANTZ, D. J., AND STEARNS, R. E. 1974. Attributed translations. J. Comput. Syst. Sci. 9,279-307.
    [103]
    KNUDSEN, J. L., LOFGREN, M., LEHRMANN MADSEN, O., AND MAGNUSSON, B. (EDs.). 1993. Object- Oriented Environments: The Mj~lner Approach. Prentice-Hall, Englewood Cliffs. N.J.
    [104]
    LIPPS, P., MONCKE, U., OLK, M., AND WILHELM, R. 1988. Attribute (re)evaluation in OPTRAN. Acta Informatica 26, 213-239.
    [105]
    LONGLEY, M. 1987. Generating parsers in Miranda. UKC Computing Laboratory Rep. 49, Univ. of Kent at Canterbury.
    [106]
    MALUSZYNSKL J. 1991. Attribute grammars and logic programming: A comparison of concepts. In Attribute Grammars, Applications, and Systems. Lecture Notes in Computer Science, vol. 545. Sprmger-Verlag, New York, 330 357.
    [107]
    MALUSZYNSKI, J. 1982. A comparison of the logic programming language Prolog with two-level grammars. In Proceedings of the 1st Internatwnal Logtc Programming Conference, M. van Caneghem, Ed. Faculte des Sciences de Luminy, Marseilles, 193-199
    [108]
    MASON, T AND BROWN, D. 1990. Lex & Yacc. O'Reilly & Associates, Inc., Sebastopol, Calif.
    [109]
    MAYO~I, B. 1981. Attribute grammars and mathematical semantics. SIAM J. Comput. 10, 3, 503 518.
    [110]
    NAUR, P. (ED.). 1960. Report on the algorithmic language ALGOL 60. Commun. ACM 3, 5, 299 314.
    [111]
    NOLL, T. AND VOGLER, H. 1994. Top-down parsing with simultaneous evaluation of noncircular attribute grammars Fundamenta Inf. 20, 4, 285-331.
    [112]
    NOTK~N, D. 1985. The Gandalf Project. J. Syst Softw. 5, 91 106.
    [113]
    PAAKKI, J. 1991. PROFIT: A system integrating logic programming and attribute grammars. In Proceedings of the 3rd Internattonal Symposium on Programming Language Implementation and Logic Programming ( PLILP '91). Lecture Notes in Computer Science, vol. 528, J. Maluszynski and M. Wlrsing, Eds. Springer- Verlag, New York, 243-254.
    [114]
    PAAKKI, J. 1990. A logic-based modification of attribute grammars for practical compiler writing. In Procee&ngs of the 7th International Conference on Logw Programmzng, D. H. D Warren and P. Szeredi, Eds. The MIT Press, Cambridge, Mass., 203-217.
    [115]
    PAAKKL J. AND TOPPOLA, K. 1990. An error-recovering form of DCGs. Acta Cybernetwa 9, 3, 211-221.
    [116]
    PAULSON, L. 1982. A semantics-directed compiler generator In Proceedzngs of the 9th Annual ACM Symposium on Principles of Programruing Languages CMbuquerque, New Mex.) ACM, New York, 224-233.
    [117]
    PEREIRA, F. C. N. AND WARREN, D H. D. 1980. Definite clause grammars for language analysis--A survey of the formahsm and a comparison with augmented transition networks. Artif. Intell. 13, 231-278.
    [118]
    PEYTON JONES, S. L. 1985. Yacc in Sasl--An exercise in functional prog~camming. Softw. Pract. Exp. 15, 8, 807-820
    [119]
    REISS, S. P. 1987 Automatic compiler productmn: The front end. IEEE Trans. Softw. Eng. SE-I& 6, 609-627.
    [120]
    REISS, S. P. 1983. Generation of compiler symbol processing mechanisms from specifications. ACM Trans. Program. Lang. Syst 5, 2, 127-163.
    [121]
    REPS, T. W. AND TEITELBAUM, T. 1989. The Synthesizer Generator--A System for Constructing Language-Based Editors. Springer-Verlag, New York.
    [122]
    R/4IHA, K.-J., SAARINEN, M., SARJAKOSK!, M, SIPPU, S., SOISALON-SOININEN, E., AND TIENARI, M. 1983. Revised report on the compiler writing system HLP78. (Helsinki Language Processor). Rep A-1983-1, Dept of Computer Science, Univ of Helsinkl.
    [123]
    RIDJANOVIC, D. AND BRODIE, M. L. 1982. Defining database dynamics with attribute grammars. Inf. Process. Lett. 14~ 3, 132-138.
    [124]
    SATALUm, S. R. 1988 Generahzing semantic rules of attribute grammars using logic programs. Ph.D. thesis, Univ. of Iowa, Ames, Iowa.
    [125]
    SESHADRI, V. AND WORTMAN, D. B. 1991. An investigation into concurrent semantic analysis. Softw. Pract. Exp. 21, 12, 1323 1348
    [126]
    SETHL R. 1989. ProgrammLng Languages Concepts and Constructs. Addmon-Wesley, Readlng, Mass.
    [127]
    SHAW, M. 1990. Prospects for an enganeering discipline of software. IEEE Softw. 7~ 6, 15-24.
    [128]
    SHINODA, Y. AND KATAYAMA, T. 1990. Object-oriented extension of attribute grammars and its implementation. In Proceedzngs of the International Conference on Attribute Grammars and their Appllcattons. Lecture Notes in Computer Science, vol. 461. Springer-Verlag, New York, 177 191.
    [129]
    SHINODA, Y. AND KATAYAMA, T 1988. Attribute grammar based programming and ~ts enwronment. In Proceedings of the 21st Hawaz{ Internatwnal Conference on System Sctences. IEEE Computer Society Press, 612-620.
    [130]
    STEEL, T B., JR. (ED). 1966. Formal language description languages for computer programming. In Procee&ngs of the IFIP Working Conference on Formal Language Descmptzon Languages. North-Holland, Amsterdam.
    [131]
    TARHIO, J. 1989. A compiler generator for attribute evaluatmn during LR parsing. In Procee&ngs of the 2nd International Workshop on Compder Compders and Htgh-Speed Compdatzon Lecture Notes in Computer Science, vol. 371, D. Hammer, Ed. Sprmger-Verlag, New York, 146 159.
    [132]
    TOEZKL J., GYIMOTHY, T., HORVATH, T., AND KocsIs, F. 1989. Generating modular compilers m PROF-LP In Proceedings of the Works}~op on Compiler Compiler and P21gh Speed Compdattwn. Berlin (GDR) Rep. 3/89, Akademm der Wissenschaften der DDR, 156-166.
    [133]
    TRAHANIAS, P. AND SKORDALAKIS, E. 1990 Syntactic pattern recognition of the ECG IEEE Trans Patt. Anal. Machlne IntelL 12, 7, 648-657.
    [134]
    TSAI, W. AND FU, K. S. 1980 Attributed grammar A tool for combining syntactic and statistical approaches to pattern recognitmn. IEEE Trans Syst Man Cybernet. 10,873 885.
    [135]
    UHL, J., DROSSOPOULOU, S., PERSCH, G., Goos, G., DAUSMANN, M., WINTERSTEIN, G, AND KIRCHG~SSNER, W. 1982. An Attribute Grommar for the Semantic Analysis of Ada. Lecture Notes in Computer Science, vol. 139. Springer- Verlag, New York.
    [136]
    WAITE, W. M. 1990. Use of attribute grammars in compiler construction. In Proceedings of the International Conference on Attribute Grammars and their Applications. Lecture Notes in Computer Science, vol. 461. Springer-Verlag, New York, 255-266.
    [137]
    WAITE, W. M. 1986. Generator for attributed grammars--Abstract data type. Arbeitspapiere der GMD 219, Gesellschaft fdr Mathematik und Datenverarbeitung mbH.
    [138]
    VAN DE BURGT, S. P. AND TILANUS, P. A. J. 1989. Attributed ASN. 1. In Proceedings of the 2nd International Conference on Formal Description Techniques for Distributed Systems and Communication Protocols. North-Holland, Amsterdam, 298-310.
    [139]
    WARRE~, D. H. D. 1980. Logic programming and compiler writing. Softw. Pract. Exp. 10, 2, 97-125.
    [140]
    WASSE~AN, A. I. (ED.). 1980. Tutorial on programming language design. In Proceedings oflEEE COMPSAC '80. IEEE Computer Society Press, Los Alamitos, Calif.
    [141]
    WATT, D. A. 1991. Programming Language Syntax and Semantics. Prentice-Hall, Englewood Cliffs, N.J.
    [142]
    WATT, D. A. 1990. Programming Language Concepts and Paradigms. Prentice-Hall, Englewood Cliffs, N.J.
    [143]
    WATT, D. A. 1985. Modular description of programming languages. Rep. A-81-734, Computer Science Division-EECS, Univ. of California, Berkeley, Calif.
    [144]
    WATT, n. A. 1984. Executable semantic descriptions. Softw. Pract. Exp. 14, 1, 13-43.
    [145]
    WILHELM, R. 1982. LL- and LR-attributed grammars. In Programmiersprachen und Programmentwicklung, 7. Fachtagung, H. WSssner, Ed. Inform atik-Fachberichte. Springer-Verlag, Berlin, 151-164.
    [146]
    VOGT, H. H., SWIERSTRA, S. D., AND KUIPER, M. F. 1989. Higher order attribute grammars. In Proceedings of the ACM SIGPLAN '89 Conference on Programming Language Design and Implementation. ACM SIGPLAN Not. 24, 7, 131-145.
    [147]
    VORT~N, S. A. ~D LEBL~c, R. J. 1988. A naming specification language for syntaxdirected editors. In Proceedings of the IEEE Conference on Computer Languages (Miami Beach, Fla.). IEEE, New York, 250-257
    [148]
    YELLIN, D. M. 1988. Attribute Grammar Inversion and Source-to-Source Translation. Lecture Notes in Computer Science, vol. 302. Springer- Verlag, New York.
    [149]
    ZARING, A. K. 1990. Parallel evaluation in attribute grammar-based systems. Ph.D. thesis, Tech. Rep. 90-1149, Dept. of Computer Science, Cornell University, Ithaca, N.Y.

    Cited By

    View all
    • (2023)Nanopass Attribute GrammarsProceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3623476.3623514(70-83)Online publication date: 23-Oct-2023
    • (2023)Function Definition Language FDL and its implementationJournal of Computer Science and Technology10.1007/BF0294874514:4(414-421)Online publication date: 22-Mar-2023
    • (2022)Searching entangled program spacesProceedings of the ACM on Programming Languages10.1145/35476226:ICFP(23-51)Online publication date: 31-Aug-2022
    • Show More Cited By

    Recommendations

    Reviews

    Donald J. Bagert

    Attribute grammars are a major formalism for specifying programming language semantics. Section 1 includes an introduction to the basic concepts, definitions, notations, and limitations of attribute grammars, along with a small example. The remainder of the paper concentrates on a classification and survey of different attribute grammar paradigms, with an example included in most cases. Section 2 investigates different organizational paradigms, which help in the management of attribute grammars: attribution paradigms, structured attribute grammars, modular attribute grammars, and object-oriented attribute grammars. Section 3 discusses different evaluation paradigms, which use special mechanisms to increase the evaluation power of attribute grammars. Logic attribute grammars, functional attribute grammars, parallel attribute evaluation, and incremental attribute evaluation are covered. A helpful feature used in the discussion of the various paradigms is the large, bordered lines that equate definitions from a specific paradigm to terms in the general attribute grammar paradigm. For instance, for object-oriented attribute grammars, Nonterminal = Class and Production = Class are displayed in this way. Although a comprehensive discussion of attribute grammars needs more than 60 pages, the author has done a good job of providing a thorough explanation of the topic within the space limitations of a journal paper, and the more than 140 references will provide any additional detail required. Therefore, I recommend this paper to those who already have a basic knowledge of programming language concepts and want to further their knowledge of semantic formalisms in this area.

    Access critical reviews of Computing literature here

    Become a reviewer for Computing Reviews.

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Computing Surveys
    ACM Computing Surveys  Volume 27, Issue 2
    June 1995
    154 pages
    ISSN:0360-0300
    EISSN:1557-7341
    DOI:10.1145/210376
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 June 1995
    Published in CSUR Volume 27, Issue 2

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. attribute grammars
    2. blocks
    3. classes
    4. compiler writing systems
    5. functional dependencies
    6. incomplete data
    7. incrementality
    8. inheritance
    9. language processing
    10. language processor generators
    11. lazy evaluation
    12. logical variables
    13. objects
    14. parallelism
    15. processes
    16. programming paradigms
    17. semantic functions
    18. symbol tables
    19. unification

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)185
    • Downloads (Last 6 weeks)9
    Reflects downloads up to 26 Jul 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Nanopass Attribute GrammarsProceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3623476.3623514(70-83)Online publication date: 23-Oct-2023
    • (2023)Function Definition Language FDL and its implementationJournal of Computer Science and Technology10.1007/BF0294874514:4(414-421)Online publication date: 22-Mar-2023
    • (2022)Searching entangled program spacesProceedings of the ACM on Programming Languages10.1145/35476226:ICFP(23-51)Online publication date: 31-Aug-2022
    • (2022)Automatic compiler/interpreter generation from programs for Domain-Specific Languages: Code bloat problem and performance improvementJournal of Computer Languages10.1016/j.cola.2022.10110570(101105)Online publication date: Jul-2022
    • (2022)Generating test as a web service (TaaWS) through a method-based attribute grammarInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-022-00649-z24:4(511-527)Online publication date: 1-Aug-2022
    • (2022)Bronco: A Universal Authoring Language for Controllable Text GenerationInteractive Storytelling10.1007/978-3-031-22298-6_35(541-558)Online publication date: 4-Dec-2022
    • (2020)From Grammar Inference to Semantic Inference—An Evolutionary ApproachMathematics10.3390/math80508168:5(816)Online publication date: 18-May-2020
    • (2020)A Model for Creating Interactive eBooks for eLearningFuture Internet10.3390/fi1212022312:12(223)Online publication date: 7-Dec-2020
    • (2020)Strategic tree rewriting in attribute grammarsProceedings of the 13th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3426425.3426943(210-229)Online publication date: 16-Nov-2020
    • (2020)Inferring Absolutely Non-Circular Attribute Grammars with a Memetic AlgorithmApplied Soft Computing10.1016/j.asoc.2020.106956(106956)Online publication date: Dec-2020
    • 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

    Full Access

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media