NIL (programovací jazyk) - NIL (programming language)

Nula
Paradigmata Multiparadigma : funkční , procedurální
Rodina Lisp
Navrhl Jon L White
Vývojáři Jon L White,
Guy L. Steele Jr. ,
Richard P. Gabriel
Poprvé se objevil 1979 ; Před 41 lety ( 1979 )
Psací disciplína dynamický , silný
Jazyk implementace Sestava VAX
Plošina PDP-6 , PDP-10
OS TOPS-10 , ITS
Ovlivněno
Lisp , Maclisp
Ovlivněno
Společný Lisp , T

Nová implementace LISP ( NIL ) je programovací jazyk , dialekt jazyka Lisp , vyvinutý na Massachusetts Institute of Technology (MIT) v 70. letech a zamýšlený jako nástupce jazyka Maclisp . Jedná se o 32bitovou implementaci a byla zčásti odpovědí na počítač VAX společnosti Digital Equipment Corporation (DEC) . V čele projektu stál Jon L White, jehož cílem bylo zachování kompatibility s MacLispem a zároveň vyřešení mnoha jeho problémů.

Dějiny

Jazyk Lisp vynalezl v roce 1958 John McCarthy, když byl na Massachusetts Institute of Technology (MIT). Od svého vzniku byl Lisp úzce spojen s výzkumnou komunitou umělé inteligence (AI) , zejména na systémech PDP-10 . 36-bitové slovo velikost PDP-6 a PDP-10 byl ovlivněn užitečnosti má dvě Lisp 18-bitové ukazatele v jednom slově: „Projekt PDP-6 zahájena na počátku roku 1963, jako 24-bitové stroje. Pro LISP, designový cíl, vzrostl na 36 bitů. “ Lisp byl použit jako implementace programovacího jazyka Micro Planner, který byl základem slavného systému AI SHRDLU . Lisp, zejména Maclisp (tak pojmenovaný, protože vznikl na projektu MIT MAC), byl také použit k implementaci počítačového algebraického systému Macsyma . V sedmdesátých letech, kdy výzkum AI vytvořil komerční odnože, se výkon existujících systémů Lisp stal rostoucím problémem.

Částečně protože odvozu odpadu (Lisp by používat stop-and-copy odpadky sběr svého jediného haldy pro přidělení paměti ), a částečně proto, že jeho reprezentace vnitřních struktur, Lisp stal se těžký k útoku na paměti omezená stock počítačového hardwaru dne . To vedlo k vytvoření strojů Lisp : vyhrazený hardware pro běh prostředí a programů Lisp. Alternativou bylo použití výkonnějšího komoditního hardwaru, který se stal dostupným, zejména Digital Equipment Corporation (DEC) VAX .

NIL byla implementace Lispu vyvinutého na MIT v polovině až na konci 70. let a měla být moderním nástupcem Maclispu, který byl schopen běžet na základním hardwaru, na rozdíl od Lisp Machine Lisp pro stroje Lisp. „Původně navržen jako první moderní dialekt Lisp na skladovém hardwaru po vývoji stroje Lisp Lisp na MIT, se stal jedním z hlavních vlivů na design Common Lisp.“ (str. 63/294 ze dne) Vzhledem k tomu, že uživatelé programu Macsyma představovali velkou potenciální uživatelskou základnu pro NIL, bylo nutné, aby NIL byl velkým a komplexním systémem a tato rychlost byla nezbytná. Například vysokorychlostní bignum byl požadavek na podporu Macsymy, protože NIL by byla chyba s pomalými bignumy. V důsledku toho NIL skončila s velkou základnou montážního jazyka VAX . Tyto požadavky vedly k velmi agresivní a komplexní strategii optimalizace, která byla předčasně aplikována s negativními výsledky na finálním systému.

Souběžně se snahou napsat NIL zkoumala výzkumná skupina na Stanfordské univerzitě a Národní laboratoři Lawrencea Livermora pod vedením Richarda P. Gabriela design Lispu, který by běžel na superpočítači S-1 Mark IIA , S-1 Lisp . Ten Lisp nebyl nikdy plně funkční, ale byl testovacím zařízením pro implementaci pokročilých metod kompilátoru v Lispu. Nakonec skupiny S-1 a NIL začaly spolupracovat.

Přestože NIL nedokázala splnit své cíle jako použitý jazyk, byla důležitá v několika ohledech. Nejprve spojil Jon L. White, Guy L. Steele Jr. a Richard P. Gabriel, kteří později měli definovat Common Lisp . Zadruhé, Jonathan Rees pracoval na části projektu NIL během roku mimo Yale University . Po návratu na Yale, on byl přijat do počítačové vědy oddělení psát novou Lisp, který se stal optimalizace, nativní kód Scheme systém pojmenovaný T . Částečně NIL počala toto jméno, protože „T není NIL“.

Citáty

Vznik a případné selhání tohoto druhu projektu je vždy jasně viditelné (s odstupem času) v šibenicích raných diskusí. Jedna klíčová tipovací fráze má vždy podobu: „ Vyhodíme všechny staré vozy , začneme znovu a budeme dělat věci správně.“

-  Olin Shivers

Reference

Bibliografie

  • Brent T. Hailpern, Bruce L. Hitson. Manuál architektury S-1. Technical Report 161 (STAN-CS-79-715), Department of Electrical Engineering, Stanford University, January 1979.
  • G. Burke. Úvod do NIL. Laboratory for Computer Science, Massachusetts Institute of Technology, březen 1983.
  • GS Burke, GJ Carrette, CR Eliot. NIL Notes for Release 0.259, Laboratory for Computer Science, Massachusetts Institute of Technology, June 1983.
  • GS Burke, GJ Carrette, CR Eliot. Referenční příručka NIL. Zpráva MIT / LCS / TR-311, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, Massachusetts, 1983.

Doklady

  • Steven Correll. Jednoprocesorová architektura S-1 (sma-4). Svazek I, kapitola 4, Výroční zpráva projektu S-1 1979, Lawrence Livermore Laboratory, Livermore, Kalifornie, 1979.
  • Jon L. White. Nil: Perspektiva. Proceedings of 1979 Macsyma Users 'Conference, Washington, DC, June 1979.
  • Rodney A. Brooks, Richard P. Gabriel, Guy L. Steele Jr. S-1 Common Lisp Implementation. Sborník sympozia ACM z roku 1982 o LISP a funkčním programování, Pittsburgh, 1982, strany 108 - 113. ACM DL
  • Rodney A. Brooks, Richard P. Gabriel, Guy L. Steele Jr. Optimalizační kompilátor pro lexikálně zaměřený LISP. Proceedings of the 1982 Symposium on Compiler Construction, Boston, June 1982, pages 261-275. ACM DL
  • Mark Smotherman. Superpočítač S-1 (1975–1988). Web, naposledy aktualizovaný 24. dubna 2004. http://www.cs.clemson.edu/~mark/s1.html