Presentations at ETH


An Introduction to Program Transformation

Abstract: Transformation is a rewriting-based approach to software development and manipulation. A transformation system provides a set of primitives for explicitly controlling the application of rewrite rules to terms. This capability distinguishes transformation systems (also called Strategic programming systems) from pure rewriting systems. In this talk, I will describe transformation and its relationship to rewriting and equational reasoning. I will then give an overview of the HATS transformation system and briefly identify some dimensions along which Oberon programs can be transformed.


OberonDoc - A Preliminary Report

Abstract: Document generation for software systems can be informally understood as a process of summarizing and organizing the information present in the source code of the system. This implies that some information in the souce must be abstracted. For example, document generation systems typically omit the bodies of method declarations providing only the signature of methods. Organization of information can be achieved either by restructing elements of the original source code, or by providing a means to navigate between information that is somehow related.

In this talk, I describe some preliminary results in understanding and developing document generation for Oberon. Specifically, a prototype document generator for Oberon will be presented. The implementation of this prototype is largely transformation-based.


The Fathom System

Abstract: Fathom is a general-purpose document viewing framework. In this framework, one begins by decomposing a document into contents. A (document) view is then defined as a subset of the contents of a document. The set of views for a given document can be related through the sub-set operator. The resulting view-relation forms a lattice with the empty view as the bottom element and the view containing all the document contents as the top element. Transitioning along the edges of this view-lattice is conceptually similar to the zoom mechanism used when viewing electronic representations of maps.

Fathom is a framework based on the ideas described in the previous paragraph. Key challenges faced by Fathom include: (1) automatic decomposition of a document into semantically meaningful contents, (2) design of a suitable view abstraction accompanied by an abstract-to-concrete view generation function, and (3) automated support for navigating across the resulting view-lattice (e.g., transitioning between views) and browsing the resulting concrete views.


Higher-Order Transformation and the Distributed Data Problem
Abstract and Bio

Abstract: The control mechanisms offered by strategic programming have been successfully used to address a variety of problems relating to confluence and termination. However, the application of strategic programming to problems of increasing complexity has raised another issue, namely how auxiliary data fits within a strategic framework. The distributed data problem characterizes the problem posed by auxiliary data. This problem arises from a discord between the semantic association of terms within a specification and the structural association of terms resulting from the term language definition. My research is based on the premise that higher-order rewriting provides a mechanism for dealing with auxiliary data conforming to the tenets of rewriting. In a higher-order framework, the use of auxiliary data is expressed as a rule. Instantiation of such rules can be done using standard (albeit higher-order) mechanisms controlling rule application (e.g., traversal). Typically, a traversal-driven application of a higher-order rule will result in a number of instantiations. If left unstructured, these instantiations can be collectively seen as constituting a rule base whose creation takes place dynamically. However, such rule bases again encounter difficulties with respect to confluence and termination. In order to address this concern the notion of strategy construction is lifted to the higher-order as well. That is, instantiations result in rule bases that are structured to form strategies. Nevertheless, in many cases, simply lifting first-order control mechanisms to the higher-order does not permit the construction of strategies that are sufficiently refined. This difficulty is alleviated traditional control mechanisms enables a variety of instances of the distributed data problem to be elegantly solved in a higher-order setting. These ideas are formalized in a higher-order strategic programming language called TL.


Study of an API migration for two XML APIs
slides paper
Guest Speaker: Dr. Ralf Lämmel

Abstract: API migration refers to adapting an application such that its dependence on a given API (the source API) is eliminated in favor of depending on an alternative API (the target API), where both APIs serve the same domain. One may attempt to automate API migration by code transformation or wrapping of some sort. API migration is relatively well understood for the special case where source and target APIs are essentially different versions of the same API. API migration is much less understood for the general case where the two APIs have been developed more or less independently of each other. The present paper exercises a simple instance of the general case and develops engineering techniques towards the mastery of API migration. That is, we study wrapper-based migration between two prominent XML APIs for the Java platform. The migration follows an iterative and test-driven approach and allows us to identify, classify, and measure various differences between the studied APIs in a systematic way. The talk is based on a paper that has been presented at the 2nd International Conference on Software Language Engineering. Joint work with Thiago Tonelli Bartolomei, Krzysztof Czarnecki (both University of Waterloo), and Tijs van der Storm (CWI, Amsterdam)

Bio: Ralf Lämmel is Full Professor of Computer Science at the University of Koblenz-Landau since July 2007. He received his PhD in Computer Science from the University of Rostock in 1999. In the years 1999-2007, he has served on positions at the Dutch Centre of Mathematics and Computer Science, VU University Amsterdam, and Microsoft in Redmond. Ralf Lämmel's speciality is "software language engineering" and the combination of software engineering and programming languages. His research and teaching interests include program transformation, generative programming, programming languages, type systems, generic language technology, grammar-based methods, advanced separation of concerns, and automated software engineering. Ralf Lämmel is co-founder of the International Summer School Series Generative and Transformational Techniques on Software Engineering (GTTSE) and the International Conference on Software Language Engineering (SLE).