Cecil is a purely object-oriented language intended to support rapid construction of high-quality, extensible software. Cecil incorporates multi-methods, a simple prototype-based object model, a mechanism to support a structured form of computed inheritance, module-based encapsulation, and a flexible static type system which allows statically- and dynamically-typed code to mix freely.
Vortex is an optimizing compiler infrastructure for object-oriented and other high-level languages. It targets both pure object-oriented languages like Cecil and Smalltalk and hybrid object-oriented languages like C++, Modula-3, and Java. Vortex currently incorporates high-level optimizations such as static class analysis, class hierachy analysis, profile-guided receiver class prediction, profile-guided selective procedure specialization, intraprocedural message splitting, automatic inlining, and static closure analyses. It also includes a collection of standard intraprocedural analyses such as common subexpression elimination and dead assignment elimination. The Vortex compiler is written entirely in Cecil. A long technical report describes many of our core implementation techniques, and many shorter papers describe individual techniques.
You can check out our latest set of experimental results for Cecil, Java, and C++.
A release of the Cecil/Vortex
system (including the Cecil, Java and C++ front ends) is now
available.