Danny Groenewegen, Eelco Visser, Danny Groenewegen, Eelco Visser
year = {2008}, editor = {Daniel Schwabe and Francisco Curbera}, address = {Yorktown Heights, New York, USA}, month = {July}, publisher = {IEEE}, pubcat = {conference}, project = {MoDSE and ASSESS and...
Mixing Source and Bytecode (2009)
Martin Bravenboer, Eelco Visser, Martin Bravenboer, Eelco Visser, ...
title = {Mixing Source and Bytecode. {A} Case for Compilation by Normalization},
Anthony M. Sloane, Eelco Visser, Anthony M. Sloane, Eelco Visser
Abstract. Attribute grammars are a powerful specification formalism for tree-based computation, particularly for software language processing. Various extensions have been proposed to abstract over...
Code Generation by ModelTransformation Code Generation by Model Transformation (2009)
Z. Hemel, E. Visser, Zef Hemel, Eelco Visser
title = {Code Generation by Model Transformation. {A} Case
Adding Concrete Syntax to a Prolog-Based Program Synthesis System (Extended Abstract) (2008)
Abstract. Program generation and transformation systems manipulate large, parameterized object language fragments. Support for user-definable concrete syntax makes this easier but is typically...
Designing Syntax Embeddings and Assimilations for Language Libraries (2008)
Martin Bravenboer, Eelco Visser
Abstract. Language libraries extend regular libraries with domain-specific notation. More precisely, a language library is a combination of a domain-specific language embedded in the general-purpose...
Dynamic Rewrite Rules (Abstract) (2008)
The area of program transformation is concerned with the manipulation of the source code of programs. Since textual transformations tend to be hard to get correct, transformations syntax trees. Term...
WebDSL: A Case Study in Domain-Specific Language Engineering (2008)
Abstract. The goal of domain-specific languages (DSLs) is to increase the productivity of software engineers by abstracting from low-level boilerplate code. Introduction of DSLs in the software...
Strategic Graph Rewriting Transforming and Traversing Terms with References (2008)
Karl Trygve Kalleberg, Eelco Visser
Abstract. Some transformations and many analyses on programs are either difficult or unnatural to express using terms. In particular, analyses that involve type contexts, call- or control flow graphs...
Karl Trygve Kalleberg, Eelco Visser
this file with prentcsmacro.sty for your meeting, or with entcsmacro.sty for your meeting. Both can be found at the ENTCS Macro Home Page. Design and use of aspects in rule-based programming
Abstract Fusing a Transformation Language with an Open Compiler (2008)
Karl Trygve Kalleberg, Eelco Visser
Transformation systems such as Stratego/XT provide powerful analysis and transformation frameworks and concise languages for language processing, but instantiating them for every subject language is...
Eric Bouwers, Martin Bravenboer, Eelco Visser
A wide range of parser generators are used to generate parsers for programming languages. The grammar formalisms that come with parser generators provide different approaches for defining operator...
A Host and Guest Language Independent Approach (2008)
Martin Bravenboer, Eelco Dolstra, Eelco Visser, Martin Bravenboer, Eelco Dolstra, Eelco Visser
Abstract RULE 2005 Preliminary Version Combining Aspect-Oriented and Strategic Programming (2008)
Karl Trygve Kalleberg, Eelco Visser
Properties such as logging, persistence, debugging, tracing, distribution, performance monitoring and exception handling occur in most programming paradigms and are normally very difficult or even...
Karl Trygve Kalleberg, Eelco Visser
Many programmable software transformation systems are based around novel domain-specific languages (DSLs), with a long history of development and successful deployment. Despite their maturity and...
Generation of Formatters for Context-Free Languages (2008)
Mark Van, Den Brand, Eelco Visser
Good documentation is important for the production of reusable and maintainable software. Ft)rthe production ofaccurate documentation itisnecessary that the original program text is not copied...
Program Transformation and Generation Lecture 1: WebDSL (2008)
Software is about Automation The goal of software engineering is to build software that automates processes in order to reduce manual work or to increase the quality of that work.
Abstract Stratego is a domain-specic language for the specication of program transformation systems. The design of Stratego is based on the paradigm of rewriting strategies: user-denable programs in...
Abstract Stratego is a domain-specic language for the specication of program transformation systems. The design of Stratego is based on the paradigm of rewriting strategies: user-denable programs in...
Program Transformation with Stratego/XT (2007)
In Strategoxt, See Also, Eelco Visser, Eelco Visser
Abstract. Stratego/XT is a framework for the development of transformation systems aiming to support a wide range of program transformations. The framework consists of the transformation language...
Ralf L Ammel, Eelco Visser, Joost Visser
Strategic programming is a generic programming idiom for processing compound data such as terms or object structures. At the heart of the approach is the separation of two concerns: basic...
Strategies for Source-to-Source (2007)
S. Lucas, Second Inte''natio'ml Workshop, Copyright Karina Olinos, Karina Olmos, Karina Olmos, ...
karina;cs. u u. nl, visser2:acm. org Data-flow optimizations are usually implemented on low-level intermediate representations. This is not appropriate for source-to-source optimizations, which...
Academisch Proefschrift, Eelco Visser
ter verkrijging van de graad van doctor aan de Universiteit van Amsterdam op gezag van de Rector Magnificus
The rst exercise in this compiler construction course consists of writing a parser for BibT E X using the latest implementation of parser combinators. The purpose of this exercise is to refresh your...
LDTA’02 Preliminary Version Building Interpreters with Rewriting Strategies (2007)
Eelco Dolstra, Eelco Dolstra, Eelco Visser, Eelco Visser, Eelco Visser
Programming language semantics based on pure rewrite rules suffers from the gap between the rewriting strategy implemented in rewriting engines and the intended evaluation strategy. This paper shows...
Collaborative Software Development Merijn de Jonge 1 (2007)
Abstract. We present an approach to collaborative software development where obtaining components and contributing components across organizational boundaries are explicit phases in the development...
Otto Skrove Bagge, Magne Haveraaen, Eelco Visser
CodeBoost is a tool for source-to-source transformation and optimisation of C++ programs. It is intended to be used as a test-bed for various high-level optimisations; the traditional textbook...
Stratego is a modular language for the specication of fully automatic program transformation systems based on the paradigm of rewriting strategies. This document presents an annotated bibliography of...
Merijn De Jonge, Eelco Visser, Joost Visser
XT bundles existing and newly developed program transformation libraries and tools into an open framework that supports componentbased development of program transformations. We discuss the roles of...
Adding Concrete Syntax to a Prolog-Based Program Synthesis System (Extended Abstract) (2007)
Bernd Fischer and Eelco Visser 1 RIACS / NASA Ames Research Center Moffett Field, CA 94035, USA fisch@email.arc.nasa.gov 2 Institute of Information and Computing Sciences, Universiteit Utrecht 3508...
Timeline Variability: The Variability of Binding Time of Variation Points (2007)
Gert Florijn, Gert Florijn, Eelco Visser, Eelco Visser, Eelco Dolstra, Eelco Dolstra, ...
Model-driven software evolution: A research agenda (2007)
Eelco Visser, Jos Warmer, Arie Van Deursen, Arie Van Deursen
Software systems need to evolve, and systems built using model-driven approaches are no exception. What complicates model-driven engineering is that it requires multiple dimensions of evolution. In...
Bravenboer, Martin, Tanter, Eric, Visser, Eelco
Aspect-Oriented Programming (AOP) is attracting attention from both research and industry, as illustrated by the ever-growing popularity of AspectJ, the de facto standard AOP extension of Java. From...
Bravenboer, M., Groot, R. De, Visser, Eelco
General-purpose programming languages provide limited facilities for expressing domain-specific concepts in a natural manner. All domain concepts need to be captured using the same generic syntactic...
Stratego/XT 0.16. Components for transformation systems (2006)
Rob Vermaas, Rob Vermaas, Karl Trygve Kalleberg, Karl Trygve Kalleberg, Martin Bravenboer, Martin Bravenboer, ...
∼ visser (corresponding author)
Stratego/XT 0.16. Components for Transformation Systems (2005)
Bravenboer, M., Kallenberg, T., Vermaas, R.B., Visser, Eelco
During the last decade, a number of systems and methods for the alignment, merging and hole filling of 3D range scans have been developed. However, a quantitative comparison of the accuracy of...
Service Configuration Management (2005)
Dolstra, E., Bravenboer, M., Visser, Eelco
The deployment of services — sets of running programs that provide some useful facility on a system or network — is typically implemented through a manual, time-consuming and error-prone process....
Generalized Type-Based Disambiguation of Meta Programs with Concrete Object Syntax (2005)
Bravenboer, M., Vermaas, R.B., Vinju, J.J., Visser, Eelco
In meta programming with concrete object syntax, object-level programs are composed from fragments written in concrete syntax. The use of small program fragments in such quotations and the use of...
Transformations for Abstractions (2005)
The transformation language Stratego provides highlevel abstractions for implementation of a wide range of transformations. Our aim is to integrate transformation in the software development process...
Adaptive Code Reuse by Aspects, Cloning and Renaming (2005)
Bagge, A.H., Bravenboer, M., Kalleberg, K.T., Muilwijk, K., Visser, Eelco
Effective code reuse is desirable, but difficult to achieve in practice, since it is often necessary to adapt code before it can be reused successfully. The good old solution to code reuse is simple:...
A Survey of Strategies in Rule-Based Program Transformation Systems (2005)
Program transformation is the mechanical manipulation of a program in order to improve it relative to some cost function and is understood broadly as the domain of computation where programs are the...
Data-flow transformations used in optimizing compilers are also useful in other programming tools such as code generators, aspect weavers, domainspecific optimizers, and refactoring tools. These...
The Stratego/XT BibTEX Tools — tool documentation — (2005)
Eelco Visser, Eelco Visser, Eelco Visser
This paper provides documentation for the Stratego/XT BibTEX Tools, a collection of tools for processing BibTEX bibliography files. The main tools in the collection are bib-to-html for generating a...
Karina Olmos, Karina Olmos, Eelco Visser, Eelco Visser
Abstract. Data-flow transformations used in optimizing compilers are also useful in other programming tools such as code generators, aspect weavers, domain- and application-specific optimizers, and...
Generalized type-based disambiguation of meta programs with concrete object syntax (2005)
Martin Bravenboer, Rob Vermaas, Jurgen Vinju, Eelco Visser
Abstract. In meta programming with concrete object syntax, object-level programs are composed from fragments written in concrete syntax. The use of small program fragments in such quotations and the...
Karl Trygve Kalleberg, Eelco Visser
Copyright c ○ 2005 by the authors of the individual contributions. Address:
Martin Bravenboer, Martin Bravenboer, Martin Bravenboer, René De Groot, René De Groot, René De Groot, ...
Abstract. General-purpose programming languages provide limited facilities for expressing domain-specific concepts in a natural manner. All domain concepts need to be captured using the same generic...
Transformations with Rewriting Strategies and Dependent Dynamic Rewrite Rules (2005)
Karina Olmos, Eelco Visser, Eelco Visser, Karina Olmos, Eelco Visser
Abstract. Data-flow transformations used in optimizing compilers are also useful in other programming tools such as code generators, aspect weavers, domainspecific optimizers, and refactoring tools....
A Survey of Strategies in Rule-Based Program Transformation Systems (2005)
Eelco Visser, Eelco Visser, Eelco Visser
journal = {Journal of Symbolic Computation}, year = 2005, volume = 40, number = 1, pages = {831-873}, note = {Special issue on Reduction Strategies in Rewriting and Programming}, editor = {Bernhard...
Adaptive Code Reuse by Aspects, Cloning and Renaming (2005)
Anya Helene Bagge, Martin Bravenboer, Karl Trygve Kalleberg, Koen Muilwijk, Eelco Visser, Karl Trygve Kalleberg, ...
Effective code reuse is desirable, but difficult to achieve in practice, since it is often necessary to adapt code before it can be reused successfully. The good old solution to code reuse is simple:...
Combining Aspect-Oriented and Strategic Programming (2005)
Karl Trygve Kalleberg, Karl Trygve Kalleberg, Karl Trygve Kalleberg, Eelco Visser, Eelco Visser, Eelco Visser
Properties such as logging, persistence, debugging, tracing, distribution, performance monitoring and exception handling occur in most programming paradigms and are normally very difficult or even...
Generalized type-based disambiguation of meta programs with concrete object syntax (2005)
Martin Bravenboer, Martin Bravenboer, Martin Bravenboer, Rob Vermaas, Rob Vermaas, Rob Vermaas, ...
Abstract. In meta programming with concrete object syntax, object-level programs are composed from fragments written in concrete syntax. The use of small program fragments in such quotations and the...
Transformations for Abstractions (2005)
Eelco Visser, Eelco Visser, Eelco Visser
The transformation language Stratego provides highlevel abstractions for implementation of a wide range of transformations. Our aim is to integrate transformation in the software development process...
Eelco Dolstra, Martin Bravenboer, Eelco Visser, Eelco Dolstra, Martin Bravenboer, Eelco Visser, ...
Abstract. The deployment of services — sets of running programs that provide some useful facility on a system or network — is typically implemented through a manual, time-consuming and...
Service configuration management (2005)
Eelco Dolstra, Martin Bravenboer, Eelco Visser
Abstract. The deployment of services — sets of running programs that provide some useful facility on a system or network — is typically implemented through a manual, time-consuming and...
Eelco Dolstra, Martin Bravenboer, Martin Bravenboer, Martin Bravenboer, René De Groot, René De Groot, ...
Abstract. General-purpose programming languages provide limited facilities for expressing domain-specific concepts in a natural manner. All domain concepts need to be captured using the same generic...
Service configuration management (2005)
Eelco Dolstra, Martin Bravenboer, Eelco Visser
Abstract. The deployment of services — sets of running programs that provide some useful facility on a system or network — is typically implemented through a manual, time-consuming and...
Haskell Communities and Activities Report (2005)
Andres Löh (ed, Perry Alexander, Lloyd Allison, Tiago Miguel, Laureano Alves, Krasimir Angelov, ...
You are reading the 8th edition of the Haskell Communities and Activities Report (HCAR). These are interesting times to be a Haskell enthusiast. Everyone seems to be talking about darcs ( → 6.3)...
Program Transformation with Scoped Dynamic Rewrite Rules (2004)
Bravenboer, M., Dam, A. Van, Olmos, K., Visser, Eelco
The applicability of term rewriting to program transformation is limited by the lack of control over rule application and by the context-free nature of rewrite rules. The first problem is addressed...
Nix: A Safe and Policy-free System for Software Deployment (2004)
Eelco Dolstra, Merijn De Jonge, Eelco Visser
Existing systems for software deployment are neither safe nor sufficiently flexible. Primary safety issues are the inability to enforce reliable specification of component dependencies, and the lack...
Haskell Communities and Activities Report (2004)
Andres Löh (ed, Perry Alexander, Lloyd Allison, Krasimir Angelov, Alistair Bayley, Jérémy Bobbio, ...
Welcome to the Seventh edition of the Haskell Communities and Activities report. I can proudly announce that the report has survived yet another change of editor, and chances are good that this...
Retrofitting the AutoBayes program synthesis system with concrete object syntax (2004)
Bernd Fischer, Eelco Visser, See Also, Bernd Fischer, Eelco Visser, Bernd Fischer, ...
Abstract. AUTOBAYES is a fully automatic, schema-based program synthesis system for statistical data analysis applications. Its core component is a schema library, i.e., a collection of generic code...
Retrofitting the AutoBayes program synthesis system with concrete object syntax (2004)
See Also, Bernd Fischer, Bernd Fischer, Bernd Fischer, Eelco Visser, Eelco Visser, ...
Abstract. AUTOBAYES is a fully automatic, schema-based program synthesis system for statistical data analysis applications. Its core component is a schema library, i.e., a collection of generic code...
Martin Bravenboer, Eelco Visser
Application programmer’s interfaces give access to domain knowledge encapsulated in class libraries without providing the appropriate notation for expressing domain composition. Since...
Eelco Dolstra, Eelco Visser, Merijn De Jonge, Eelco Dolstra, Eelco Visser, Merijn De Jonge
Imposing a Memory Management Discipline on Software Deployment The deployment of software components frequently fails because dependencies on other components are not declared explicitly or are...
Eelco Dolstra, Merijn De Jonge, Eelco Visser, Preprint Of, Eelco Dolstra, Merijn De Jonge, ...
Existing systems for software deployment are neither safe nor sufficiently flexible. Primary safety issues are the inability to enforce reliable specification of component dependencies, and the lack...
Capturing Timeline Variability with Transparent Configuration Environments (2003)
Dolstra, E., Florijn, G., Visser, Eelco
Virtually every non-trivial software system exhibits variability: the property that the set of features—characteristics of the system that are relevant to some stakeholder—can be changed at...
Strategies for Fusing Logic and Control via Local, Application-Specific Transformations (2003)
Abstract programming supports the separation of logical concerns from issues of control in program construction. While this separation of concerns leads to reduced code size and increased reusability...
Turning dynamic typing into static typing by program specialization (2003)
Array processing languages such as APL, Matlab and Octave rely on dynamic typechecking by the interpreter rather than static typechecking and are designed for user convenience with a syntax close to...
Wijngaarden, J. Van, Visser, Eelco
Transformation techniques are spreading from application in compilers to general use in generative programming and document process- ing. Since transformation requires operations such as pattern...
Strategies for Fusing Logic and Control via Local, Application-Specific Transformations (2003)
Patricia Johann, Patricia Johann, Patricia Johann, Eelco Visser, Eelco Visser, Eelco Visser
Abstract programming supports the separation of logical concerns from issues of control in program construction. While this separation of concerns leads to reduced code size and increased reusability...
Package-based software development (2003)
M. De Jonge, E. Visser, Issn -x, Mathematisch Centrum (smc, The Dutch Foundation, ...
and their applications. SMC is sponsored by the Netherlands Organization for Scientific Research (NWO). CWI is a member of
Capturing timeline variability with transparent configuration environments (2003)
Merijn De Jonge, Gert Florijn, Gert Florijn, Eelco Visser, Eelco Visser, Eelco Dolstra, ...
Virtually every non-trivial software system exhibits variability: the property that the set of features—characteristics of the system that are relevant to some stakeholder — can be changed at...
In Strategoxt, Eelco Visser, Eelco Visser
Stratego/XT is a framework for the development of transformation systems aiming to support a wide range of program transformations. The framework consists of the transformation language Stratego and...
A Survey of Rewriting Strategies in Program Transformation Systems (2003)
Program transformation is used in a wide range of applications including compiler construction, optimization, program synthesis, refactoring, software renovation, and reverse engineering. In the...
Turning Dynamic Typing into Static Typing by Program Specialization Karina Olmos Eelco Visser (2003)
Karina Olmos, Karina Olmos, Eelco Visser, Eelco Visser
Array processing languages such as APL, Matlab and Octave rely on dynamic typechecking by the interpreter rather than static typechecking and are designed for user convenience with a syntax close to...
Jonne Van Wijngaarden, Jonne Van Wijngaarden, Eelco Visser, Eelco Visser, Eelco Visser
Transformation techniques are spreading from application in compilers to general use in generative programming and document processing.
Turning Dynamic Typing into Static Typing by Program Specialization (2003)
Karina Olmos, Karina Olmos, Eelco Visser, Eelco Visser
Array processing languages such as APL, Matlab and Octave rely on dynamic typechecking by the interpreter rather than static typechecking and are designed for user convenience with a syntax close to...
Strategic Programming Meets Adaptive Programming (2003)
Ralf Lämmel, Eelco Visser, Joost Visser
Strategic programming is a generic programming idiom for processing compound data such as terms or object structures. At the heart of the approach is the separation of two concerns: basic...
Design of the CodeBoost Transformation System for (2003)
Otto Skrove Bagge, Karl Trygve Kalleberg, Eelco Visser, Magne Haveraaen
The use of a high-level, abstract coding style can greatly increase developer productivity. For numerical software, this can result in drastically reduced run-time performance. High-level,...
Strategic Programming Meets Adaptive Programming (2003)
Ralf Lämmel, Eelco Visser, Joost Visser
Strategic programming is a generic programming idiom for processing compound data such as terms or object structures. At the heart of the approach is the separation of two concerns: basic...
Disambiguation filters for scannerless generalized LR parsers (2002)
Scheerder, J., Vinju, J.J., Visser, Eelco
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 contextfree) of the syntax of a...
Rewriting Strategies for Instruction Selection (2002)
Instruction selection (mapping IR trees to machine instructions) can be expressed by means of rewrite rules. Typically, such sets of rewrite rules are highly ambiguous. Therefore, standard rewriting...
Building interpreters with rewriting strategies (2002)
Programming language semantics based on pure rewrite rules suffers from the gap between the rewriting strategy implemented in rewriting engines and the intended evaluation strategy. This paper shows...
Meta-programming with concrete object syntax (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...
Strategies for Source-to-Source Constant Propagation (2002)
Data- ow optimizations are usually implemented on low-level intermediate representations. This is not appropriate for source-to-source optimizations, which reconstruct a source level program after...
The essence of strategic programming (2002)
Ralf Lämmel, Eelco Visser, Joost Visser
Abstract. Strategic programming is generic programming with the use of strategies. A strategy is a generic data-processing action which can traverse into heterogeneous data structures while mixing...
The essence of strategic programming (2002)
Abstract. Strategic programming is generic programming with the use of strate-gies. A strategy is a generic data-processing action which can traverse into heterogeneous data structures while mixing...
The Essence of Strategic Programming An inquiry into trans-paradigmatic genericity (2002)
Ralf Lämmel, Eelco Visser, Joost Visser
Strategic programming is an idiom for generic programming where the concept of a strategy plays a central role. A strategy is a generic, dataprocessing action. Strategies are rst-class citizens as...
Meta-programming with concrete object syntax (2002)
Abstract. 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...
Building interpreters with rewriting strategies (2002)
Programming language semantics based on pure rewrite rules suers from the gap between the rewriting strategy implemented in rewriting engines and the intended evaluation strategy. This paper shows...
Rewriting strategies for instruction selection (2002)
Martin Bravenboer, Martin Bravenboer, Eelco Visser, Eelco Visser
Abstract. Instruction selection (mapping IR trees to machine instructions) can be expressed by means of rewrite rules. Typically, such sets of rewrite rules are highly ambiguous. Therefore, standard...
The Essence of Strategic Programming (2002)
Ralf Lämmel, Eelco Visser, Joost Visser
Strategic programming is generic programming with the use of strategies. A strategy is a generic data-processing action which can traverse into heterogeneous data structures while mixing uniform and...
Building interpreters with rewriting strategies (2002)
Programming language semantics based on pure rewrite rules suffers from the gap between rewriting strategy implemented in rewriting engines and the intended evaluation strategy. This paper shows how...
First-class rules and generic traversal (2001)
In this paper we present a functional language supporting first-class rules and generic traversal. This is achieved by generalizing the pattern matching constructs of standard functional languages....
Guiding visitors: separating navigation from computation (2001)
Traversals over the object structure are widely used in object-oriented programming, in particular in language processing applications. The visitor pattern separates computation from traversal by...
Program transformation is used in many areas of software engineering. Examples include compilation, optimization, synthesis, refactoring, migration, normalization and improvement [15]. Rewrite rules...
Proceedings of the second stratego users day (2001)
Stratego and the underlying system S are as yet untyped. We propose a type system which covers the essence of system 5. In addition to system 5, a generic traversal primitive for folding the children...
Scoped Dynamic Rewrite Rules (2001)
The applicability of term rewriting to program transformation is limited by the lack of control over rule application and by the context-free nature of rewrite rules. The first problem is addressed...
Fusing Logic and Control with Local Transformations: An Example Optimization (2001)
Johann, Patricia, Visser, Eelco
Abstract programming supports the separation of logical concerns from issues of control in program construction. While this separation of concerns leads to reduced code size and increased reusability...
A Survey of Rewriting Strategies in Program Transformation Systems (2001)
Program transformation is used in a wide range of applications including compiler construction, optimization, program synthesis, refactoring, software renovation, and reverse engineering. Complex...
CodeBoost : a framework for transforming C++ programs (2001)
Bagge, O.S., Haveraaen, M., Visser, Eelco
Often we are faced with the need to make trivial, albeit tedious, changes to program code. It may be things like making variable names more readable, add code that will provide execution profile...
Disambiguation filters for scannerless generalized LR parsers (2001)
Scheerder, J., Vinju, J.J., Visser, Eelco
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...
XT: A bundle of program transformation tools (2001)
M. De Jonge, E. Visser, Issn -x, Mathematisch Centrum (smc, The Dutch Foundation, ...
and their applications. SMC is sponsored by the Netherlands Organization for Scientific Research (NWO). CWI is a member of
Scoped dynamic rewrite rules (2001)
The applicability of term rewriting to program transformation is limited by the lack of control over rule application and by the context-free nature of rewrite rules. The first problem is addressed...
Fusing logic and control with local transformations: An example optimization (2001)
Abstract programming supports the separation of logical concerns from issues of control in program construction. While this separation of concerns leads to reduced code size and increased reusability...
First-class rules and generic traversal (2001)
In this paper we present a functional language supporting first-class rules and generic traversal. This is achieved by generalizing the pattern matching constructs of standard functional languages....
A survey of rewriting strategies in program transformation systems (2001)
Program transformation is used in a wide range of applications including compiler construction, optimization, program synthesis, refactoring, software renovation, and reverse engineering. Complex...
Program transformation is used in many areas of software engineering. Examples include compilation, optimization, synthesis, refactoring, migration, normalization and improvement [15]. Rewrite rules...
CodeBoost: A framework for the transformation of C++ programs (2001)
Otto Skrove Bagge, Magne Haveraaen, Eelco Visser
Abstract. Often we are faced with the need to make trivial, albeit tedious, changes to program code. It may be things like making variable names more readable, add code that will provide execution...
A survey of strategies in program transformation systems (2001)
Abstract. Program transformation is used in a wide range of applications including compiler construction, optimization, program synthesis, refactoring, software renovation, and reverse engineering....
CodeBoost: A framework for the transformation of C++ programs (2001)
Otto Skrove Bagge, Magne Haveraaen, Eelco Visser
Abstract. Often we are faced with the need to make trivial, albeit tedious, changes to program code. It may be things like making variable names more readable, add code that will provide execution...
Scoped dynamic rewrite rules (2001)
The applicability of term rewriting to program transformation is limited by the lack of control over rule application and by the context-free nature of rewrite rules. The rst problem is addressed by...
Guiding visitors: Separating navigation from computation (2001)
Martin Bravenboer, Eelco Visser
Traversals over the object structure are widely used in object-oriented programming, in particular in language processing applications. The visitor pattern separates computation from traversal by...
Program transformation is used in many areas of software engineering. Examples include compilation, optimization, synthesis, refactoring, migration, normalization and improvement [15]. Rewrite rules...
Fusing Logic and Control with Local Transformations: An Example Optimization (2001)
Abstract programming supports the separation of logical concerns from issues of control in program construction. While this separation of concerns leads to reduced code size and increased reusability...
Program transformation is used in many areas of software engineering. Examples include compilation, optimization, synthesis, refactoring, migration, normalization and improvement [7]. Rewrite rules...
A survey of rewriting strategies in program transformation systems (2001)
Program transformation is used in a wide range of applications including compiler construction, optimization, program synthesis, refactoring, software renovation, and reverse engineering. Complex...
Fusing logic and control with local transformations: An example optimization (2001)
Abstract programming supports the separation of logical concerns from issues of control in program construction. While this separation of concerns leads to reduced code size and increased reusability...
Fusing logic and control with local transformations: An example optimization (2001)
Abstract programming supports the separation of logical concerns from issues of control in program construction. While this separation of concerns leads to reduced code size and increased reusability...
Fusing logic and control with local transformations: An example optimization (2001)
Abstract programming supports the separation of logical concerns from issues of control in program construction. While this separation of concerns leads to reduced code size and increased reusability...
Warm fusion in Stratego - A case study in the generation of program transformation systems (2000)
Stratego is a domain-specific language for the specification of program transfor- mation systems. The design of Stratego is based on the paradigm of rewriting strategies: user-definable programs in a...
Warm fusion in Stratego: A case study in the generation of program transformation systems (2000)
Patricia Johann, Patricia Johann, Eelco Visser, Eelco Visser
Stratego is a domain-specic language for the specication of program transformation systems. The design of Stratego is based on the paradigm of rewriting strategies: user-denable programs in a little...
This document documents all modules in the library. For a tutorial on the usage of Stratego see [2]. The Stratego reference manual [1] explains the constructs of the language. Other publications on...
Syntax 15 2.1 Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2 Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3 Signatures . . . . . . . ....
The Stratego Reference Manual (2000)
ING FROM PATTERNS WITH OVERLAYS 37 Section: Rules module Stratego-Overlays exports %%sorts Overlay context-free syntax Identifier ("(" {Identifier ","}* ")")?...
Language Independent Traversals for Program Transformation (2000)
syntax representation in which variables are not leaves and extraction of variable names from expressions. strategies free-vars2(getvars, boundvars) = rec x(split(getvars <+ ![],...
Warm fusion in Stratego: A case study in the generation of program transformation systems (2000)
Abstract Stratego is a domain-specific language for the specification of pro-gram transformation systems. The design of Stratego is based on the paradigm of rewriting strategies: user-definable...
Man Ual, Eelco Visser, Cop Yrigh
version 0.4.13 www.stratego-language.org Departmen tof Information
Language independent traversals for program transformation (2000)
summary Many language processing operations have a generic underlying algorithm. However, these generic algorithms either have to be implemented specifically for the language under consideration or...
Software System Families Current research and practical experience suggest that achieving significant progress with respect to software reuse requires a paradigm shift towards modeling and developing...
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and...
Warm Fusion in Stratego: A Case Study in the Generation of Program Transformation Systems (1999)
Patricia Johann, Patricia Johann, Eelco Visser, Eelco Visser
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.5.1 Format Checking . . . . . . . . . . . . . . . . . . . . . . . 19 1.5.2 Variable Renaming and Substitution . . . . . . . . . . . ....
Warm Fusion in Stratego: A Case Study in Generation of Program Transformation Systems (1999)
Stratego is a domain-specific language for the specification of program transformation systems. The design of Stratego is based on the paradigm of rewriting strategies: userdefinable programs in a...
Stratego is a language for the specification of transformation rules and strategies for applying them. Specifications consist of a collection of modules that define the signature of the object...
Generation of Formatters for Context-free Languages (1999)
Good documentation is important for the production of reusable and maintainable software. For the production of accurate documentation it is necessary that the original program text is not copied...
Strategic Pattern Matching (1999)
Stratego is a language for the specification of transformation rules and strategies for applying them. The basic actions of transformations are matching and building instantiations of first-order...
Stratego is a language for the specification of transformation rules and strategies for applying them. Specifications consist of a collection of modules that define the signature of the object...
The Stratego Reference Manual (1999)
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and...
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and...
Polymorphic Syntax Definition (1998)
E. Visser, Eelco Visser, Eelco Visser, Eelco Visser
The research was conducted with support from the Netherlands Organization for Scientific Research (NWO) under grant 612-317-420: Incremental parser generation and contextdependent disambiguation, a...
Building Program Optimizers with Rewriting Strategies (1998)
We describe a language for defining term rewriting strategies, and its application to the production of program optimizers. Valid transformations on program terms can be described by a set of rewrite...
A Core Language for Rewriting (1998)
System S is a calculus providing the basic abstractions of term rewriting: matching and building terms, term traversal, combining computations and handling failure. The calculus forms a core language...
Building Program Optimizers with Rewriting Strategies (1998)
We describe a language for defining term rewriting strategies, and its application to the production of program optimizers. Valid transformations on program terms can be described by a set of rewrite...
A Core Language for Rewriting (1998)
System S is a calculus providing the basic abstractions of term rewriting: matching and building terms, term traversal, combining computations and handling failure. The calculus forms a core language...
Building Program Optimizers with Rewriting Strategies (1998)
We describe a language for defining term rewriting strategies, and its application to the production of program optimizers. Valid transformations on program terms can be described by a set of rewrite...
Building Program Optimizers with Rewriting Strategies (1998)
We describe a language for defining term rewriting strategies, and its application to the production of program optimizers. Valid transformations on program terms can be described by a set of rewrite...
Syntax definition for language prototyping /--Eelco Visser. (1997)
Academisch Proefschrift : Faculteit Wiskunde, Informatica, Natuurkunde en Sterenkunde : Amsterdam : 1997.
Scannerless generalized-LR parsing (1997)
Eelco Visser, Eelco Visser, E. Visser
this paper. This research was supported by the Netherlands Computer Science Research Foundation (SION) with financial support from the Netherlands Organisation for Scientific Research (NWO). Project...
Specification of Rewriting Strategies (1997)
Eelco Visser, Eelco Visser, Bas Luttik, Bas Luttik, Bas Luttik, E. Visser
User-definable strategies for the application of rewrite rules provide a means to construct transformation systems that apply rewrite rules in a controlled way. This paper describes a strategy...
From Context-Free Grammars With Priorities to Character Class Grammars (1997)
E. Visser, Eelco Visser, Eelco Visser, Eelco Visser
this paper we introduce a grammar transformation that translates a context-free grammar with priorities to a character class grammar that does only generate trees without priority conflicts. The...
A Family of Syntax Definition Formalisms (1997)
Eelco Visser, Eelco Visser, E. Visser
this report appeared in M. G. J. van den Brand et al., ASF+SDF'95. A Workshop on Generating Tools from Algebraic Specifications, Technical Report P9504, Programming Research Group, University of...
E. Visser, Eelco Visser, Eelco Visser, Eelco Visser
this paper an algebraic specification of character classes is presented. We define a normalization of character classes that results in unique, most compact normal forms such that equality of...
Polymorphic Syntax Definition (1997)
. Context-free grammars are used in several algebraic specification formalisms instead of first-order signatures for the definition of the structure of algebras, because grammars provide better...
Solving Type Equations in Multi-Level Specifications (1996)
E. Visser, E. Visser, E. Visser, Eelco Visser
In first-order algebraic specification functions have types of the form s1 \Theta \Delta \Delta \Delta \Theta sn ! s0 , where the s i are type constants. Such types exclude higher-order and...
A Family of Syntax Definition Formalisms (1995)
. In this paper we design a syntax definition formalism as a family of formalisms. Starting with a small kernel, various features for syntax definition are designed orthogonally to each other. This...
Polymorphic Syntax Definition (Extended Abstract) (1995)
) Eelco Visser Programming Research Group, University of Amsterdam, Kruislaan 403, NL-1098 SJ Amsterdam, The Netherlands email: visser@fwi.uva.nl, http://adam.fwi.uva.nl/visser/ Abstract Context-free...
From Box to TEX: An algebraic approach to the construction of documentation tools (1994)
We define a translation from an intermediate box language for pretty printing to T E X. This translation can be used as a back-end for pretty printers in documentation tools for programming...
Using Filters for the Disambiguation of Context-free Grammars (1994)
An ambiguous context-free grammar defines a language in which some sentences have multiple interpretations. For conciseness, ambiguous contextfree grammars are frequently used to define even...
Combinatory Algebraic Specification & Compilation of List Matching (1993)
Typeset In Asf+sdf+a, M S-l, Eelco Visser, Eelco Visser
ion : : : : : : : : : : : : : : : : : : : : : : : : : : 30 4.8 Recursion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 34 4.9 Characters and Strings : : : : : : : : : : : : : : :...
Syntax and Static Semantics of Eiffel - A Case Study in Algebraic Specification Techniques (1992)
An algebraic specification of the syntax and static semantics as defined in [Mey92] in the specification formalism ASF+SDF is presented. In support of the actual typechecking modules several...
Solving Type Equations in Multi-Level Specifications
Eelco Visser Programming, Eelco Visser
. In first-order algebraic specification functions have types of the form s1 \Theta \Delta \Delta \Delta \Theta sn ! s0 , where the s i are type constants. Such types exclude higher-order and...
A Case Study in Optimizing Parsing Schemata by Disambiguation Filters
Disambiguation methods for context-free grammars enable concise specification of programming languages by ambiguous grammars. A disambiguation filter is a function that selects a subset from a set of...