Maclisp - Maclisp

Maclisp
Paradigmata Multi-paradigma : funkční , procedurální , reflexní , meta
Rodina Lisp
Navrhl Richard Greenblatt
Jon L. White
Vývojář MIT : Projekt MAC
Poprvé se objevil Červenec 1966 ; Před 55 lety ( 1966-07 )
Kázeň při psaní dynamický , silný
Implementační jazyk Jazyk montáže , PL/I
Plošina PDP-6 , PDP-10
OS Nekompatibilní systém sdílení času , TOPS-10 , TOPS-20 , Multics
Rozšíření názvu souboru .lisp , .fasl
Ovlivněn
Lisp 1,5
Ovlivněn
Lisp

Maclisp (nebo MACLISP , někdy stylizovaný MacLisp nebo MacLISP ) je programovací jazyk , dialekt jazyka Lisp . Vznikl na projektu MAC Massachusetts Institute of Technology (MIT) Project (z něhož odvozoval svou předponu) na konci šedesátých let minulého století a byl založen na Lisp 1.5. Richard Greenblatt byl hlavním vývojářem původní kódové základny pro PDP-6 ; Jon L. White byl zodpovědný za jeho pozdější údržbu a vývoj. Název Maclisp se začal používat na začátku 70. let, aby se odlišil od ostatních vidlic PDP-6 Lisp, zejména BBN Lisp .

Dějiny

Maclisp je potomkem Lisp 1.5 . Maclisp se odchyluje od Lisp 1.5 pomocí buňky hodnot pro přístup a ukládání dynamických hodnot proměnných ; Lisp 1.5 použil lineární vyhledávání seznamu přidružení k určení hodnoty proměnné. Vyhodnocení proměnné Maclisp je rychlejší, ale má odlišnou sémantiku proměnných. Maclisp také používal čtecí makra pro lepší čitelnost vstupu a výstupu , nazývaných vstup/výstup (I/O). Místo zadávání (QUOTE A)lze zadat 'Astejný výraz s . Ačkoli obě implementace zařazují funkce na seznam vlastností, Maclisp používá k definování funkcí odlišnou syntaxi. Maclisp má také funkci load-on-demand.

Maclisp začínal na počítačích Digital Equipment Corporation PDP-6 a PDP-10 se systémem Incompatible Timesharing System (ITS); později byl přenesen do všech ostatních operačních systémů PDP-10, například Timesharing / Total Operating System , TOPS-10 a TOPS-20 . Původní implementace byla v jazyce sestavení , ale pozdější implementace na Multics používala PL/I . Maclisp se za dobu své existence značně rozvinul. Byly přidány hlavní funkce, které v jiných jazykových systémech obvykle odpovídají číslům hlavních vydání.

Maclisp byl použit k implementaci systému počítačové algebry Macsyma (CAS) nebo programu symbolické algebry. Vývoj Macsymy také vedl k několika funkcím v Maclispu. Program blokového světa SHRDLU byl napsán v Maclispu, a proto byl jazyk ve výzkumné komunitě umělé inteligence (AI) široce používán počátkem 80. let minulého století. To bylo také používáno k implementaci dalších programovacích jazyků, jako je Planner a Scheme . Multics Maclisp byl použit k implementaci prvního Emacsu založeného na Lispu .

Maclisp byl vlivnou implementací Lispu, ale již není aktivně udržován. Nyní běží na emulátorech PDP-10 a lze jej použít k experimentování s ranými programy AI.

Charakteristika

Maclisp začínal malým, pevným počtem datových typů : buňka proti , atom (později nazývaný symbol ), celé číslo a číslo s plovoucí desetinnou čárkou . Pozdější přírůstky zahrnovaly: pole , která nikdy nebyla prvotřídními datovými typy; celá čísla libovolné přesnosti (bignumy); struny ; a n -tice . Všechny objekty (kromě inums) byly implementovány jako ukazatele a jejich datový typ byl určen blokem paměti, do kterého ukazoval, se zvláštním případem pro malá čísla (inums).

Programy lze interpretovat nebo kompilovat . Zkompilované chování bylo stejné jako interpretované, kromě toho, že místní proměnné byly ve zkompilovaném kódu ve výchozím nastavení lexikální, pokud nebyly deklarovány jako ZVLÁŠTNÍ, a pro vložené operace, jako jsou CAR a CDR, nebyla provedena žádná kontrola chyb. Kompilátor Ncomplr (polovina 70. let) zavedl rychlou numerickou podporu jazyků Lisp, generující strojový kód (instrukce) pro aritmetiku, nikoli volání interpretačních rutin, které byly odesílány na datový typ. Díky tomu byla Lisp aritmetika rychlostí srovnatelná s Fortranem pro skalární operace (ačkoli implementace pole a smyčky Fortran zůstala mnohem rychlejší).

Původní verze byla omezena 18bitovou adresou paměti paměti PDP-10 a bylo vynaloženo značné úsilí, aby byla implementace štíhlá a jednoduchá. Multics Maclisp měl mnohem větší adresní prostor, ale jeho použití bylo nákladné. Pokud je v paměti a zpracování síla PDP-10 byla překročena, Lisp stroj byl vynalezen: Lisp stroj Lisp je přímý potomek Maclisp. Bylo také používáno několik dalších dialektů Lispu a potřeba sjednotit komunitu vyústila v moderní jazyk Common Lisp .

název

Maclisp byl pojmenován pro Project MAC a nesouvisí s počítačem Apple Macintosh (Mac), který předchází desítky let. Různé systémy Lisp pro Macintosh nemají žádnou zvláštní podobnost s Maclispem.

Reference

externí odkazy