| M. d. Jonge and J. Visser. Grammars as Contracts. In Proc. Generative and Componentbased Software Engineeringi (GCSE'00), volume 2177 of LNCS, pages 85--99, Erfurt, Germany, Oct. 2000. Springer-Verlag. |
....in this thesis were published before as separate papers. We list their origin. Chapter 2, Grammars as Contracts , was co authored with Joost Visser. It was presented in 2000 at the second international conference on Generative and Component Based Software Engineering (GCSE) in Erfurt, Germany [85]. Chapter 3, XT: a Bundle of Program Transformation Tools , was co authored with Eelco Visser and Joost Visser. It was presented in 2001 at the first workshop on Language Descriptions, Tools and Applications (LDTA) in Genova, Italy [84] Chapter 4, Pretty Printing for Software Reengineering , ....
....developed meta tools that support SDF. The ATERM format is adopted as exchange format. This instantiation gives special attention to adaptability, scalability, reusability, and maintainability issues surrounding language tool development. The work presented in this chapter was published earlier as [85]. A need exists for meta tools supporting component based construction of language tools. Language oriented software engineering areas such as development of domain specific languages (DSLs) language engineering, and automatic software renovation pose challenges to tool developers with respect ....
M. de Jonge and J. Visser. Grammars as contracts. In G. Butler and S. Jarzabek, editors, Generative and Component-Based Software Engineering, Second International Symposion, GCSE 2000.
....development of new grammars, grammar maintenance, grammar recovery) is usually done in an informal and unstructured manner. Grammar development is often conceived as coding effort, as grammar (conflict) hacking. In our opinion, grammars should be regarded much more as real engineering artifacts [5]. On the other hand, grammars are not too much of a research topic anymore with a small number of exceptions [15, 3, 5, 4] Research should supply the formal methods useful in grammar development. The present paper contributes in this context. The paper lays down the foundations of an adaptive ....
....manner. Grammar development is often conceived as coding effort, as grammar (conflict) hacking. In our opinion, grammars should be regarded much more as real engineering artifacts [5] On the other hand, grammars are not too much of a research topic anymore with a small number of exceptions [15, 3, 5, 4]. Research should supply the formal methods useful in grammar development. The present paper contributes in this context. The paper lays down the foundations of an adaptive style for grammar development. Adaptations of grammars are represented as well studied program transformations. The ultimate ....
M. de Jonge and J. Visser. Grammars as Contracts. to appear, 2000.
....with concrete syntax, corresponding abstract syntax can also be defined in SDF. This is achieved by defining the constructor names of the abstract syntax as annotations to the concrete syntax productions (the on attributes in Figure 4 and 5) These define the node names of abstract syntax trees [12]. As we will see shortly, constructor names also serve to identify productions and to select proper pretty print rules. Format expressions We use the language BOX [2, 9] to express formattings. BOX is a markup language which allows formattings to be expressed as compositions of boxes. Box ....
....not contain layout and consequently, conservative nor comment preserving pretty printing is supported by ast2box. Abstract syntax is generated from SDF definitions based on the constructor annotations of grammar productions. These constructor annotations define the node names of ASTs. We refer to [12] for a discussion of abstract syntax generation from concrete syntax definitions. Since constructor names also serve as keys in pretty print tables, the name of a node in an AST can be used to obtain the corre sponding pretty print rule (see Figures l(b) and 6) In an AST, certain types of ....
M. de Jonge and J. Visser. Grammars as contracts. In G. Butler and S. Jarzabek, editors, Generarive and ComponentBased Software Engineering, Second International Symposion, GCSE 2000.
....that analyze the import structure of Stratego programs. Integration with SDF Figure 2 shows an overview of the meta tools offered by XT that integrate Stratego and SDF. In combination, these tools instantiate a meta tooling architecture where grammars are used as contracts between components [4]. The shaded ellipses are tools that are themselves programmed in Stratego. Normally, the Stratego programmer manually constructs the signatures he needs. Also, the input and output of his programs are ATERMs. With the meta tooling offered by XT, the programmer can construct front and back ends ....
....template) 3.3 Grammar transformation Grammars play an essential role in XT. They are used to generate parsers, prettyprinters, Stratego signatures, and Java libraries for language specific tree transformation. In fact, grammars are used to fix the interfaces between transformation components [4]. To support this employment of grammars, we need tools to create, manipulate, and transform grammars, and to generate code from grammars. We discuss a few of these tools. Syntax definition In XT, we use SDF as primary syntax definition formalism. Because of its purity and declarativeness, ....
M. de Jonge and J. Visser. Grammars as contracts. In Generative and Component-based Software Engineering (GCSE), Lecture Notes in Computer Science (LNCS), Erfurt, Germany, To appear. Springer.
....necessary as well. Sharing functionality between applications based on source code reuse only is therefore not sufficient. In addition to source code reuse, component based software construction is required to share common tasks between applications written in different programming languages. In [16] a language centered software engineering approach is described that emphasizes the central role of grammars and the need for components in the software engineering process. It supports generation of stand alone components and libraries from grammars as well as easy integration of off the shelf ....
....these components. Further, a uniform exchange format is needed in order to connect such components easily. Since language tools typically transfer parse trees or abstract syntax trees between different components, the language itself describes the structure of the data that is transfered. In [16] an architecture of component based software development is described where grammars serve as contracts between components (see Figure 1(a) Library generation. Since the structure of trees processed by language tools depends on the grammar, the code to traverse such trees also depends on the ....
[Article contains additional citation context not shown here]
M. de Jonge and J. Visser. Grammars as contracts. In Generative and Component-based Software Engineering 2000, LNCS, Erfurt, Germany, To appear. Springer-Verlag.
....Java Tree Builder, is twofold. Firstly, it deploys generalized LR parsing, and allows unrestricted, modular, and declarative syntax definition in SDF (see Section 2. 2) These properties are essential in the context of component based language tool development where grammars are used as contracts [15]. Secondly, to cater for a number of reoccuring tree traversal scenarios, it generates variants on the Visitor pattern that allow different traversal strategies. In this section we will give an overview of JJForester. We will give a brief introduction to SDF which is used as its input language. By ....
....and the visualization back end of DocGen. Externally, the syntax trees that JJForester operates upon are represented in the common exchange format ATerms. This exchange format was developed in the context of the ASF SDF Meta Environment, but has been used in numerous other contexts as well. In [15] we advocated the use of grammars as tree type definitions that fix the interface between language tools. JJForester implements these ideas, and can interact smoothly with tools that do the same. The transformation tool bundle XT [14] contains a variety of such tools. 15 Performance To get a ....
M. de Jonge and Joost Visser. Grammars as contracts. In Generative and Component-based Software Engineering (GCSE), Erfurt, Germany, October 2000. CD-ROM Proceedings. To be published in Lecture Notes in Computer Science (LNCS), Springer.
....such technology is not in wide use today. This resulted in a situation where grammars are rarely reused for different language tools and language dialects, where grammar maintenance is expensive, and where source code adaptions after a grammar change are performed mostly manually. In [8] a software engineering approach is described that fully accepts the central role of grammars in the software engineering process. It supports generation of stand alone components and libraries from grammars as well as easy integration of of the shelf reusable components. Consequently, development ....
....of data exchanged between these components. Further, a uniform exchange format is needed in order to connect such components easily. Since language tools typically transfer parse trees between different components, the language itself describes the structure of the data that is transfered. In [8], an architecture of component based software development is described where grammars serve as contracts between components (See Fig. 3(a) Library Generation. Language tools operate on parse trees (either full parse trees or abstract syntax trees) The structure of the trees depends on the ....
[Article contains additional citation context not shown here]
M. de Jonge and J. Visser. Grammars as contracts. In Generative and Component-based Software Engineering (GCSE), Erfurt, Germany, Oct. 2000.
....Java Tree Builder, is twofold. Firstly, it deploys generalized LR parsing, and allows unrestricted, modular,anddeclarative syntax definition in SDF (see Section 2. 2) These properties are essential in the context of component based language tool development where grammars are used as contracts [15]. Secondly, to cater for a number of reoccuring tree traversal scenarios, it generates variants on the Visitor pattern that allow different traversal strategies. In this section we will give an overview of JJForester. We will give a brief introduction to SDF which is used as its input language. By ....
....and the visualization back end of DocGen. Externally, the syntax trees that JJForester operates upon are represented in the common exchange format ATerms. This exchange format was developed in the context of the ASF SDF Meta Environment, but has been used in numerous other contexts as well. In [15] we advocated the use of grammars as tree type definitions that fix the interface between language tools. JJForester implements these ideas, and can interact smoothly with tools that do the same. The transformation tool bundle XT [14] contains a variety of such tools. Performance To get a first ....
M. de Jonge and Joost Visser. Grammars as contracts. In Generative and Component-based Software Engineering (GCSE), Erfurt, Germany, October 2000. CD-ROM Proceedings. To be published in Lecture Notes in Computer Science (LNCS), Springer.
No context found.
M. d. Jonge and J. Visser. Grammars as Contracts. In Proc. Generative and Componentbased Software Engineeringi (GCSE'00), volume 2177 of LNCS, pages 85--99, Erfurt, Germany, Oct. 2000. Springer-Verlag.
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