Common Lisp
Website: common-lisp.net
Proiectat de: Scott Fahlman, Richard P. Gabriel, David A. Moon, Kent Pitman, Guy Steele, Dan Weinreb
Common Lisp (CL) este un dialect al limbajului de programare LISP, publicat în documentul standard al American Standards Institute (ANSI) ANSI Inclits 226-1994 (S20018) (fost X3.226-1994 (R1999)).
Hyperspec -ul obișnuit Lisp, o versiune HTML hiperlinkată, a fost derivată din standardul LISP comun ANSI.
Limbajul LISP comun a fost dezvoltat ca un succesor standardizat și îmbunătățit al MacLisp.
Până la începutul anilor 1980, mai multe grupuri erau deja la lucru la diverși succesori la MacLisp: Lisp Machine Lisp (aka Zetalisp), Spice Lisp, NIL și S-1 LISP.
Common Lisp a căutat să unifice, să standardizeze și să extindă caracteristicile acestor dialecte MacLisp.
Lisp -ul comun nu este o implementare, ci mai degrabă o specificație a limbajului.
Sunt disponibile mai multe implementări ale standardului LISP comun, inclusiv software gratuit și open-source și produse proprii.
Common Lisp este un limbaj de programare cu mai multe paradigme.
Suportă o combinație de paradigme de programare procedurale, funcționale și orientate pe obiecte.
Ca un limbaj de programare dinamic, facilitează dezvoltarea software evolutivă și incrementală, cu compilarea iterativă în programe eficiente de rulare.
Această dezvoltare incrementală este adesea făcută interactiv fără a întrerupe aplicația care rulează.
De asemenea, acceptă adnotarea și turnarea de tip opțional, care pot fi adăugate după cum este necesar la etapele de profilare și optimizare ulterioare, pentru a permite compilatorului să genereze un cod mai eficient.
De exemplu, FixNum poate deține un număr întreg unbox într -un interval acceptat de hardware și implementare, permițând aritmetică mai eficientă decât pe mari numere întregi sau tipuri de precizie arbitrară.
În mod similar, compilatorul poate fi spus pe bază de mod sau pe funcție, tipul de nivel de siguranță este dorit, folosind declarațiile optimizate.
Common Lisp include CLOS, un sistem de obiecte care acceptă multimetode și combinații de metode.
Este adesea implementat cu un protocol metaobject.
Common Lisp este extensibil prin caracteristici standard, cum ar fi macro -urile LISP (Transformations Code) și Macros Reader (analize de intrare pentru caractere).
Common Lisp oferă o compatibilitate parțială înapoi cu Lisp -ul original al lui MacLisp și John McCarthy.
Acest lucru permite ca software -ul LISP mai vechi să fie portat la LISP comun.