Homepage of

Karl Trygve Kalleberg

Programming Language Independent Abstract Syntax Trees

Mission Statement

My PhD project started the 15th of September in 2003, with the following project statement:

Maintenance of software programs is normally the most expensive part of the software life cycle. Most tools that support maintainenance and improvements to programs and program structure, be they compilers, program verifiers, transformation systems, modelling or reverse-engineering tools all represent the program internally in the form of abstract syntax trees (ASTs).

Usually, the AST is generated from a description of the subject language's concrete syntax, binding it closely to the subject language, which in turn complicates the construction of cross-language maintenance tools, even though their task may to a large degree be totally language independent.

My work aims to chart the concepts that underlie modern and forthcoming programming methodologies, and seeks to propose a language-independent AST supporting these. Additionally, I have a goal of demonstrating that such an AST can be the basis for language-independent software tools.



This project resulted in my PhD dissertation, Abstractions for Language-Independent Program Transformations.


Software that I have constructed as part of my work:

I also help maintain the following software:


I am still working on the theory and implementation of views and traceability in the context of program transformation.

See the publications page for details.