Lisp maskine

En Lisp-maskine  er en almindelig computermaskine, hvis arkitektur er optimeret til effektiv udførelse af Lisp -programmer .

Svarende til en (abstrakt) Turing-maskine (og en konventionel personlig computer ) ved kriteriet polynomiel reduktion .

Selvom Lisp-maskiner aldrig har været udbredt (ca. 7.000 på verdensplan i 1988), blev mange af de ideer og softwareteknologier, der er almindelige i dag, først udviklet ved hjælp af Lisp-maskiner, såsom dem, der blev brugt i forskningscentret Xerox PARC :

Lisp-maskiner gav rig mulighed for eksperimentel udvikling inden for datalogi . Baseret på udviklingen af ​​sådanne maskiner blev en ny generation af tekniske arbejdsstationer skabt .

Historie

I 1973 begyndte MIT AI laboratorieprogrammører Richard Greenblatt og Thomas Knight arbejdet på, hvad der skulle blive MIT Lisp Machine Project. Det var oprindeligt en computerhardware tilpasset til at udføre nogle af de grundlæggende operationer i Lisp på en 24-bit tag-arkitektur. Det var besværligt at behandle Lisp-programmer programmatisk, da Lisp-variabler skrives på kørselstidspunktet, ikke på kompileringstidspunktet, og på grund af kontroller og forgrening, blot tilføjelse af to variabler kunne tage op til fem minutter på normale computere. Maskinen udførte også sekventiel (kaldet " Arena ") affaldsopsamling . Ved test i Lisp-maskiner blev mere traditionelle metoder også brugt sideløbende - hvis samtidige test mislykkedes, blev resultatet nulstillet og genberegnet; i mange tilfælde betød det acceleration. Denne tilnærmelse er også blevet brugt til test af arraygrænser og andre hukommelseshåndteringsoperationer (ikke nødvendigvis affaldsopsamling eller arrayrelateret) .

Typekontrol blev efterfølgende forbedret og automatiseret, da den traditionelle 32-bit maskinordstørrelse blev øget til 36 bit på Symbolics 3600 Lisp-maskinerne og endda til 40 bit eller mere (normalt blev de ekstra bit brugt til fejlkorrektionskoder). Den første blok af ekstra bits lagrede datatypen (som gjorde arkitekturen tagget), og resten blev brugt til CDR-kodning (når almindelige elementer i en sammenkædet liste blev komprimeret med omkring halvdelen), hvilket forenklede affaldsindsamlingen med en størrelsesorden. En yderligere forbedring var to instruktioner, der understøttede Lisp-funktioner på en særlig måde, hvilket reducerede omkostningerne ved at kalde funktioner til 20 cyklusser (i nogle implementeringer af Symbolics).

Den første maskine, opkaldt efter listebygningsoperatøren i Lisp, var CONS . Den omtales ofte forkert som "Ridderens maskine", muligvis på grund af Knights afhandling om den. Dens forbedrede version - CADR  - er baseret på omtrent samme arkitektur. Omkring 25 CADR- prototyper blev solgt for omkring $ 50.000. Det blev populært blandt entusiastiske udviklere, og mange populære programmer blev hurtigt overført til det (for eksempel Emacs i 1975 ). På MIT Artificial Intelligence Conference i 1978 blev det så godt modtaget, at DARPA finansierede dets udvikling.

På et vist tidspunkt i den eksponentielle vækst af computerkraft ( Moores lov ) gav hardwareunderstøttelse af lambda-regningen ikke længere økonomisk mening for forbrugercomputere, og producenter af Lisp-maskiner forlod markedet.

Links