The Asf+Sdf Meta-environment is an interactive development environment for the automatic generation of interactive systems for constructing language definitions and generating tools for them. Over the years, this system has been used in a variety of academic and commercial projects ranging from formal program manipulation to conversion of COBOL systems. Since the existing implementation of the Meta-environment started exhibiting more and more characteristics of a legacy system, we decided to build a completely new, component-based, version. We demonstrate this new system and stress its open architecture.
Many automated software engineering tools require tight integration of techniques for source code analysis and manipulation. State-of-the-art tools exist for both, but the domains have remained notoriously separate because different computational paradigms fit each domain best. This impedance mismatch hampers the development of each new problem solution since desired functionality and scalability can only be achieved by repeated, ad hoc, integration of different techniques.RASCAL is a domain-specific language that takes away most of this boilerplate by providing high-level integration of source code analysis and manipulation on the conceptual, syntactic, semantic and technical level. We give an overview of the language and assess its merits by implementing a complex refactoring. The SCAM DomainSource code analysis and manipulation are large and diverse areas both conceptually and technologically. There are plentiful libraries, tools and languages available but integrated facilities that combine both domains are scarce [19]. Both domains depend on a wide range of concepts such as grammars and parsing, abstract syntax trees, pattern matching, generalized tree traversal, constraint solving, type inference, high fidelity transformations, slicing, abstract interpretation, model checking, and abstract state machines. Examples of tools that implement some of these concepts are ANTLR [15] [7]. These tools either specialize in analysis or in transformation, but not in both. As a result, combinations of analysis and transformation tools are used to get the job done. For instance, ASF+SDF [18] relies on RSCRIPT [13] for querying and TXL [7] interfaces with databases or query tools. Other approaches implement both analysis and transformation from scratch, as done in the Eclipse JDT. The TOM [2] tool adds transformation primitives to Java, such that libraries for analysis can be used directly. In either approach, the job of integrating analysis with transformation has to be done over and over again for each application and this represent a significant investment.We propose a more radical solution by completely merging the set of concepts for analysis and transformation of source code into one language called RASCAL. This language covers the range of applications from pure analyses to pure transformations and everything in between. The contribution is not new concepts or language features per se, but rather the careful collaboration, integration and crossfertilization of existing concepts and language features.The goals of RASCAL are: (a) to remove the cognitive and computational overhead of integrating analysis and transformation tools, (b) to provide a safe and interactive environment for constructing and experimenting with large and complicated source code analyses and transformations such as needed for refactorings, and (c) to be easily understandable by a large group of computer programming experts.
SDF is a formalism for the definition of syntax which is comparable to BNF in some respects, but h_ as a wider scope in that it also covers the definition of lexical and abstract syntax. Its design and implementation are tailored towards the language designer who wants to develop new languages as well as implement existing ones in a highly interactive manner. It emphasizes comP,actness of syntax definitions by offering (a) a standard interface between lexical and context-free syntax; (b) a standard correspondence between context-free and abstract syntax; (c) pow~rful disambiguation and list constructs; and (d) an efficient incremental implementation which accepts arbitrary context-free syntax definitions. SDF can be combined with a variety of progr:amming and specification languages. In this way these obtain fully general user-definable syntax.
and Chris Verhoef Vrije Universiteit AmsterdamGrammarware 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.
A domain-specific language (DSL) provides a notation tailored towards an application domain and is based on the relevant concepts and features of that domain. As such, a DSL is a means to describe and generate members of a family of programs in the domain.A prerequisite for the design of a DSL is a detailed analysis and structuring of the application domain. Graphical feature diagrams have been proposed to organize the dependencies between such features, and to indicate which ones are common to all family members and which ones vary.In this paper, we study feature diagrams in more details, as well as their relationship to domain-specific languages. We propose the Feature Description Language (FDL), a textual language to describe features. We explore automated manipulation of feature descriptions such as normalization, expansion to disjunctive normal form, variability computation and constraint satisfaction. Feature descriptions can be directly mapped to UML diagrams which in their turn can be used for Java code generation. The value of FDL is assessed via a case study in the use and expressiveness of feature descriptions for the area of documentation generators.
An axiomatic algebraic calculus of modules is given that is based on the operators combination/ union, export, renaming, and taking the visible signature. Four different models of module algebra are discussed and compared.
Preface This book collects the efforts developed by a series of researchers, presented at AMAST Workshops on Real-Time Systems. The authors whose papers were selected for this book are major players in this area, and they were given the opportunity to refine the text of their papers as a result of the lively discussions that took place during the workshops. The refining of the papers continued all through the editing process as well. The papers were carefully selected and revised by the editors and grouped into six parts debating subjects on the modeling and analysis, verification, synthesis, tools, and applications of real-time systems. The editors considered that these divisions made the book more coherent, and therefore, more readable. It is almost futile to say that there is a large amount of research and literature on the subject of real-time systems. The subject is of great importance and it is resuscitating large interest in the research community. Great efforts have been made towards a clear understanding of the nature, features and particularities of real-time systems. As a result, a series of approaches of the field problems have been attempted. The variety of the latter spans over a vast spectrum of theoretical frameworks, from finite state machines to mathematical models expressed in various versions of the lambda calculus and so are also the practical methodologies that have resulted by applying the above. As real-time systems are, as the name shows, systems, a systemic approach is needed, which unfortunately is very difficult to set. The difficulty stems from the combination of processes, some modeled by a set of differential/difference equations, and others by logic statements and their computer control algorithms, which usually involve first-order and/or temporal logic statements. The above facts have led to an arabesque of WorldScientific/ws-b8-5x6-0 amastBook viii Preface mathematical symbols and "theories" generated for the purpose of finding an appropriate model for the above combination of processes. It is needless to say that the field has attracted the attention of mathematicians, computer engineers, and computer and control theory scientists. It is also needless to say that the application of theoretical findings has had a large echo in the designers' and implementers' of real-time systems communities activating in the domains of telecommunications, power generation, metallurgy , aviation, and many other industries. Confronted with the difficulty of the field, the practitioners' community is in permanent expectation of new approaches and results, which should show them the light: a unified theory and practice capturing the essence of designing correct and at least sound real-time applications. As in other fields, designers and implementers of real-time applications expect to map in a coherent way the theoretical conquests to the reality of their projects. Thus, any book in this field should be in great demand. Related to the above, a fact must be mentioned: "the book" is not yet out. Here...
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.