| H. H. Vogt, S. D. Swierstra & M. F. Kuiper, "Higher Order Attribute Grammars," Proceedings of the ACM-SIGPLAN '89 Conference on Programming Language Design and Implementation 24 (June 1989), 131--145. |
....grammars may contain spurious attributes that are never evaluated, and indeed that need not be de ned. 1 Motivation The modular de nition of programming languages is a long standing problem, and a lot of work has been devoted to its solution in the context of attribute grammars e.g. [1, 3, 8, 10, 11, 13, 14, 19, 17, 21, 25, 29, 32]. Some of these proposals take inspiration from the object oriented paradigm, advocating the use of inheritance to achieve modularisation. Others take inspiration from functional programming, by employing higher order functions to achieve a separation of concerns. The present paper is a modest ....
....A is speci ed by A t (a) and indicates the possible values that can be assigned to occurrences of a. A set of base types T b is left unde ned but typically includes integers, strings, etc. In traditional attribute grammars de ned by Knuth [18] A t (a) 2 T b . In higher order attribute grammars [29, 32, 31] attributes can also take on the value of syntax trees whose type is the terminal or nonterminal symbol at the root of the tree. Thus A t (a) 2 T b [ N [ T . In higher order attribute grammars, some of the nonterminals on the right hand side of the production are classi ed as nonterminal ....
H. Vogt, S. D. Swierstra, and M. F. Kuiper. Higher-order attribute grammars. In Conference on Programming Languages Design and Implementation, pages 131{ 145, 1990. Published as ACM SIGPLAN Notices, 24(7).
....A is speci ed by A t (a) and indicates the possible values that can be assigned to occurrences of a. A set of base types T b is left unde ned but typically includes integers, strings, etc. In traditional attribute grammars de ned by Knuth [18] A t (a) 2 T b . In higher order attribute grammars [29, 32, 31] attributes can also take on the value of syntax trees whose type is the terminal or nonterminal symbol at the root of the tree. Thus A t (a) 2 T b [ N [ T . In higher order attribute grammars, some of the nonterminals on the right hand side of the production are classi ed as nonterminal ....
H. Vogt. Higher order attribute grammars. PhD thesis, Department of Computer Science, Utrecht University, The Netherlands, 1989.
.... on the technique for incremental visit sequence evaluation proposed and implemented by Maddox [12] who refines earlier work by Reps [14] The result, which handles multiple subtree replacement (or equivalently, multiple edit sites) is essentially analogous to the technique of Swierstra and Vogt [17]. We describe this common technique in this section. 2.1 Visit Sequence Evaluators A visit sequence evaluator uses a protocol of the attributes for every nonterminal: a sequence of pairs of sets of attributes hI i; hI n ; S n i. Given any ordered attribute grammar, one may find a ....
Swiestra, D. and H. Vogt, Higher order attribute grammars, in: H. Alblas and B. Melichar, editors, Attribute Grammars, Applications and Systems. International Summer School SAGA Proceedings, Lecture Notes in Computer Science 545, Springer-Verlag, Berlin, 1991 pp. 256--296.
....the tree. For attribute grammars tree traversal is an issue for the implementation and not for the user. Attribute grammars are convenient for expressing analysis on a tree but they have the limitation that tree transformations cannot be easily expressed. However, higher order attribute grammars [29] remedy this limitation to a certain extent. A new tree can be constructed in one of the attributes which can then be passed on as an ordinary tree to the next higher order attribute function. Combining attribute grammars with object orientation. JastAdd [15] is very recent work in the field of ....
H. H. Vogt, S. D. Swierstra, and M. F. Kuiper. Higher order attribute grammars. $IGPLAN Notices, 24(7):131-145, 1989. Proceedings of the ACM $IGPLAN '89 Conference on Programming Language Design and Implementation.
....calls must be found, so that pending calls can be compared with entries in the cache in constant time, even when the function calls have large arguments. Secondly, techniques for purging the cache must be developed, so that it will not be filled up with old and useless information. In [PSV92, VSK89, Vog93] Vogt et al. develop an incremental method for ordered attribute grammars, a subclass of strongly non circular attribute grammars, based on function caching. In their approach multiple instances of the same tree are shared by means of memoed tree constructors. In this way, comparing ....
....then causes a change in the symbol table which triggers an incremental update of its views. 5.8. 2 Higher order attribute grammars Higher order attribute grammars (HAGs) have been designed to remove the separation between the syntax description and the semantic description in attribute grammars [VSK89, TC90] In implementing higher order attribute grammars, Vogt et al. VSK90, Vog93] used, as we did, the principle of applying incremental methods for operations on programs and their substructures to operations on attributes. In describing a symbol table by means of grammar rules with attributes ....
H.H. Vogt, S.D. Swierstra, and M.F. Kuiper. Higher order attribute grammars. In Proceedings of the ACM SIGPLAN'89 Conference on Programming Language Design and Implementation, pages 131--145, 1989. Appeared as SIGPLAN Notices 24(7).
....make use of the relation between attribute grammars and functional languages by implementing an attribute grammar as a functional program and use sophisticated transformation techniques for incremental evaluation. See for instance work by Pennings, Swierstra, Vogt and Kuiper [PSV92, VSK90, Vog93] In most programming environments derived from attribute grammars, however, incremental attribute evaluation is based on annotating the abstract syntax tree of a program with attributes in which semantic values can be stored. When the program is edited, subtrees in the abstract syntax tree are ....
....must be found, so that pending calls can be compared with entries in the cache in constant time, even when the function calls have large arguments. Secondly, techniques for purging the cache must be developed, so that it will not be filled up with old and useless information. In [PSV92, VSK89, Vog93] Vogt et al. develop an incremental method for ordered attribute grammars, a subclass of strongly non circular attribute grammars, based on function caching. In their approach multiple instances of the same tree are shared by means of memoed tree constructors. In this way, comparing function ....
[Article contains additional citation context not shown here]
H.H. Vogt. Higher Order Attribute Grammars. PhD thesis, Rijksuniversiteit Utrecht, 1993.
....syntax trees, ASTs, expansion trees can be used for representing the new language constructs. Similarly to macros which are not expanded until compile time, expansion trees are not constructed until an attributed syntax tree is evaluated. This can be done by using Higher Order Attribute Grammars[VSK89] which allow a node in the tree to be defined by the value of an attribute. We want such nodes to be invisible to the user, but used by the system to perform attribute evaluation, and thus code generation and staticsemantic checking. Since the structure of an expansion tree follows the base ....
H. H. Vogt, S. D. Swierstra and M. F. Kuiper. Higher Order Attribute Grammars. Proceedings of the ACM SIGPLAN `89 Conference on Programming Language Design and Implementation, ACM Sigplan Notices, 24(7), 1989.
....grammars [1] an implicit tree traversal function is present. It is comparable to our generated traversal functions. Since they are implicit it is not possible to manipulate syntax trees so it is difficult to express program transformations using that technology. Higher order attribute grammars [21] is an extended form of attribute grammars in which the traversal functions are no longer implicit. In principle, we think that it should be possible to implement our generic approach using higher order grammars. We have not seen any publication that discusses the generic construction of ....
H. H. Vogt, S. D. Swierstra, and M. F. Kuiper. Higher order attribute grammars. SIGPLAN Notices, 24(7):131--145, 1989. Proceedings of the ACM SIGPLAN '89 Conference on Programming Language Design and Implementation.
....6 discusses applications of scaffolding both in our own work, and work done in IT industry. In Section 7 we conclude by summarizing the main points of the paper. Related work There is a rich body of work in the realm of scaffolding abstract syntax trees (ASTs) We mention attribute grammars [1, 40] where in addition to grammar rules, also rules for attributing the nodes of the ASTs can be defined. In fact, this could be called scaffolding as well albeit that the underlying AST is decorated and initially the source code itself is not scaffolded. In many and diverse reverse engineering ....
H.H. Vogt, S.D. Swierstra, and M.F. Kuiper. Higher order attribute grammars. SIGPLAN Notices, 24(7):131--145, 1989. Proceedings of the ACM SIGPLAN '89 Conference on Programming Language Design and Implementation.
....occurrences in SSL can only be used in a very restricted way and do not have a clear semantics. In MAX, such references are obsolete, as distant attribute occurrences can be refered to through their node. Higher Order Attribute Grammars Like the MAX framework, higher order attribute grammars [VSK89] are a proper generalization of classical attribute grammars. They allow 4 In fact, we tested a suite of programs. But, as all programs showed almost the same behaviour, we decided to give only the figures for one program. Notice that this is in contrast to mesuring code quality of compiled ....
H. Vogt, S. Swierstra, and M. Kuiper. Higher order attribute grammars. In ACM Conference on Progamming Language Design and Implementation, 1989. 14
....underlying context free grammar by assigning values to various attributes associated with the nodes of the tree. Here, the derivation tree is static; it is not possible to modify its structure. Higher order attribute grammars (HO AGs for short) were developed by Vogt, Swierstra, and Kuiper in [VSK89] in order to overcome this restriction. They remove the distinction between tree construction and attribute evaluation by allowing the derivation tree to be extended by new subtrees which were computed as attribute values. More exactly, they introduce so called nonterminal attributes which act as ....
....of the underlying grammar. Thus a tree extension is caused by assigning a (tree) value to a nonterminal attribute occurrence. Then the usual attribute evaluation is performed on the extended derivation tree. This concept is useful in practical applications such as multi pass compilers (cf. [VSK89]) syntax directed programming environments ( TC90] or compilers for supercombinators ( SV91] It is obvious that these higher order features increase the programming comfort of the attribute grammar formalism. In this paper we raise the question whether they also have any impact on its ....
[Article contains additional citation context not shown here]
H.H. Vogt, S. D. Swierstra, and M.F. Kuiper. Higher order attribute grammars. ACM SIGPLAN Notices, 24(7):131--145, 1989. 29
....Furthermore, because the semantics is a functional program, one immediately obtains a prototype for experimenting with newly defined features. Naturally the results of this paper do not stand on their own, and many of the ideas have been gleaned from the attribute grammar literature, in particular [5, 6, 16, 19, 20, 23, 26]. Especially the thesis by Stephen Adams [1] has been an inspiration for this work. Attribute grammars and functional programming There exists a well known encoding of attribute grammars into programming languages that have lazy evaluation [14, 18] This encoding has been dismissed by others on ....
H. Vogt. Higher order attribute grammars. PhD thesis, Department of Computer Science, Utrecht University, The Netherlands, 1989. 20
....Furthermore, because the semantics is a functional program, one immediately obtains a prototype for experimenting with newly de ned features. Naturally the results of this paper do not stand on their own, and many of the ideas have been gleaned from the attribute grammar literature, in particular [5, 6, 16, 19, 20, 23, 26]. Especially the thesis by Stephen Adams [1] has been an inspiration for this work. Attribute grammars and functional programming There exists a well known encoding of attribute grammars into programming languages that have lazy evaluation [14, 18] This encoding has been dismissed by others on ....
H. Vogt. Higher order attribute grammars. PhD thesis, Department of Computer Science, Utrecht University, The Netherlands, 1989. 20
....high readability and high maintainability, and clear description caused by functional computation of attributes are the positive characteristics of AGs. Using AGs, interactive programming environments are often described as attributed trees with several AG extensions, e.g. higher order AGs (HAGs)[VSK89][TC90] subtree replacement in the Synthesizer Generator[Gra96] and in object oriented AGs(OOAG) SK90] GISK93] recursive AGs(RAGs) Far86] and remote access[Gra96] KW94] Hed99] Unfortunately, it was not easy to compare various denitions for these extensions in a formal way. One of the reasons is ....
.... Katayama 2 Note that T includes not only T S ( Sigma G ; OE) a term set for derivation trees whose roots are labeled with the start symbol S) but also TX ( Sigma G ; OE) whose roots are labeled with any other nonterminals X 2 N . Def.3.3,3.4 and 3. 5 were originally dened by Vogt et al. in [VSK89], and we slightly modied them to t our notations. Denition 3.6 (A Semantic Function of AGs: E) A semantic function E : T R is dened here, which is a mapping from a set of terms that represents derivation trees to a set of records that represents attributed trees. For a production rule p : X 0 ....
[Article contains additional citation context not shown here]
H. H. Vogt, S. D. Swierstra, and M. F. Kuiper. Higher order attribute grammars. In Proc. ACM SIGPLAN'89 Conf. on Programming Language Design and Implementation, Vol. 25, No. 6, pages 131145, 1989. 78
....of applications of document transformation. To this end, we have been developing a system called SIMON 1 based on attribute grammars and their higher order extensions (and other related extensions) which have been receiving much attention recently in the area of programming language studies [1,5,6,7]. 1 SI and MON stand for restructuring and documents respectively in Japanese. CCC 0894 3982 93 040361 12 Received 15 August 1993 1993 by John Wiley Sons, Ltd. Revised 1 December 1993 1998 by University of Nottingham. 362 A. FENG AND T. WAKAYAMA source documents sd1, sdk ....
....Thus, when the source trees are modified, the result tree can be incrementally updated by recomputing only the portion of the result tree that is affected by the modification. 4. 2 Composition of transformations It is known that higher order attribute grammars can express arbitrary computation [7]. Thus, in theory, any computable document transformation can be specificed in a HAG and hence in a HAG scheme. However, it is also known that by decomposing a transformation, one can obtain a sequence of computationally much simpler transformations [5] Thus, SIMON also supports composition of ....
H.H. Vogt, Higher-Order Attribute Grammars, Ph.D. dissertation, Department of Computer Science, University of Utrecht, 1993.
.... former is through higherorder (and related) extensions of attribute grammars whereas the latter is done by externally defined programs and it is for computation not naturally amenable to the syntax directed paradigm.The current implementation of SIMONemploys the higher order extensionproposed in [1] for the syntax directed computation, and C for the content oriented computation. KEY WORDS Structured documents Document transformation Document type evolution Document assembly Multiview documents Attribute grammars 1 INTRODUCTION One of the challenging issues in the study of structured ....
....of applications of document transformation. To this end, we have been developing a system called SIMON 1 based on attribute grammars and their higher order extensions (and other related extensions) which have been receiving much attention recently in the area of programming language studies [1,5,6,7]. 1 SI and MON stand for restructuring and documents respectively in Japanese. CCC 0894 3982 93 040361 12 Received 15 August 1993 1993 by John Wiley Sons, Ltd. Revised 1 December 1993 1998 by University of Nottingham. 362 A. FENG AND T. WAKAYAMA source documents sd1, sdk ....
[Article contains additional citation context not shown here]
H.H. Vogt, S.D. Swierstra, and M.F. Kuiper, `Higher-Order Attribute Grammars', in Proceedings of the ACM SIGPLAN'89 Conference on Programming Language Design and Implementation, 131--145, ACM Press, New York, (1989).
No context found.
H. H. Vogt, S. D. Swierstra, and M. F. Kuiper. Higher order attribute grammars. In Proceedings of the ACM SIGPLAN 1989.
....Prague, June 4 13, 1991 and a copy of the paper which will appear in the SAGA proceedings. tSupport has been received from the Netherlands Organisation for Scientific Research N.W.O. under NFI project STOP, project Specification and Transformations Of Programs. Higher order attribute grammars [Vogt, Swierstra and Kuiper 89] were introduced by promoting abstract syntax trees (i.e. recursive data structures) to first class citizens : ably can be the result of a semantic function can be passed as attributes can be grafted into the current tree, and then be attributed themselves, probresulting in further trees ....
....the original tree. Trees used as a value and trees defined by attribution are known as non terminal attributes (NTAs) It is known that the (incremental) attribute evaluator for Ordered AGs [Kastens 80, Yeh 83, Reps and Teitelbanm 88] can be trivially adapted to handle Ordered Higher Order AGs [Vogt, Swierstra and Kuiper 89] The adapted evaluator, however, attributes each instance of equal NTAs separately. This leads to nonoptimal incremental behaviour after a change to a NTA, as can be seen in the recently published algorithm of [TC90] Our evaluation algorithm [Vogt, Swierstra and Kuiper 91] handles multiple ....
[Article contains additional citation context not shown here]
Vogt, H.H., S.D. Swierstra and M.F. Kniper. Higher Order Attribute Grammars. ACM SIGPLAN '89 Conference on Programming Language Design and Implementation, Portland, Oregon, pages 131-145, June, 1989.
....and Jourdan 90] Revised version of RUU CS 90 36 and a copy of the paper in the CSN 91 proceedings. tSupport has been received from the Netherlands Organisation for Scientific Research N.W.O. under NFI project STOP, project Specification and Transformations Of Programs. Higher order AGs ( Vogt, Swierstra and Kuiper 89, Teitelbaum and Chapman 90] and [Swierstra and Vogt 91] remove the artificial distinction between the syntactic level (context free grammar) and the semantic level (attributes) in attribute grammars. This strict separation is removed in two ways: First trees can be used directly as a value ....
....defined by attribution. Trees used as a value and trees defined by attribution are known as non terminal attributes (NTAs) It is known that the (incremental) attribute evaluator for Ordered AGs [Kastens 80, Yeh 83 Reps and Teitelbaum 88] can be trivially adapted to handle Ordered Higherorder AGs [Vogt, Swierstra and Kuiper 89] The adapted evaluator, however, attributes each instance of equal NTAs separately. This leads to nonoptimal incremental behaviour after a change to a NTA, as can be seen in the recently published algorithm of [Teitelbaum and Chapman 90] Our evaluation algorithm handles multiple occurrences of ....
[Article contains additional citation context not shown here]
Vogt, H.H., S.D. Swierstra and M.F. Kuiper. Higher Order Attribute Grammars. ACM SIGPLAN '89 Conference on Programming Language Design and Implementation, Portland, Oregon, pages 131-145, June, 1989.
....evaluation. Section 4 presents an eoeective cache management strategy. In section 5 results of our strategy are presented. Section 6 brieAEy compares our strategy with other approaches. Section 7 presents the conclusions. 2 Incremental Attribute Evaluation Higher order attribute grammars (HAG) [VSK89] extend the classical attribute grammar formalism [AM91, Paa95] In a HAG an attribute itself can have attributes (which can have attributes, etc. Such an attribute is called an attributable attribute (an ata) Traditional attribute evaluators have problems with the incremental evaluation of ....
Harald Vogt, Doaitse Swierstra, and Matthijs Kuiper. Higher order attribute grammars. In ACM SIGPLAN '89 Conference on Programming Language Design and Implementation, volume 24, pages 131145. ACM, July 1989.
....is the set of aoeected and newborn attribute instances. The traditional approachtoachieve incremental evaluation involves propagating changes of attribute values through the attributed tree [RTD83,RT89] 2. 1 Higher Order Attribute Grammars Higher Order Attribute Grammars (HAG) [VSK89] are an important extension to the attribute grammar formalism. Conventional attribute grammars are augmented with higher order attributes. Higher order attributes are attributes whose value is a tree. We may associate, once again, attributes with such a tree. Attributes of these so called ....
Harald Vogt, Doaitse Swierstra, and Matthijs Kuiper. Higher order attribute grammars. In ACM SIGPLAN '89 Conference on Programming Language Design and Implementation,volume 24, pages 131145. ACM, July 1989.
....they are applied, as arguments results of the visit functions which perform the dioeerent visits to that particular constructor. This is exactly as syntactically referenced symbols (i.e. grammar symbols which are used as normal values in the semantic equations of a Higher order Attribute Grammar [VSK89]) are handled by the attribute evaluators. Thus, the techniques used to handle syntactic references can be used to handle generic symbols too. In this paper we present the evaluators obtained with this technique only. For a formal derivation of such evaluators the reader is referred to [Sar] ....
Harald Vogt, Doaitse Swierstra, and Matthijs Kuiper. Higher order attribute grammars. In ACM SIGPLAN '89 Conference on Programming Language Design and Implementation, volume 24, pages 131145. ACM, July 1989. 204
No context found.
H. H. Vogt, S. D. Swierstra & M. F. Kuiper, "Higher Order Attribute Grammars," Proceedings of the ACM-SIGPLAN '89 Conference on Programming Language Design and Implementation 24 (June 1989), 131--145.
No context found.
H. H. Vogt, S. D. Swierstra, and M. F. Kuiper. Higher order attribute grammars. In Proc. ACM SIGPLAN'89 Conf. on Programming Language Design and Implementation, Vol. 25, No. 6, pages 131145, 1989. 78
No context found.
H. Vogt, D. Swierstra, and M. Kuiper. Higher order attribute grammars. In ACM SIGPLAN '89 Conference on Programming Language Design and Implementation,vol- ume 24, pages 131--145. ACM, July 1989.
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC