Socrates is a programming language embedded in
PLT Scheme, meaning that
Socrates code and Scheme code can be freely intermixed. Socrates
is implemented as a collection of PLT Scheme libraries,
distributed as a .plt
file that can be installed
and compiled with
setup-plt
.
Socrates uses a generalized form of predicate dispatching to support advanced separation of concerns. The core semantics are simple, but layers of syntactic sugar are provided to emulate many different programming methodologies, including CLOS-style classes and generic functions, AspectJ-style pointcuts and advice, and ComposeJ-style composition filters.
Socrates is an academic research project whose main goal is expressibility rather than efficiency. There is no static typing or type inference, and the current implementation is quite slow for all but the smallest programs. It should be regarded more as a demonstration of ideas than a production-quality language implementation.
SourceForge project page