The Meta-Environment - ApiGen

Skip to main content.



ApiGen is a tool that generates C or Java code to implement tree-like data-structures. ATerms are used as internal representation. The generated code is characterized by:

The key design considerations of ApiGen are:


The above figure illustrates how application code can use ATerms:

The general observation is that it is much easier to modify views when using access code that has been generated by ApiGen. Overall maintainability is thus enhanced.

ApiGen is used for the construction of:

The input for ApiGen is one of the following:

API documentation




@article{apigen, author = {H. A. de Jong and Pieter A. Olivier}, title = {Generation of abstract programming interfaces from syntax definitions.}, journal = {J. Log. Algebr. Program.}, volume = {59}, number = {1-2}, year = {2004}, pages = {35-61}, ee = {}, bibsource = {DBLP,}, url = "" }

@article{apigenjava, author = {Brand, {M.G.J. van den} and Moreau, P.E. and Vinju, J.J.}, title = {A generator of efficient strongly typed abstract syntax trees in Java}, journal = {IEE Proceedings -- Software}, volume = {152}, numbmer = {2}, year = {2005}, month = {April}, pages = {70-78}, url = "" } }%