A general-purpose, multi-paradigm programming language that is designed for programming language design and implementation.