Learn More
Fusion, one of the most useful transformation tactics for deriving ecient programs, is the process whereby separate pieces of programs are fused into a single one, leading to an ecient program with no intermediate data structures produced. In this paper, we report our ongoing investigation on the design and implementation of an automatic transformation(More)
<i>Bidirectional transformation</i> is a pair of transformations: a <i>view function</i> and a <i>backward transformation</i>. A view function maps one data structure called source onto another called view. The corresponding backward transformation reflects changes in the view to the source. Its practically useful applications include replicated data(More)
This paper presents a novel editor supporting interactive refinement in the development of structured documents. The user performs a sequence of editing operations on the document view, and the editor automatically derives an efficient and reliable document source and a transformation that produces the document view. The editor is unique in its(More)
Divide-and-conquer algorithms are suitable for modern parallel machines, tending to have large amounts of inherent parallelism and working well with caches and deep memory hierarchies. Among others, list homomorphisms are a class of recursive functions on lists, which match very well with the divide-and-conquer paradigm. However, direct programming with(More)
Erasure of information incurs an increase in entropy and dissipates heat. Therefore, information-preserving computation is essential for constructing computers that use energy more effectively. A more recent motivation to understand reversible transformations also comes from the design of editors where editing actions on a view need to be reflected back to(More)
GETA is a library that implements high performance method for asso-ciative computation to be used as a basis of various document processing including searching or clustering. We proposed an algebraic view for the GETA engine with concrete implementation of an interface which connects the high level view with the underlying efficient library. Users can write(More)