• Documents
  • Authors
  • Tables
  • Log in
  • Sign up
  • MetaCart
  • DMCA
  • Donate

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

The ASF+SDF meta-environment: a componentbased language development environment (2001)

by M G J Van den Brand
Venue:Compiler Construction
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 118
Next 10 →

Towards an Engineering Discipline for GRAMMARWARE

by Paul Klint, Ralf Lämmel, Chris Verhoef , 2003
"... Grammarware comprises grammars and all grammar-dependent software. The term grammar is meant here in the sense of all established grammar formalisms and grammar notations including context-free grammars, class dictionaries, XML schemas as well as some forms of tree and graph grammars. The term gramm ..."
Abstract - Cited by 146 (7 self) - Add to MetaCart
Grammarware comprises grammars and all grammar-dependent software. The term grammar is meant here in the sense of all established grammar formalisms and grammar notations including context-free grammars, class dictionaries, XML schemas as well as some forms of tree and graph grammars. The term grammar-dependent software refers to all software that involves grammar knowledge in an essential manner. Archetypal examples of grammar-dependent software are parsers, program converters, and XML document processors. Despite the pervasive role of grammars in software systems, the engineering aspects of grammarware are insufficiently understood. We lay out an agenda that is meant to promote research on increasing the productivity of grammarware development and on improving the quality of grammarware. To this end, we identify the problems with the current grammarware practises, the barriers that currently hamper research, the promises of an engineering discipline for grammarware, its principles, and the research challenges that have to be addressed.

Concrete syntax for objects. Domain-specific language embedding and assimilation without restrictions

by Martin Bravenboer, Eelco Visser - Proceedings of the 19th ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA’04 , 2004
"... Application programmer’s interfaces give access to domain knowledge encapsulated in class libraries without providing the appropriate notation for expressing domain composition. Since object-oriented languages are designed for extensibility and reuse, the language constructs are often sufficient for ..."
Abstract - Cited by 110 (25 self) - Add to MetaCart
Application programmer’s interfaces give access to domain knowledge encapsulated in class libraries without providing the appropriate notation for expressing domain composition. Since object-oriented languages are designed for extensibility and reuse, the language constructs are often sufficient for expressing domain abstractions at the semantic level. However, they do not provide the right abstractions at the syntactic level. In this paper we describe MetaBorg, a method for providing concrete syntax for domain abstractions to application programmers. The method consists of embedding domain-specific languages in a general purpose host language and assimilating the embedded domain code into the surrounding host code. Instead of extending the implementation of the host language, the assimilation phase implements domain abstractions in terms of existing APIs leaving the host language undisturbed. Indeed, Meta-Borg can be considered a method for promoting APIs to the language level. The method is supported by proven and available technology, i.e. the syntax definition formalism SDF and the program transformation language and toolset Stratego/XT. We illustrate the method with applications in three domains: code generation, XML generation, and user-interface construction.
(Show Context)

Citation Context

... general syntax definition formalism. However, through its implementation it was closely tied to the algebraic specification formalism ASF+SDF [17], which is supported by the ASF+SDF Meta-Environment =-=[9]-=-. Redesign and reimplementation as SDF2 [45, 10] has made the language available for use outside the Meta-Environment. SDF2 is also distributed as part of the XT bundle of program transformation tools...

Disambiguation Filters for Scannerless Generalized LR Parsers

