Author: William Harry Maddox
Publisher:
ISBN:
Category : Computer programming
Languages : en
Pages : 470
Book Description
Abstract: "Language-based programming environments provide some or all of the functionality of a compiler, an interactive debugger, a browser, and a configuration manager behind a unified user interface based on an editing paradigm. As the user edits a program, the changes are processed incrementally, allowing for low-latency updates to derived information. This information can be made available to interactive environment services, such as browsing, navigation, and 'real-time' error-reporting. In this dissertation, we address an important subproblem in the construction of such environments, the generation of static semantic analyzers that operate in an incremental mode. Our work is embodied in the Colander II system, which introduces both a new metalanguage for the declarative specification of static semantic analyses and new techniques for generating an incremental analyzer from these specifications automatically. Our specification metalanguage melds the advantages of traditional attribute grammars, including amenability to extensive generation-time analysis, with the expressiveness and client-independence characteristic of Ballance's Logical Constraint Grammars. In comparison to traditional attribute grammars, our metalanguage allows much more of the incrementality inherent in a particular analysis task to be exposed within the formalism itself, where it can be exploited automatically by our implementation. Our incremental analysis algorithms exploit the attributed objects and function-valued attributes provided by our metalanguage, mapping these expressive notations onto a fine-grained incremental implementation. We are thus able to automatically generate incremental analyzers that handle long-distance dependencies and aggregate attributes efficiently. Our methods allow unusual freedom to control the granularity of incremental evaluation, allowing performance tradeoffs to be chosen as demanded by the needs of the application rather than as dictated by the a priori requirements of the algorithms. We have also developed a static analysis and transformation on attribute grammars that accomodates a useful class of circular attribute dependencies, automating the 'backpatching' method used in hand-coded compilers. The transformation is employed in Colander II, but is applicable to attribute grammars in general. We have used the Colander II system to create a static semantic analyzer for the programming language Modula-2, which has revealed both strengths and weakness in our specification paradigm. Interestingly, the most significant difficulty that we encountered applies equally to traditional attribute grammars, but has not been widely appreciated in the attribute grammar literature. Our work was performed in the context of the Ensemble project at UC Berkeley, which is constructing a prototype integrated multilingual language-based software development environment based on the editing of structured multimedia documents."
Incremental Static Semantic Analysis
Author: William Harry Maddox
Publisher:
ISBN:
Category : Computer programming
Languages : en
Pages : 470
Book Description
Abstract: "Language-based programming environments provide some or all of the functionality of a compiler, an interactive debugger, a browser, and a configuration manager behind a unified user interface based on an editing paradigm. As the user edits a program, the changes are processed incrementally, allowing for low-latency updates to derived information. This information can be made available to interactive environment services, such as browsing, navigation, and 'real-time' error-reporting. In this dissertation, we address an important subproblem in the construction of such environments, the generation of static semantic analyzers that operate in an incremental mode. Our work is embodied in the Colander II system, which introduces both a new metalanguage for the declarative specification of static semantic analyses and new techniques for generating an incremental analyzer from these specifications automatically. Our specification metalanguage melds the advantages of traditional attribute grammars, including amenability to extensive generation-time analysis, with the expressiveness and client-independence characteristic of Ballance's Logical Constraint Grammars. In comparison to traditional attribute grammars, our metalanguage allows much more of the incrementality inherent in a particular analysis task to be exposed within the formalism itself, where it can be exploited automatically by our implementation. Our incremental analysis algorithms exploit the attributed objects and function-valued attributes provided by our metalanguage, mapping these expressive notations onto a fine-grained incremental implementation. We are thus able to automatically generate incremental analyzers that handle long-distance dependencies and aggregate attributes efficiently. Our methods allow unusual freedom to control the granularity of incremental evaluation, allowing performance tradeoffs to be chosen as demanded by the needs of the application rather than as dictated by the a priori requirements of the algorithms. We have also developed a static analysis and transformation on attribute grammars that accomodates a useful class of circular attribute dependencies, automating the 'backpatching' method used in hand-coded compilers. The transformation is employed in Colander II, but is applicable to attribute grammars in general. We have used the Colander II system to create a static semantic analyzer for the programming language Modula-2, which has revealed both strengths and weakness in our specification paradigm. Interestingly, the most significant difficulty that we encountered applies equally to traditional attribute grammars, but has not been widely appreciated in the attribute grammar literature. Our work was performed in the context of the Ensemble project at UC Berkeley, which is constructing a prototype integrated multilingual language-based software development environment based on the editing of structured multimedia documents."
Publisher:
ISBN:
Category : Computer programming
Languages : en
Pages : 470
Book Description
Abstract: "Language-based programming environments provide some or all of the functionality of a compiler, an interactive debugger, a browser, and a configuration manager behind a unified user interface based on an editing paradigm. As the user edits a program, the changes are processed incrementally, allowing for low-latency updates to derived information. This information can be made available to interactive environment services, such as browsing, navigation, and 'real-time' error-reporting. In this dissertation, we address an important subproblem in the construction of such environments, the generation of static semantic analyzers that operate in an incremental mode. Our work is embodied in the Colander II system, which introduces both a new metalanguage for the declarative specification of static semantic analyses and new techniques for generating an incremental analyzer from these specifications automatically. Our specification metalanguage melds the advantages of traditional attribute grammars, including amenability to extensive generation-time analysis, with the expressiveness and client-independence characteristic of Ballance's Logical Constraint Grammars. In comparison to traditional attribute grammars, our metalanguage allows much more of the incrementality inherent in a particular analysis task to be exposed within the formalism itself, where it can be exploited automatically by our implementation. Our incremental analysis algorithms exploit the attributed objects and function-valued attributes provided by our metalanguage, mapping these expressive notations onto a fine-grained incremental implementation. We are thus able to automatically generate incremental analyzers that handle long-distance dependencies and aggregate attributes efficiently. Our methods allow unusual freedom to control the granularity of incremental evaluation, allowing performance tradeoffs to be chosen as demanded by the needs of the application rather than as dictated by the a priori requirements of the algorithms. We have also developed a static analysis and transformation on attribute grammars that accomodates a useful class of circular attribute dependencies, automating the 'backpatching' method used in hand-coded compilers. The transformation is employed in Colander II, but is applicable to attribute grammars in general. We have used the Colander II system to create a static semantic analyzer for the programming language Modula-2, which has revealed both strengths and weakness in our specification paradigm. Interestingly, the most significant difficulty that we encountered applies equally to traditional attribute grammars, but has not been widely appreciated in the attribute grammar literature. Our work was performed in the context of the Ensemble project at UC Berkeley, which is constructing a prototype integrated multilingual language-based software development environment based on the editing of structured multimedia documents."
Incremental Static Semantic Analysis for Object-Oriented Languages Using Door Attribute Grammars
Incremental Static Semantic Analysis
Author: William Harry Maddox
Publisher:
ISBN:
Category :
Languages : en
Pages : 422
Book Description
Publisher:
ISBN:
Category :
Languages : en
Pages : 422
Book Description
Optimal-time Incremental Semantic Analysis for Syntax Directed Editors
Author: Cornell University. Department of Computer Science
Publisher:
ISBN:
Category :
Languages : en
Pages : 17
Book Description
Attribute grammars permit the specification of static semantics in an applicative and modular fashion, and thus are a good basis for syntax-directed editors. Such editors represent programs as as attributed trees, which are modified by operations such as subtree pruning and grafting. After each modification, a subset of attributes, AFFECTED, requires new values. Membership in AFFECTED is not known a priori; this paper presents an algorithm that identifies attributes in AFFECTED and recomputes their values. The algorithm is time-optimal, its cost is proportional to the size of AFFECTED.
Publisher:
ISBN:
Category :
Languages : en
Pages : 17
Book Description
Attribute grammars permit the specification of static semantics in an applicative and modular fashion, and thus are a good basis for syntax-directed editors. Such editors represent programs as as attributed trees, which are modified by operations such as subtree pruning and grafting. After each modification, a subset of attributes, AFFECTED, requires new values. Membership in AFFECTED is not known a priori; this paper presents an algorithm that identifies attributes in AFFECTED and recomputes their values. The algorithm is time-optimal, its cost is proportional to the size of AFFECTED.
Incremental Semantic Analysis in a Language Directed Editor
Attribute Grammars, Applications and Systems
Author: Henk Alblas
Publisher: Springer Science & Business Media
ISBN: 9783540545729
Category : Computers
Languages : en
Pages : 536
Book Description
Attribute grammars have shown themselves to be a useful formalism for specifying the syntax and the static semantics of programming languages. They are also useful for implementing syntax-directed editors, compilers, translator writing systems and compiler generators, and any application that has a strong syntactic base. However, no textbooks are available that cover the entire field. To redress this imbalance, anInternational Summer School on Attribute Grammars, Applications and Systems was held in Prague, Czechoslovakia in June 1991. The course aimed at teaching the state of the art in attribute grammars, and their relation to other language specification methods. This volume presents the proceedings of the school. The papers are well suited for self-study, and a selection of them can be used for introductory courses in attribute grammars.
Publisher: Springer Science & Business Media
ISBN: 9783540545729
Category : Computers
Languages : en
Pages : 536
Book Description
Attribute grammars have shown themselves to be a useful formalism for specifying the syntax and the static semantics of programming languages. They are also useful for implementing syntax-directed editors, compilers, translator writing systems and compiler generators, and any application that has a strong syntactic base. However, no textbooks are available that cover the entire field. To redress this imbalance, anInternational Summer School on Attribute Grammars, Applications and Systems was held in Prague, Czechoslovakia in June 1991. The course aimed at teaching the state of the art in attribute grammars, and their relation to other language specification methods. This volume presents the proceedings of the school. The papers are well suited for self-study, and a selection of them can be used for introductory courses in attribute grammars.
Structures for Incremental Semantic Analysis in the III Programming Environment
Incremental Semantic Analysis
Author: Görel Hedin
Publisher:
ISBN:
Category : semantik
Languages : en
Pages : 276
Book Description
Publisher:
ISBN:
Category : semantik
Languages : en
Pages : 276
Book Description
Incremental Semantic Analysis and Code Generation in Galaxy
Software Language Engineering
Author: Martin Erwig
Publisher: Springer
ISBN: 3319026542
Category : Computers
Languages : en
Pages : 396
Book Description
This book constitutes the refereed proceedings of the 6th International Conference on Software Language Engineering, SLE 2013, held in Indianapolis, IN, USA, in October 2013. The 17 technical papers presented together with 2 tool demonstration papers and one keynote were carefully reviewed and selected from 56 submissions. SLE’s foremost mission is to encourage, synthesize and organize communication between communities that have traditionally looked at software languages from different and yet complementary perspectives. The papers are organized in topical sections on domain-specific languages; language patterns and evolution; grammars; tools; language analysis; and meta- and megamodelling.
Publisher: Springer
ISBN: 3319026542
Category : Computers
Languages : en
Pages : 396
Book Description
This book constitutes the refereed proceedings of the 6th International Conference on Software Language Engineering, SLE 2013, held in Indianapolis, IN, USA, in October 2013. The 17 technical papers presented together with 2 tool demonstration papers and one keynote were carefully reviewed and selected from 56 submissions. SLE’s foremost mission is to encourage, synthesize and organize communication between communities that have traditionally looked at software languages from different and yet complementary perspectives. The papers are organized in topical sections on domain-specific languages; language patterns and evolution; grammars; tools; language analysis; and meta- and megamodelling.