πLisp exposes two levels of syntax (s-expressions and lisp forms)
- source
While regular languages expose compiler/interpreter as a single black box (text in, executable out), Lisp exposes two black boxes: reader and evaluator.
The reader defines how strings are translated into Lisp objects (s-expressions). The evaluator defines the semantics of Lisp forms that are built out of s-expressions.
This has multiple consequences:
- s-expressions can be used as a data serialization format (not necessarily code)
- because semantics are defined in terms of Lisp objects, itβs easier to generate code within the language than to generate code as text.
- you can easily generate code by manipulating data and that is the basis of Lisp macros
Backlinks
- π Common Lisp
- π Β§ Programming Language