|
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
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked 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
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
| |
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
|
|
| |
6
|
|
| |
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
|
|
| |
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
|
|
| |
11
|
|
| |
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
|
|
 |
15
|
|
 |
16
|
|
| |
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
|
|
| |
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
|
|
| |
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
|
|
| |
31
|
DEPARTMENT OF DEFENSE. 1983. The Programming Language Ada, Reference Manual. ANSI/MIL- STD-1815A-1983. Springer-Verlag, New York.
|
| |
32
|
|
| |
33
|
|
| |
34
|
DERANSART, P. AND MALUSZ~q'~SKI, J. 1985. Relating logic programs and attribute grammars. J. Logic Program. 2, 2, 119 155.
|
| |
35
|
|
| |
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
|
|
| |
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
|
|
 |
41
|
|
 |
42
|
|
 |
43
|
R. Farrow , T. J. Marlowe , D. M. Yellin, Composable attribute grammars: support for modularity in translator design and implementation, Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.223-234, January 19-22, 1992, Albuquerque, New Mexico, United States
[doi> 10.1145/143165.143210]
|
| |
44
|
|
| |
45
|
|
| |
46
|
|
| |
47
|
|
 |
48
|
|
 |
49
|
Harald Ganzinger , Robert Giegerich , Ulrich Möncke , Reinhard Wilhelm, A truly generative semantics-directed compiler generator, Proceedings of the 1982 SIGPLAN symposium on Compiler construction, p.172-184, June 23-25, 1982, Boston, Massachusetts, United States
|
| |
50
|
|
| |
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
|
|
| |
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
|
|
| |
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
|
|
| |
59
|
HEDIN, G. 1992. Incremental semantic analysis. Doctoral dissertation, Lund University.
|
| |
60
|
|
 |
61
|
|
 |
62
|
|
 |
63
|
|
 |
64
|
|
| |
65
|
JOHNSON, S. C. 1975. YACC, yet another compiler compiler. Rep. CS-TR-32, Bell Laboratories, Murray Hill, N.J.
|
| |
66
|
|
 |
67
|
|
| |
68
|
JONES, R. 1986. Flex--An experience of Miranda. UKC Computing Laboratory Rep. 38, Univ. of Kent at Canterbury.
|
 |
69
|
|
| |
70
|
|
 |
71
|
|
| |
72
|
|
| |
73
|
|
 |
74
|
|
| |
75
|
|
| |
76
|
KASTENS, U. 1980. Ordered attributed grammars. Acta Informatica 13, 229-256.
|
| |
77
|
|
| |
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
|
|
 |
81
|
|
| |
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
|
|
| |
86
|
|
| |
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
|
|
| |
91
|
|
| |
92
|
|
 |
93
|
|
| |
94
|
|
| |
95
|
|
| |
96
|
|
| |
97
|
|
| |
98
|
|
| |
99
|
|
| |
100
|
|
 |
101
|
|
| |
102
|
LEwis, P. M., ROSENKRANTZ, D. J., AND STEARNS, R. E. 1974. Attributed translations. J. Comput. Syst. Sci. 9,279-307.
|
| |
103
|
|
| |
104
|
|
| |
105
|
LONGLEY, M. 1987. Generating parsers in Miranda. UKC Computing Laboratory Rep. 49, Univ. of Kent at Canterbury.
|
| |
106
|
|
| |
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
|
|
| |
109
|
MAYO~I, B. 1981. Attribute grammars and mathematical semantics. SIAM J. Comput. 10, 3, 503 518.
|
 |
110
|
Peter Naur , J. W. Backus , F. L. Bauer , J. Green , C. Katz , J. McCarthy , A. J. Perlis , H. Rutishauser , K. Samelson , B. Vauquois , J. H. Wegstein , A. van Wijngaarden , M. Woodger, Report on the algorithmic language ALGOL 60, Communications of the ACM, v.3 n.5, p.299-314, May 1960
[doi> 10.1145/367236.367262]
|
| |
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
|
|
| |
115
|
|
 |
116
|
|
| |
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
|
|
| |
119
|
|
 |
120
|
|
| |
121
|
|
| |
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
|
|
| |
126
|
|
| |
127
|
|
| |
128
|
|
| |
129
|
|
| |
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
|
|
| |
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
|
|
| |
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
|
|
| |
136
|
|
| |
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
|
|
| |
142
|
|
| |
143
|
WATT, D. A. 1985. Modular description of programming languages. Rep. A-81-734, Computer Science Division-EECS, Univ. of California, Berkeley, Calif.
|
| |
144
|
|
| |
145
|
|
 |
146
|
|
| |
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
|
|
| |
149
|
|
CITED BY 27
|
|
George Economakos , George Papakostantinou , Panayotis Tsankas, Incorporating multi-pass attribute grammars for the high-level synthesis of ASICs, Proceedings of the 1998 ACM symposium on Applied Computing, p.45-49, February 27-March 01, 1998, Atlanta, Georgia, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Christos Pavlatos , Alexandros C. Dimopoulos , Andrew Koulouris , Theodore Andronikos , Ioannis Panagopoulos , George Papakonstantinou, Efficient reconfigurable embedded parsers, Computer Languages, Systems and Structures, v.35 n.2, p.196-215, July, 2009
|
|
|
Christian Hofer , Klaus Ostermann , Tillmann Rendel , Adriaan Moors, Polymorphic embedding of dsls, Proceedings of the 7th international conference on Generative programming and component engineering, October 19-23, 2008, Nashville, TN, USA
|
|
|
|
|
|
|
|
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
Additional Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
D.3.4
Processors
Subjects:
Compilers
F.
Theory of Computation
F.4
MATHEMATICAL LOGIC AND FORMAL LANGUAGES
General Terms:
Design,
Languages,
Theory
Keywords:
attribute grammars,
blocks,
classes,
compiler writing systems,
functional dependencies,
incomplete data,
incrementality,
inheritance,
language processing,
language processor generators,
lazy evaluation,
logical variables,
objects,
parallelism,
processes,
programming paradigms,
semantic functions,
symbol tables,
unification
REVIEW
"Donald J. Bagert, Jr. : Reviewer"
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.
more...
|