Classboxes are modules that restrict the visibility of changes to selected clients only, thereby offering more freedom in the way unanticipated changes may be implemented, and thus reducing the need for convoluted design anomalies.

Current Implementation

The current implementation of classboxes is based on two components:

The library provides a performant implementation of the semantincs of classboxes. This library can be used to define classboxes using its Java API.

The compiler type-checks and compiles source files written in the concrete syntax of classboxes. The output of the compiler, besides the executable bytecode of the application, is the necessary configuration for the library. Using the compiler frees the user from manually using the Java API to define classboxes.


The Reflex library for classboxes can be obtained from the following SVN repository:

The JastAddJ-based compiler can be downloaded from the following SVN repository:

Both URLs can be accessed using the username guest and password guest.


This work is being developed thanks to the Fondecyt Project number 7070296 at the University of Chile.

Classboxes was originally conceived and developed by Alexandre Bergel. Original web page can be found here:

The current implementation based on Reflex and JastAddJ was implemented and is maintained by Rodolfo Toledo and Victor Ramiro.