articles/common_lisp.md: new article

This commit is contained in:
tocariimaa 2025-02-17 00:47:49 -03:00
parent 35f3b87a6e
commit a5b655dfc5

32
articles/common_lisp.md Normal file
View file

@ -0,0 +1,32 @@
# Common Lisp
Common Lisp is a [Lisp](lisp.md) dialect, created as a successor of MIT's Maclisp.
It also one of the most efficient (in terms of execution speed) Lisp, almost archiving the
performance of an equivalent [C](c.md) program when using a compiler and type hints.
Unlike other Lisps, Common Lisp is gradually typed: by default its type system is dynamic,
but it allows to specify the explicit type for a binding, which then a compiler can use
for compile-time type checking and for producing better [machine code](machine_code.md).
It also allows for [OOP](oop.md) with the included CLOS (Common Lisp Object System).
## Implementations
- [SBCL](https://www.sbcl.org/) (Steel Bank Common Lisp): a [JIT](jit.md) compiler, seems
to be the most popular implementation; public domain.
- [CLISP](https://www.gnu.org/software/clisp/): bytecode interpreter, last release was in 2010 but
it is still in active development.
- [GCL](https://www.gnu.org/software/gcl/) (GNU Common Lisp): GNU's Common Lisp compiler, based in Kyoto Common Lisp (KCL).
- [ECL](https://ecl.common-lisp.dev/) (Embeddable Common Lisp): compiler, also derived from KCL.
- [CCL](https://ccl.clozure.com/) (Closure Common Lisp).
- ...
## Examples
```lisp
(princ "Hello, World!")
```
TODO
## Resources
- Common Lisp HyperSpec: HTML rendition of the Common Lisp ANSI standard, can be
found here: <https://www.lispworks.com/documentation/HyperSpec/Front/> with some
better looking versions here: <https://novaspec.org/cl/> and <https://cl-community-spec.github.io/pages/index.html>.