by M.G.J. van den Brand, J. Scheerder, J. J. Vinju, E. Visser - Compiler Construction (CC’02 , 2002
"... Several real-world problems call for more parsing power than is offered by the widely used and well-established deterministic parsing techniques. These techniques also create an artificial divide between lexical and context-free analysis phases, at the cost of significant complexity at their interfa ..."
Abstract - Cited by 92 (25 self) - Add to MetaCart
Several real-world problems call for more parsing power than is offered by the widely used and well-established deterministic parsing techniques. These techniques also create an artificial divide between lexical and context-free analysis phases, at the cost of significant complexity at their interface. In this paper we present the fusion of generalized LR parsing and scannerless parsing. This combination supports syntax definitions in which all aspects (lexical and context-free) of the syntax of a language are defined explicitly in one formalism. Furthermore, there are no restrictions on the class of grammars, thus allowing a natural syntax tree structure. Ambiguities that arise through the use of unrestricted grammars are handled by explicit disambiguation constructs, instead of implicit defaults that are taken by traditional scanner and parser generators. Hence, a syntax definition becomes a full declarative description of a language. Disambiguation constructs can be interpreted as filters on parse forests. Depending on the kind of disambiguation, filters can be applied at parser generation time, at parse time, or after parsing. Scannerless generalized LR parsing is a viable technique that has been applied in various industrial and academic projects.
(Show Context)

Citation Context

...hat generalized parsing techniques are applicable in the fields of reverse engineering and language prototyping, i.e., the development of new (domain-specific) languages. The Asf+Sdf Meta-Environment =-=[4]-=- is used in both these fields. This environment is an interactive development environment for the automatic generation of interactive systems for manipulating programs, specifications, or other texts ...

Meta-Programming with Concrete Object Syntax

by Eelco Visser - GENERATIVE PROGRAMMING AND COMPONENT ENGINEERING (GPCE’02 , 2002
"... Meta programs manipulate structured representations, i.e., abstract syntax trees, of programs. The conceptual distance between the concrete syntax meta-programmers use to reason about programs and the notation for abstract syntax manipulation provided by general pur- pose (meta-) programming languag ..."
Abstract - Cited by 82 (28 self) - Add to MetaCart
Meta programs manipulate structured representations, i.e., abstract syntax trees, of programs. The conceptual distance between the concrete syntax meta-programmers use to reason about programs and the notation for abstract syntax manipulation provided by general pur- pose (meta-) programming languages is too great for many applications. In this paper it is shown how the syntax definition formalism SDF can be employed to fit any meta-programming language with concrete syn- tax notation for composing and analyzing object programs. As a case study, the addition of concrete syntax to the program transformation language Stratego is presented. The approach is then generalized to arbitrary meta-languages.
(Show Context)

Citation Context

...general syntax definition formalism. However, through its implementation it was closely tied to the algebraic specification formalism ASF+SDF [4,13], which is supported by the ASF+SDF MetaEnvironment =-=[16,7]-=-. Redesign and reimplementation of SDF [20,8] has made SDF available for use outside the Meta-Environment. SDF is also distributed as part of the XT bundle of program transformation tools [15]. Syntax...

RASCAL: a Domain Specific Language for Source Code Analysis and Manipulation

by Paul Klint, Tijs Storm, Jurgen Vinju
"... ..."
Abstract - Cited by 63 (21 self) - Add to MetaCart
Abstract not found
(Show Context)

Citation Context

...nference, high fidelity transformations, slicing, abstract interpretation, model checking, and abstract state machines. Examples of tools that implement some of these concepts are ANTLR [15], ASF+SDF =-=[18]-=-, CodeSurfer [1], Crocopat [4], DMS [3], Grok [11], Stratego [5], TOM [2] and TXL [7]. These tools either specialize in analysis or in transformation, but not in both. As a result, combinations of ana...

Compiling Language Definitions: The ASF+SDF Compiler

by M. G. J. van den Brand, J. Heering, P. Klint, P. A. Olivier , 1999
"... The ASF+SDF Meta-Environment is an interactive language development environment... ..."
Abstract - Cited by 61 (10 self) - Add to MetaCart
The ASF+SDF Meta-Environment is an interactive language development environment...

MontiCore: a framework for compositional development of domain specific languages

by Holger Krahn, Bernhard Rumpe, Steven Völkel , 2010
"... Domain specific languages (DSLs) are increasingly used today. Coping with complex language definitions, evolving them in a structured way, and ensuring their error freeness are the main challenges of DSL design and implementation. The use of modular language definitions and composition operators ar ..."
Abstract - Cited by 49 (38 self) - Add to MetaCart
Domain specific languages (DSLs) are increasingly used today. Coping with complex language definitions, evolving them in a structured way, and ensuring their error freeness are the main challenges of DSL design and implementation. The use of modular language definitions and composition operators are therefore inevitable in the independent development of language components. In this article, we discuss these arising issues by describing a framework for the compositional development of textual DSLs and their supporting tools. We use a redundance-free definition of a readable concrete syntax and a comprehensible abstract syntax as both representations significantly overlap in their structure. For enhancing the usability of the abstract syntax, we added concepts like associations and inheritance to a grammarbased definition in order to build up arbitrary graphs (as known from metamodeling). Two modularity concepts, grammar inheritance and embedding, are discussed. They permit compositional language definition and thus simplify the extension of languages based on already existing ones. We demonstrate that compositional engineering of new languages is a useful concept when project-individual DSLs with appropriate tool support are defined.

Typed generic traversal with term rewriting strategies

by Ralf Lämmel , 2002
"... A typed model of strategic term rewriting is developed. The key innovation is that generic. The calculus traversal is covered. To this end, we define a typed rewriting calculus S ′ γ employs a many-sorted type system extended by designated generic strategy types γ. We consider two generic strategy t ..."
Abstract - Cited by 36 (10 self) - Add to MetaCart
A typed model of strategic term rewriting is developed. The key innovation is that generic. The calculus traversal is covered. To this end, we define a typed rewriting calculus S ′ γ employs a many-sorted type system extended by designated generic strategy types γ. We consider two generic strategy types, namely the types of type-preserving and type-unifying strategies. S ′ γ offers traversal combinators to construct traversals or schemes thereof from many-sorted and generic strategies. The traversal combinators model different forms of one-step traversal, that is, they process the immediate subterms of a given term without anticipating any scheme of recursion into terms. To inhabit generic types, we need to add a fundamental combinator to lift a many-sorted strategy s to a generic type γ. This step is called strategy extension. The semantics of the corresponding combinator states that s is only applied if the type of the term at hand fits, otherwise the extended strategy fails. This approach dictates that the semantics of strategy application must be type-dependent to a certain extent. Typed strategic term rewriting with coverage of generic term traversal is a simple but expressive model of generic programming. It has applications in program

EASY Meta-Programming with Rascal

by Paul Klint, Jurgen Vinju, Tijs Van Der Storm
"... Rascal is a new language for meta-programming and is intended to solve problems in the domain of source code analysis and transformation. In this article we give a high-level overview of the language and illustrate its use by many examples. Rascal is a work in progress both regarding implementation ..."
Abstract - Cited by 36 (12 self) - Add to MetaCart
Rascal is a new language for meta-programming and is intended to solve problems in the domain of source code analysis and transformation. In this article we give a high-level overview of the language and illustrate its use by many examples. Rascal is a work in progress both regarding implementation and documentation. More information is available at

Source Tree Composition

by Merijn De Jonge - In Proceedings: Seventh International Conference on Software Reuse, volume 2319 of LNCS , 2001
"... Dividing software systems in components improves software reusability as well as software maintainability. Components live at several levels, we concentrate on the implementation level where components are formed by source files, divided over directory structures. Such source code components are usu ..."
Abstract - Cited by 29 (9 self) - Add to MetaCart
Dividing software systems in components improves software reusability as well as software maintainability. Components live at several levels, we concentrate on the implementation level where components are formed by source files, divided over directory structures. Such source code components are usually strongly coupled in the directory structure of a software system. Their compilation is usually controlled by a single global build process. This entangling of source trees and build processes often makes reuse of source code components in different software systems difficult. It also makes software systems inflexible because integration of additional source code components in source trees and build processes is difficult. This paper's subject is to increase software reuse by decreasing coupling of source code components. It is achieved by automized assembly of software systems from reusable source code components and involves integration of source trees, build processes, and configuration processes. Application domains include generative programming, product-line architectures, and commercial off-the-shelf (COTS) software engineering.
(Show Context)

Citation Context

...s [21]. This makes assembling applications as easy as selecting the features of need. 8 Case Studies System development We successfully applied source tree composition to the ASF+SDF Meta-Environment =-=[4]-=-, an integrated environment for the development of programming languages and tools, which has been developed at our research group. Source tree composition solved the following problems that we encoun...

Powered by: Apache Solr
  • About CiteSeerX
  • Submit and Index Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2019 The Pennsylvania State University