Common Lisp
Common Lisp is a general-purpose, multi-paradigm dialect of Lisp standardized in the 1980s, notable for its powerful macro system, dynamic development style, and support for both functional and object-oriented programming.
Definition
Common Lisp is a general-purpose, multi-paradigm dialect of Lisp standardized in the 1980s, notable for its powerful macro system, dynamic development style, and support for both functional and object-oriented programming.
Overview
Common Lisp emerged as an effort to unify the many diverging Lisp dialects of the 1970s and early 1980s into a single standardized language, resulting in ANSI Common Lisp — a large, feature-rich specification that includes a sophisticated macro system, the Common Lisp Object System (CLOS) for object-oriented programming, condition-based error handling, and native support for numeric types beyond typical fixed-precision integers. Unlike the minimalist design of its sibling dialect Scheme, Common Lisp deliberately included a broad standard library and many convenience features aimed at production software development. One of Common Lisp's most distinctive traits is its macro system, which operates on code represented as data (homoiconicity), letting developers extend the language itself with new syntactic constructs — a capability few mainstream languages offer as directly. This, combined with an interactive REPL-driven development style, made Common Lisp historically popular for exploratory programming, symbolic AI research, and complex systems where the ability to redefine and extend the running program was valuable. Common Lisp saw significant industrial use in AI research through the 1980s, including in specialized Lisp machines built to run it efficiently, and it remains actively used today in niche but committed communities for symbolic computation, rapid prototyping, and systems that benefit from its macro-driven extensibility, even though it never achieved the mainstream adoption of later dynamic languages like Python. It is often mentioned alongside Prolog in this space.
Key Features
- Powerful macro system for extending the language itself
- Common Lisp Object System (CLOS) for object-oriented programming
- Interactive, REPL-driven development workflow
- Homoiconic syntax: code is represented as data
- Condition system for flexible, resumable error handling
- Large standardized feature set (ANSI Common Lisp)