Program Transformation
26,042 Followers
Recent papers in Program Transformation
The Western Research Laboratory (WRL) is a computer systems research group that was founded by Digital Equipment Corporation in 1982. Our focus is computer science research relevant to the design and application of high performance... more
We consider in this paper that a DSL (Domain Specific Language) may be defined by a set of models. A typical DSL is the ATLAS Transformation Language (ATL). An ATL program transforms a source model (conforming to a source metamodel) into... more
The aim of this paper is to explore the role of design in supporting user-centred development of services and transformation of service organisations. Especially the focus is on bottom-up and top-down service development approaches in the... more
Formal methods and testing are two important approaches that assist in the development of high-quality software. While traditionally these approaches have been seen as rivals, in recent years a new consensus has developed in which they... more
Matsuda et al. [2007, ICFP] and Voigtländer [2009, POPL] introduced two techniques that given a source-to-view function provide an update propagation function mapping an original source and an updated view back to an updated source,... more
—The banking experience for many people today is fundamentally an application of technology to be able to carry out their financial tasks. While the need to visit a bank branch remains essential for a number of activities, increasingly... more
We present the iterative solutions of the Towers of Hanoi problems (standard, cyclic, and generalized) using the program transformation methodology of Burstall-Darlington. We derive algorithms with minimal time x space requirements. Their... more
This volume contains the papers from LOPSTR 2001, the 11th International Workshop on Logic-based Program Synthesis and Transformation. Topics of interest to LOPSTR cover all aspects of logic-based program development and, in particular,
Lambda-lifting a block-structured program transforms it into a set of recursive equations. We present the symmetric transformation: lambdadropping. Lambda-dropping a set of recursive equations restores block structure and lexical scope.
Celem artykułu jest ukazanie relacji i zależności, jakie zachodzą pomiędzy procesem demokratyzacji a wprowadzaniem mechanizmów wolnego rynku. Odniesiono się tu do istoty procesów demokratyzacji na świecie w czasie trzech fal... more
of program transformations, including straight-line code parallelization, do loop transformations, and parallelization of recursive routines. The last section of the paper surveys several experimental studies on the effectiveness of... more
GPUs are a class of specialized parallel architectures with tremendous computational power. The new Compute Unified Device Architecture (CUDA) programming model from NVIDIA facilitates programming of general purpose applications on their... more
Our research is driven by the motivation that change must be put in the center, if one wants to understand the complex processes of software evolution. We built a toolset named SpyWare which, using a monitoring plug-in for integrated... more
The cost of maintaining legacy software systems has spiralled and their maintenance became a burden for many organisations. In this paper we present the first prototype of the LOBS-COQ system that attempts to transform COBOL legacy... more
Obfuscation is gaining momentum as a protection mechanism for the intellectual property contained within or encapsulated by software. Usually, one of the following three directions is followed: source code obfuscation is achieved through... more
VHDL programs are often tested by means of simulations, relying on test benches written intuitively. In this paper, we propose a formal approach to construct test benches from system specification. To consider the real-time properties of... more
In the late 1970''s a modular, high-throughput architecture for large scale Fourier Transform processors was developed in [1,2]. This architecture uses only a few basic modules in a highly pipelined arrangement and some serial... more
Heterogeneous computers with processors and accelerators are becoming widespread in scientific computing. However, it is difficult to program hybrid architectures and there is no commonly accepted programming model. Ideally, applications... more
SmartTools is a development environment generator that provides a structure editor and semantic tools as main features. The well-known visitor pattern technique is commonly used for designing semantic analysis, it has been automated and... more
The evaluation function of a syntactic theory is canonically defined as the transitive closure of (1) decomposing a program into an evaluation context and a redex, (2) contracting this redex, and (3) plugging the contractum in the... more
Empirical program optimizers estimate the values of key optimization parameters by generating different program versions and running them on the actual hardware to determine which values give the best performance. In contrast,... more
This paper describes an automated approach to hardware design space exploration, through a collaboration between parallelizing compiler technology and high-level synthesis tools. We present a compiler algorithm that automatically explores... more
This report outlines the evolution of computational geometry, highlights its past accomplishments, and discusses strategic directions for the future. It complements a recent report by Chazelle et al. on the impact of computational... more
Higher education is being deeply challenged by the coronavirus. The immediate threats of the coronavirus come at the heels of an existing panoply of problems that already threaten higher education as we know it. These include, of course,... more
A common trend in programming language specification is to generate various tools (e.g., compiler, editor, profiler, and debugger) from a grammar. In such a generative approach, it is desirable to have the definition of a programming... more
Sage++ is an object oriented toolkit for building program transformation and preprocessing tools. It contains parsers for Fortran 77 with many Fortran 90 extensions, C, and C++, integrated with a C++ class library. The library provides a... more
Sage++ is an object oriented toolkit for building program transformation and preprocessing tools. It contains parsers for Fortran 77 with many Fortran 90 extensions, C, and C++, integrated with a C++ class library. The library provides a... more
In previous work, we introduced the fundamentals and a supporting combinator library for strategic programming. This an idiom for generic programming based on the notion of a functional strategy: a first-class generic function that cannot... more
We build on Danvy and Nielsen's first-order program transformation into continuation-passing style (CPS) to design a new CPS transformation of flow information that is simpler and more efficient than what has been presented in previous... more
Load-reuse analysis finds instructions that repeatedly access the same memory location. This location can be promoted to a register, eliminating redundant loads by reusing the results of prior memory accesses. This paper develops a... more
In this paper, we demonstrate how Functional Reactive Programming (FRP), a framework for the description of interactive systems, can be extended to encompass parallel systems. FRP is based on Haskell, a purely functional programming... more
Improving the design quality of large object-oriented systems during maintenance and evolution is widely regarded as a high-priority objective. Furthermore, for such systems that are subject to frequent modifications, detection and... more
The many approaches which have been proposed in the literature for proving the correctness of unfold/fold program transformations, consist in associating suitable well-founded orderings with the proof trees of the atoms belonging to the... more
High-performance, I/O-intensive applications often require complicated, split-phase, event-based implementations. Threads appear to be an attractive alternative because they allow the programmer to write a single sequence of operations... more
This volume contains the papers from LOPSTR 2001, the 11th International Workshop on Logic-based Program Synthesis and Transformation. Topics of interest to LOPSTR cover all aspects of logic-based program development and, in particular,