Google Research

Guarded Program Transformations Using JTL

TOOLS EUROPE 2008 (LNBIP 11), Springer-Verlag, Berlin, pp. 100-120

Abstract

There is a growing research interest in employing the logic paradigm for making queries on software in general, and OOP software in particular. We describes a side-effect-free technique of using the paradigm for the general task of program transformation. Our technique offers a variety of applications, such as implementing generic structures (without erasure) in JAVA, a Lint-like program checker, and more. By allowing the transformation target to be a different language than the source (program translation), we show how the language can be employed for tasks like the generation of database schemas or XML DTDs that match JAVA classes.

The technique is an extension of JTL (Java Tools Language), which is a high-level abstraction over DATALOG. We discuss the JTL-to-DATALOG compilation process, and how the program transformation extension can be added to JTL without deviating from the logic paradigm, and specifically without introducing side-effects to logic programs.

Research Areas

Learn more about how we do research

We maintain a portfolio of research projects, providing individuals and teams the freedom to emphasize specific types of work