DOL is a Dependent Object-oriented Language featuring dependent types, mutable objects and class-based inheritance with subtyping.
The DOL compiler is responsible for typechecking DOL programs, relying on the Z3 SMT solver for checking the constraints issued by types, and for translating DOL source code into pretty-printed Java classes. It supports Eclipse IDE integration with syntax colouring, code completion, on-the-fly error checking, and other conveniences.

Team: Joana Campos; Vasco T. Vasconcelos