CMU Common Lisp
CMU Common Lisp ( CMUCL ) je bezplatná implementace programovacího jazyka Common Lisp pro operační systémy typu UNIX, včetně Linuxu a FreeBSD, původně vyvinutá na Carnegie Mellon University . Je to předchůdce volného Steel Bank Common Lisp a komerčního Scieneer Common Lisp .
Historie
Historie systému začala ještě před příchodem Common Lisp . Původně byla součástí Spice Lisp, vytvořené v roce 1980 na Carnegie Mellon University pro 16bitovou pracovní stanici PERQ, jejíž architektura poskytovala podporu pro jazyky na vysoké úrovni programováním hardwarového jádra v mikrokódu . V roce 1985 byl vytvořen kompilátor Pythonu a CMUCL byl portován na pracovní stanice IBM PC RT , MIPS a SPARC se systémem UNIX . Dřívější vydání CMUCL nepodporovala Intel x86 kvůli nekompatibilitě jádra s touto architekturou (implementace byla kriticky závislá na přítomnosti dostatečně velkého pole registrů, které se v rodině procesorů x86 nenachází).
Poté, co univerzita opustila tento projekt ve prospěch Dylana , pro který byl také použit vývoj CMUCL, pokračovala komunita v údržbě systému.
V roce 1996 zavedl tým údržby pravidelné vydávání aktualizací systému a zároveň byl portován na x86, zpočátku pro FreeBSD, později pro Linux. Problém s architektonickou nekompatibilitou byl vyřešen vytvořením nového garbage collectoru.
V tuto chvíli je systém ve veřejné doméně, jeho údržba pokračuje. Poslední stabilní verze (21c) byla vydána v říjnu 2017.
Moduly kompilátoru a runtime
CMUCL obsahuje interpret zdrojového kódu, interpret bytecode a kompilátor.
- Kompilátor do strojového kódu cílové platformy CMUCL se jmenuje "Python" (neplést s programovacím jazykem Python ). Podle autorů při vhodném kódování (napsání programu zohledňujícího požadavky na výkon a použití řady formálně volitelných deklarací) dodatečné režijní náklady při spouštění programu kompilovaného pomocí CMUCL prakticky nepřevyšují náklady na jazyky jako C++ .
- Interpret je určen především pro interaktivní vývoj, ale lze jej také jednoduše použít pro rychlé načtení a spuštění Lisp kódu bez přísných požadavků na rychlost.
- Virtuální stroj pro spouštění programů dříve převedených kompilátorem do kompaktního bajtkódu. Tato funkce se dnes používá jen zřídka a v počátcích systému byla populární, protože umožňovala rychlejší stahování kódu přes pomalé internetové připojení.
Klíčové vlastnosti
- Efektivní sběr odpadků a podpora multiprocessingu na platformě x86.
- Rozhraní s externím C kódem, přímý přístup do systémových knihoven na většině platforem, přímý přístup k systémovým voláním na UNIX.
- Podpora pro meziprocesovou komunikaci a vzdálená volání procedur.
- Implementace objektového systému CLOS .
- GUI debugger, profiler.
- Rozhraní s X11 Window System (CLX) s vlastní knihovnou grafických widgetů (Garnet).
- Softwarově rozšiřitelné I/O streamy.
- Textový editor Hemlock (jako Emacs ) napsaný v Common Lisp.
Poznámky
Odkazy
Lisp obecný |
---|
Implementace |
|
---|
Software | Knihovny |
- CLSQL
- - HTTP
- CL-PPCRE
- CLX
- obrněný
- Symbolický web
- Neobvyklý web
- Webové zámky
- Hunchentoot
- AllegroCache
- ASDF
- CLiki
- CLIM
|
---|
Aplikace |
- Clfswm
- společná hudba
- Music
- Běžná hudební
- ICAD
- InspireData
- PrimeTrader
- Mirai
- Maxima
- openmusic
- PWGL
- Stumpwm
- SiteGrinder
- OÁZA
- autoprice
|
---|
Vývojová prostředí |
|
---|
|
---|
Publikace |
- the Language
- AI
- protokolu
- Na
- Praktický Common
- Objektově orientované programování v Common
|
---|
návrhová komise |
|
---|
jiný |
|
---|