Lisp | |
---|---|
Paradigma | funktionaalinen |
Muistinhallinta | automaattinen roskienkeruu |
Julkaistu | 1958 |
Kehittäjä | John McCarthy |
Murteet | Common Lisp, Scheme, Emacs Lisp, AutoLISP, Clojure, MultiLisp |
Käyttöjärjestelmä | alustariippumaton |
Uutisryhmä | comp.lang.lisp |
Lisp on usean lähestymistavan refleksiivinen ohjelmointikieli.
Nimi Lisp tulee englannin kielen sanoista ”List Processing”. Linkitetyt listat ovat Lispin pääasiallisia datarakenteita, ja identtiset perustason listaoperaatiot toimivat kaikissa Lispin murteissa. Muita yleisiä ominaisuuksia Lispin murteissa ovat vahvat dynaamisen tyypit, tuki funktionaaliselle ohjelmoinnille ja kyky muokata lähdekoodia datana.
Tällä hetkellä kaksi yleisintä Lisp-murretta ovat Scheme ja Common Lisp. Lispistä puhuttaessa tarkoitetaan yleensä jälkimmäistä. Moni nykyisin suosittu kieli on ottanut vaikutteita Lispistä (ehtorakenteet, silmukat, roskienkeruu jne.). Lispissä ei tehdä eroa sisäänrakennetun ja ohjelmoijan tekemän funktion välille, joten Lisp on helposti laajennettavissa. Tämä mahdollistaa sen, että Lispillä on erittäin helppo tehdä sisäkkäisiä ohjelmointikieliä, mistä Common Lispin loop-makro on hyvä esimerkki. Useimmiten Lisp-ohjelmoija kirjoittaa kielen sopimaan kulloiseenkin ohjelmointitehtävään sen sijaan että jakaisi ohjelman ratkaiseman ongelman jatkuvasti pienempiin osiin kunnes se on tarpeeksi pieni kielellä ratkaistavaksi. Tätä kutsutaan alhaalta ylös -ohjelmointitekniikaksi, jossa kieli sovitetaan ohjelmaan.