Cecil Language


Cecil is part of the Cecil/Vortex research at UniversityOfWashington, lead by Craig Chambers. It is roughly similar to DylanLanguage -- it has MultiMethods, MultipleInheritance, optional StaticTyping, PredicateTypes, and is a PrototypeBasedLanguage (like SelfLanguage). VortexCompiler is a compiler back-end that aims to deal with it efficiently. The group have published many papers about implementing advanced languages. Some of the people previously worked on the SelfLanguage.

Very much not to be confused with CesilLanguage...

Cecil offers PredicateClasses which allow an interesting approach to the CircleAndEllipseProblem. Loosely speaking, this is a kind of dynamic inheritance, where an instance can inherit from a class higher or lower in the inheritance graph when its state changes.

Ellipse would be a regular class, and Circle would be a predicate class. The declaration of Circle would say that any instance of Ellipse also inherits from Circle when the two foci coincide. If the object is in that state it can use all methods from Circle in addition to those of Ellipse. When it changes states to represent a non-circle, only the Ellipse methods are available.


EditText of this page (last edited August 12, 2013) or FindPage with title or text search