Common Lisp

Wir verwenden für die Programmierung Clozure Common Lisp (CCL). Es unterstützt von den freien Lisp Systemen das Multithreading auf den drei Plattformen (Linux, Windows und Mac) am Besten. Es handelt sich beim CCL um eine hervorragende Implementierung von Common Lisp.

Alternativ, und wenn die Plattform nur Unix ist, verwenden wir auch noch SBCL Common Lisp. Bei Scheme gibt es viele Compiler die C-Code produzieren können, beim Common Lisp ist dies nur mit Embedded Common Lisp (ECL) möglich

Common Lisp (CLtl2.pdf) ist eine einfache, elegante und extrem dynamische Programmiersprache. Der ANSI-Standard ist sehr umfangreich und hat sich seit 1994 nicht mehr verändert. Das heisst Programme die 1994 gelaufen sind, funktionieren auch heute noch einwandfrei. Common Lisp ist eine robuste und bewährte Programmiersprache die alle Konzepte beherbergt für die heute mehrere Programmiersprachen benötigt werden. Common Lisp ist Objektorientiert (CLOS das wahrscheinlich beste OO Modell das jemals erfunden und entwickelt wurde), Funktional und Imperativ. Aufgrund der Historie und den damals schwachen Rechenleistung der Computer wurde oft imperativ programmiert, das sieht man auch an den vielen Funktionen mit Seiteneffekten.

Scheme

Die interessanteste Implementierung die wir unterstützen ist Chez Scheme (R6RS.pdf) von Kent Dybvig. Sie wurde früher kommerziell vertrieben, gehört aber mittlerweile zu Cisco und ist freie Open Source Software.
Das System brilliert durch seinen hervorragenden JIT-Compiler der sowohl extrem schnell kompiliert als auch sehr schnellen Code produziert.

Unsere zwei weiteren Favoriten sind Gambit Scheme (R5RS.pdf) und Chicken Scheme (R5RS.pdf/ R7RS.pdf in progress).
Sie kompilieren beide zu effizienten portablen C Code und lassen sich so problemlos überall dorthin portieren wo es einen C Compiler gibt, auch für den Embedded Bereich. Die Bandbreite ist somit deutlich größer als mit Chez Scheme. Beide erweitern den Scheme-Standard so dass sie alltagstauglich sind.

Scheme ist eine sehr klare einfache und extrem elegante Programmiersprache. Das (hygienische) Makrosystem ist bei all seiner Einfachheit extrem leistungsfähig. Da Scheme im Standard so schlank ist gibt es eine unüberschaubare Menge an Implementierungen, sogar für Erlang und GPU Prozessoren. Wir haben viel Zeit investiert um die für unsere Projekte interessantesten Implementierungen heraus zu suchen.