| Lisp |
|---|
 |
| Paradigma | Functioneel,Multiparadigma |
|---|
| Verschenen | 1958 |
|---|
| Ontwerper | John McCarthy |
|---|
| Ontwikkelaar | Steve Russell, Timothy P. Hart en Mike Levin |
|---|
| Typesysteem | dynamisch, sterk |
|---|
| Dialecten | Arc,AutoLISP,Clojure,Common Lisp,Emacs Lisp,Hy,Interlisp,Maclisp,PicoLisp,Racket,Scheme,Zetalisp |
|---|
| Invloed op | CLIPS,Dylan,Elixir,Forth,Haskell,JavaScript,Julia,Logo,Lua,ML,Nim,Perl,Python,R,Rebol,Ruby,Scala,Smalltalk |
|---|
| Besturingssysteem | Multiplatform |
|---|
 |
|
Lisp (een afkorting voorLIStProcessing) is een familie vanprogrammeertalen met een lange geschiedenis binnen de Informatica. De eerste versie van Lisp werd van 1956 tot en met 1958 aan hetMIT ontworpen doorJohn McCarthy.[1] Lisp is naFortran de oudste hogere programmeertaal die nog steeds in gebruik is.
Zoals veel programmeertalen is Lisp door de jaren heen sterk veranderd, en er zijn veel dialecten en andere talen van afgeleid, zoalsScheme,Common Lisp,Emacs Lisp enAutoLISP. Er zijn ook dialecten die draaien op al bestaande omgevingen, waardoor bestaandebibliotheken direct in de taal gebruikt kunnen worden. Hiervan isClojure een voorbeeld, die door te draaien op deJVM met bestaandeJava code samenwerkt zonder FFI.
Lisp is ontworpen als een manier om delambdacalculus vanAlonzo Church praktisch toe te passen. Lisp-programma's bestaan grotendeels uit bewerkingen oplijsten en zijn zelf ook bewerkbare lijsten. Deze eigenschap van zelfde representatie wordt homoiconiciteit genoemd, en staat toe dat code die met lijsten werken dus ook Lisp code zelf als invoer en uitvoer accepteren. Hierdoor is het mogelijk om nieuwe syntaxis tot in de taal in te bouwen door enkel te beschrijven hoe deze syntaxis zich vertaalt naar semantiek die al in de taal aanwezig is.
Het bekendste toepassingsgebied voor Lisp als programmeertaal voor zelfstandige programma's is dekunstmatige intelligentie (AI). Daarnaast heeft de taal populariteit gekregen alsscripttaal voor bepaaldeapplicaties, bijvoorbeeld Emacs Lisp voorEmacs (eenteksteditor) enAutoLISP voorAutoCAD (een CAD/CAM-programma).
Lisp is feitelijk eenmulti-paradigmaprogrammeertaal: naast zuiverfunctioneel programmeren ondersteunt het door zijn toewijzingsprimitieven ookimperatief programmeren, en er zijn verscheidene bibliotheken voorobjectgeoriënteerd programmeren, zoals hetCommon Lisp Object System (CLOS), een standaard onderdeel van Common Lisp.
Lisp heeft ook een zichtbare rol gespeeld in het programmeeronderwijs, zeker bijMIT. In 1984 is de eerste editie van het boek Structure and Interpretation of Computer Programs gepubliceerd, waarna het is gebruikt om de fundamenten van programmeren te leren en er ook een tweede editie kwam.[2] De voorbeelden werden gegeven inScheme, een dialect van Lisp. Veel later in 2022 kwam er ook een editie inJavaScript.[3]