MacLisp

MACLISP (také Maclisp ) je dialekt programovacího jazyka Lisp , vyvinutý v laboratoři umělé inteligence MIT , který se v té době (konec 60. let ) nazýval Project MAC (odkud předpona v názvu jazyka skutečně pochází, existuje zde není spojení s počítači Macintosh společnosti Apple , stejnou předponu v názvu a ze stejného důvodu má např. systém počítačové algebry Macsyma )

Ačkoli je tento jazyk velmi pozoruhodný, zejména pro ovlivnění mnoha pozdějších lispů, jako je Zeta Lisp a Common Lisp a byl použit pro první implementace Macsyma , SHRDLU a Multics Emacs , dnes se téměř nikde nepoužívá.

Tvorba

Počátkem 60. let MIT zahájilo projekt MAC, který zkoumal využití počítačů v interaktivním režimu a vyvinul vhodné programovací jazyky a operační systémy pro takovou práci. V rámci tohoto projektu byl vyvinut MacLisp (dále jen Maclisp) založený na systému Lisp 1.5. V roce 1964 byla vytvořena první implementace MacLisp pro PDP-6, v roce 1968 pro PDP-10, který fungoval jak pod kontrolou operačního systému ITS, vyvinutého v laboratoři umělé inteligence MIT, tak pod TOPS- 10 / 20 OS - standardní operační systém pro PDP-10/20 od DEC. Byla také vytvořena implementace pro počítač GE-600 s operačním systémem Multics .

Funkce

Maclisp byl na svou dobu extrémně výkonný systém. Jeho vzhled odrážel všechny různorodé úkoly, které byly řešeny v projektu MAC a obecně ve výzkumu umělé inteligence na MIT. Kromě tradičních úloh zpracování znaků byl McLisp použit pro vývoj v celé řadě oblastí. Práce v oblasti robotiky a zpracování řeči a obrazu tedy vyžadovaly od systému vysokou čistě výpočetní efektivitu a vedly také k implementaci široké škály matematických datových typů, včetně vektorů, matic a bitových polí. Systém zahrnoval aritmetické typy a operace s neomezenou přesností (založené na algoritmech vyvinutých D. Knuthem ), které v některých případech umožňují výrazně zjednodušit řešení některých matematických problémů, i když na úkor značných výpočetních nákladů. Byla implementována výkonná knihovna matematických funkcí.

Pokud jde o příspěvek k vývoji samotného jazyka, lze si všimnout čtecích maker a čtecích tabulek, které se objevily v MacLisp, což umožnilo „dokončit“ jazyk a rozšířit jej správným směrem o nové struktury. Do jazyka byly také zahrnuty prostředky pro zpracování výjimek a paralelní zpracování.

Maclisp byl prvním systémem Lisp, pro který byl implementován vysoce účinný kompilátor (předtím se systémy Lisp nemohly pochlubit vysokým výpočetním výkonem a částečně z tohoto důvodu byl Lisp považován za „jazyk pro vědce, nikoli pro průmysl“). Efektivnosti překladu bylo navíc dosaženo použitím specifických metod Lisp: zdrojový program byl přeložen do středně strojově orientované formy, která vypadala jako seznamy Lisp (tzv. LAP - List Assembly Program). Strojový kód v této podobě byl podroben optimalizaci prostřednictvím formálních transformací, v důsledku čehož se výsledný objektový program pro výpočetní úlohy ukázal být zpravidla efektivnější než podobný program Fortran sestavený nejlepšími kompilátory Fortranu pro stejnou platformu.

Provoz systému

Systém MAC Lisp byl využíván a vyvíjen až do 80. let, přičemž měl významný dopad na implementace Lisp, které se objevily v 60. až 80. letech, včetně toho, že se stal jedním ze zdrojů pro návrh standardu Common Lisp . Provoz systému prakticky ustal v 80. letech spolu s ukončením používání počítačů PDP-10/20, na kterých byl původně založen. Hodně přežil systém vyvinutý na Maclisp v rámci projektu MAC , symbolický výpočetní systém Macsyma a textový editor na obrazovce Emacs .

Macsyma a Emacs

Historicky nejznámějšími výsledky projektu MAC jsou symbolický výpočetní systém Macsyma a textový editor na obrazovce Emacs . Macsyma je výkonný symbolický výpočetní systém, ve skutečnosti průkopník v této oblasti počítačových systémů, jeho vývoj probíhal na MIT v letech 1968 až 1982. Systém byl napsán výhradně v MacLisp a byl pravděpodobně největším široce známým programem na světě napsaným výhradně v Lisp. Právě portování Macsymy na jiné hardwarové a softwarové platformy bylo motivem, který způsobil vznik několika dialektů Lisp. Po roce 1982 byl učiněn pokus o komercializaci vývoje, ale v roce 1999 byl vývoj systému ukončen a dodnes se nepoužívá. Existuje fork vyrobený z poslední bezplatné verze v roce 1982, nadále je vyvíjen pod názvem Maxima a je dostupný pod GNU GPL, moderní verze jsou kompilovány pomocí Common Lisp .

Emacs je celoobrazovkový textový editor, který byl součástí vývojového prostředí MacLisp, ale byl používán i samostatně, často pro účely, které neměly nic společného s programováním. Charakteristickým rysem Emacsu je schopnost programovat chování editoru pomocí skriptů v interním jazyce Emacs Lisp . Jádrem editoru je interpret Emacs Lisp a nějaká sada služeb závislých na systému a hlavní část je napsána v samotném Emacs Lisp. Jádro Emacsu bylo původně napsáno v Maclisp; následně, když byl portován na mikropočítače, byl přepsán v C , protože v té době neexistovaly žádné efektivní implementace Lisp pro PC. V průběhu let editor získal mnoho doplňků napsaných v Emacs Lisp, které rozšířily jeho funkčnost do obrovské míry, což se stalo vtipem: "Emacs je skvělý operační systém, kterému chybí pouze slušný textový editor."

Odkazy

http://maclisp.info/ – stránka MacLisp Kenta Pitmana.