Eelco Visser

Declarative Access Control for WebDSL Declarative Access Control for WebDSL: Combining Language Integration and Separation of Concerns (2009)

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},

Decorated Attribute Grammars Decorated Attribute Grammars Attribute Evaluation Meets Strategic Programming (2009)

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...

Adding Concrete Syntax to a Prolog-Based Program Synthesis System (Extended Abstract) (2008)

Bernd Fischer, Eelco Visser

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)

Eelco Visser

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)

Eelco Visser

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...

Replace (2008)

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...

Abstract (2008)

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...

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...

Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT (2008)

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)

Eelco Visser

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.

b (2007)

Patricia Johann, Eelco Visser

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...

b (2007)

Patricia Johann, Eelco Visser

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...

3 (2007)

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...

A Parser for BibT E X (2007)

Eelco Visser

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)

Eelco Visser, Joost Visser

Abstract. We present an approach to collaborative software development where obtaining components and contributing components across organizational boundaries are explicit phases in the development...

1 (2007)

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...

References (2007)

Eelco Visser

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...

April 2001-- Workshop on Language Descriptions, Tools and Applications-- LDTA2001 XT: a bundle of program transformation tools (2007)

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, Eelco Visser

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...

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...

Declarative, formal, and extensible syntax definition for AspectJ - A case for scannerless generalized-LR parsing (2006)

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...

MetaBorg in Action: Examples of Domain-specific Language Embedding and Assimilation using Stratego/XT (2006)

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 (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)

Visser, Eelco

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)

Visser, Eelco

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...

Composing Source-to-Source Data-Flow Transformations with Rewriting Strategies and Dependent Dynamic Rewrite Rules (2005)

Olmos, K.R., Visser, Eelco

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...

Composing source-to-source data-flow transformations with rewriting strategies and dependent dynamic rewrite rules (2005)

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...

Contents (2005)

Karl Trygve Kalleberg, Eelco Visser

Copyright c ○ 2005 by the authors of the individual contributions. Address:

Metaborg in action: Examples of domain-specific language embedding and assimilation using Stratego/XT (2005)

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...

Universiteit Utrecht (2005)

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...

Metaborg in action: Examples of domain-specific language embedding and assimilation using Stratego/XT (2005)

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...

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

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...

Address: (2004)

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...

Address: (2004)

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)

Johann, P., 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...

Turning dynamic typing into static typing by program specialization (2003)

Olmos, K.R., Visser, Eelco

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...

Program Transformation Mechanics. A Classification of Mechanisms for Program Transformation with a Survey of Existing Transformation Systems (2003)

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...

Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in StrategoXT 0.9 (2003)

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)

Eelco Visser

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...

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)

Bravenboer, M., Visser, Eelco

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)

Dolstra, E., Visser, Eelco

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)

Visser, Eelco

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)

Olmos, K.R., Visser, Eelco

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)

Eelco Visser, Joost Visser

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)

Eelco Visser, Eelco Visser

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)

Eelco Dolstra, Eelco Visser

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)

Eelco Dolstra, Eelco Visser

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)

Dolstra, E., Visser, Eelco

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)

Bravenboer, M., Visser, Eelco

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...

Stratego: a language for program transformation based on rewriting strategies : system description of Stratego 0.5 (2001)

Visser, Eelco

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)

Visser, Eelco

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)

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...

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)

Visser, Eelco

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)

Eelco Visser

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)

Patricia Johann, 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...

First-class rules and generic traversal (2001)

Eelco Dolstra, Eelco Visser

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)

Eelco Visser

Program transformation is used in a wide range of applications including compiler construction, optimization, program synthesis, refactoring, software renovation, and reverse engineering. Complex...

Stratego: A language for program transformation based on rewriting strategies. System description of Stratego 0.5 (2001)

Eelco Visser

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)

Eelco Visser

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)

Eelco Visser

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...

Stratego: A language for program transformation based on rewriting strategies. System description of Stratego 0.5 (2001)

Eelco Visser

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)

Patricia Johann, 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...

Stratego: A Language for Program Transformation based on Rewriting Strategies - System Description of Stratego 0.5 (2001)

Eelco Visser

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)

Eelco Visser

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)

Patricia Johann, 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...

Fusing logic and control with local transformations: An example optimization (2001)

Patricia Johann, 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...

Fusing logic and control with local transformations: An example optimization (2001)

Patricia Johann, 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...

Warm fusion in Stratego - A case study in the generation of program transformation systems (2000)

Johann, P., Visser, Eelco

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...

The Stratego Library (2000)

Eelco Visser, Eelco Visser

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...

The Stratego Compiler (2000)

Eelco Visser, Eelco Visser

Syntax 15 2.1 Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2 Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3 Signatures . . . . . . . ....

The Stratego Reference Manual (2000)

Eelco Visser, Eelco Visser

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)

Eelco Visser

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)

Patricia Johann, Eelco Visser

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...

and Computing Sciences (2000)

Man Ual, Eelco Visser, Cop Yrigh

version 0.4.13 www.stratego-language.org Departmen tof Information

Language independent traversals for program transformation (2000)

Eelco Visser

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...

The Stratego Compiler (1999)

Eelco Visser

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...

The Stratego Tutorial (1999)

Eelco Visser, Eelco Visser

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)

Patricia Johann, Eelco Visser

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...

The Stratego Tutorial (1999)

Eelco Visser, Eelco Visser

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)

Mark Van, Eelco Visser

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)

Eelco Visser

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...

The Stratego Tutorial (1999)

Eelco Visser, Eelco Visser

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)

Eelco Visser, Eelco Visser

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...

The Stratego Compiler (1999)

Eelco Visser, Eelco Visser

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)

Eelco Visser, Andrew Tolmach

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)

Eelco Visser

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)

Eelco Visser, Andrew Tolmach

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)

Eelco Visser

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)

Eelco Visser, Andrew Tolmach

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)

Eelco Visser, Andrew Tolmach

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)

Visser, Eelco

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...

Character Classes (1997)

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)

Eelco Visser

. 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)

Eelco Visser

. 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

) 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)

Eelco Visser

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)

Paul Klint, Eelco Visser

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)

Eelco Visser

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

Eelco Visser

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...