Лісп-машина: відмінності між версіями
[неперевірена версія] | [неперевірена версія] |
Вилучено вміст Додано вміст
оформлення, стиль |
Немає опису редагування |
||
Рядок 1:
[[Файл:LISP machine.jpg|міні|209x209пкс|машина Найта збереглася в музеї MIT]]
'''Лісп-машина''' є комп'ютером загального призначення,
== Історія ==
Рядок 7:
=== Історичний контекст ===
[[Файл:Symbolics3640 Modified.JPG|міні|310x310пкс|[[Символіка|Symbolics]] 3640 Машина Lisp]]
Комп'ютерні програми зі [[Штучний інтелект|штучного інтелекту]] (ШІ) 1960-х і 1970-х років неминуче вимагали, як вважалося на той час, величезної кількості обчислюваної потужності, яка вимірювалася як у процесорному часі, так і у
=== Початковий розвиток ===
У 1973 році {{Не перекладено|Річард Грінблатт|Річард Грінблатт|en|Richard Greenblatt}} і {{Не перекладено|Томас Найт|Томас Найт|en|Tom Knight (scientist)}}, програмісти {{Не перекладено|Лабораторія штучного інтелекту у Массачусетський технологічний інститут (MIT)|лабораторії штучного інтелекту|en|MIT Computer Science and Artificial Intelligence Laboratory}} (AI Lab) в [[Массачусетський технологічний інститут|Массачусетському технологічному інституті]] (MIT), розпочали те, що стане проектом MIT Lisp Machine, коли вони вперше почали будувати комп'ютер, необхідний для запуску деяких базових операцій Lisp замість того, щоб запускати їх у програмному забезпеченні, у 24-бітній архітектурі з {{Не перекладено|Тегована архітектура|тегованою пам'яттю|en|Tagged architecture}}. Машина також зробила інкрементальну (або ''Arena'') [[Збирання сміття|збірку сміття]]. Більш конкретно, оскільки змінні Lisp типізуються під час виконання, а не під час компіляції, просте додавання двох змінних може
Перевірка типу була додатково вдосконалена й автоматизована, коли звичайне байтове слово у 32-біт було подовжено до 36-бітних для машин Lisp [[Символіка|Symbolics]] 3600-model<ref>[[Місяць, Девід А. "Архітектура символіки 3600"]] . Portal.acm.org. doi : 10.1145 / 327070.327133 . Отримано 12 листопада 2011 року .</ref> і, зрештою, до 40-бітних або більше (зазвичай, для [[Виявлення та виправлення помилок|кодів, що виправляють помилки]] використовувалися надлишкові біти). Першу групу додаткових бітів використовували для зберігання даних типу, роблячи пам'ять машини {{Не перекладено|Тегована пам'ять|тегованою|en|Tagged architecture}}, а інші біти використовували для реалізації {{Не перекладено|CDR кодування|CDR кодування|en|CDR coding}} (в якому звичайні елементи зв'язаного списку стискаються, щоб зайняти приблизно половину простору), допомагаючи у збиранні сміття повідомленням величин. Подальшим поліпшенням були дві інструкції мікрокоду, які спеціально підтримували [[Функція|функції]] Lisp, зменшуючи вартість виклику функції до 20 тактових циклів, в деяких реалізаціях Symbolics.
Першу машину називали машиною CONS (названу на честь оператора будівництва списку <code>[[cons]]</code> в Lisp). Часто його люблять називати ''машиною Найта'', можливо, з того моменту, як {{Нп|Томас Найт|Найт|en|Tom Knight (scientist)}} написав дисертацію на цю тему; вона була надзвичайно добре прийнята. Надалі вона була вдосконалена у версію, яка називається {{Не перекладено|CAR і CDR|CADR|en|CAR and CDR}}, який був заснований на по суті
▲Першу машину називали машиною CONS (названу на честь оператора будівництва списку <code>[[cons]]</code> в Lisp). Часто його люблять називати ''машиною Найта'', можливо, з того моменту, як {{Нп|Томас Найт|Найт|en|Tom Knight (scientist)}} написав дисертацію на цю тему; вона була надзвичайно добре прийнята. Надалі вона була вдосконалена у версію, яка називається {{Не перекладено|CAR і CDR|CADR|en|CAR and CDR}}, який був заснований на по суті тієї ж архітектурі. Близько 25 з того, що було по суті прототипом CADR, було продано в межах і без MIT ~ 50 000 $; він швидко став улюбленою машиною для злому — багато з найбільш прихильних програмних засобів були швидко перенесені на нього (наприклад, [[Emacs]] був перенесений з [[ITunes|ITS]] в 1975 році). Це було так добре сприйнято на конференції ШІ, яка відбулася в МТІ в 1978 році, і «<nowiki/>[[Агентство передових оборонних дослідницьких проектів США|Агентство оборонних наукових проектів]]<nowiki/>» (DARPA) почало фінансувати свій розвиток.
=== Комерціалізація технології MIT Lisp ===
У 1979 році {{Не перекладено|Рассел Нофцкер|Рассел Нофцкер|en|Russell Noftsker}}, переконаний, що машини Lisp
Наступні обговорення вибору поділили лабораторію на дві фракції. У лютому 1979 року
Саме на цьому етапі [[символіка|Symbolics]], підприємство Нофцкера, повільно
Приблизно в цей час почала діяти Symbolics (фірма Нофцкера). Це заважало обіцянню Нофцкера дати
▲Наступні обговорення вибору поділили лабораторію на дві фракції. У лютому 1979 року справи прийшли до моменту коли щось потрібно було вирішувати. Хакери встали на бік Нофцкера, вважаючи, що комерційна фірма, що підтримує комерційні фонди, має більше шансів вижити й комерціалізувати машини Лісп, ніж запропонований самостійним стартапом Greenblatt. Greenblatt програв битву.
▲Саме на цьому етапі [[символіка|Symbolics]], підприємство Нофцкера, повільно зібралася. Хоча Нофцкер платив своїм співробітникам заробітну плату, нього не було будівлі або будь-якого обладнання для роботи хакерів. Він торгувався з [[Патрік Вінстон|Патріком Вінстоном]], що, в обмін на те, щоб дозволити працівникам Symbolics продовжувати працювати у MIT, Symbolics дозволить MIT використовувати внутрішньо і вільно всі розроблені Symbolics програми. Консультант з [[Control Data Corporation|CDC]], який намагався зібрати комп'ютерну програму для природної мови з групою програмістів із Західного узбережжя, прийшов у Грінблат, шукаючи машину Lisp, з якою працювала його група, приблизно через вісім місяців після катастрофічної конференції з Нофцкером. Greenblatt вирішив розпочати власну фірму конкурента Lisp, але він нічого не зробив. Консультант, Олександр Джейкобсон, вирішив, що єдиний спосіб, як Greenblatt збирається запустити фірму і побудувати машину Lisp, яку Джейкобсон відчайдушно потребував, — це, якщо Якобсон підштовхнув і допоміг Greenblatt запустити фірму. Якобсон зібрав бізнес-плани, дошку, партнера для Greenblatt (один Ф. Стівен Вайл). Нова фірма отримала назву ''LISP Machine, Inc.'' (LMI) і фінансувалася за допомогою замовлень CDC через Джейкобсон.
▲Приблизно в цей час почала діяти Symbolics (фірма Нофцкера). Це заважало обіцянню Нофцкера дати Грінблату фору у розмірі одного року, а також серйозними затримками у залученні венчурного капіталу. Symbolics все ще мала головну перевагу, коли 3 або 4 хакери AI Lab перейшли на роботу в Greenblatt, 14 інших хакерів підписали на Symbolics. Два працівники лабораторії ШІ не були найняті ні: [[Річард Столмен|Річард Столлман]] і [[Марвін Мінскі|Марвін Мінск]]<nowiki/>і. Столлман, однак, звинувачував Symbolics в занепаді хакерської спільноти, яка була зосереджена навколо лабораторії ШІ. Протягом двох років, з 1982 по кінець 1983 року, Столлман сам працював, щоб клонувати дії програмістів Symbolics, з метою запобігти їхній монополії на комп'ютери лабораторії.<ref>Леві, S: ''Хакери'' . Пінгвін США, 1984</ref>
Всупереч цьому, після серії внутрішніх битв, Symbolics стартувало у 1980/1981, продаючи CADR як LM-2, в той час як {{Не перекладено|Lisp Machines|Lisp Machines|en|Lisp Machines}}, Inc. продала його як LMI-CADR. Symbolics не мала наміру виробляти багато LM-2, оскільки 3600
Symbolics продовжувала розвивати сімейство 3600 і її операційну систему, {{Не перекладено|Genera (операційна система)|Genera|en|Genera (operating system)}}, і виробляла
Ці машини мали апаратну підтримку для різних примітивних операцій Lisp (тестування типів даних, {{Нп|CDR кодування|CDR кодування|en|CDR coding}}), а також
Лісп-машини, отримані від MIT, керувалися діалектом [[Lisp|Lisp з]] іменем {{Не перекладено|Lisp Machine Lisp|Lisp Machine Lisp|en|Lisp Machine Lisp}}, що походить від {{Не перекладено|Maclisp|Maclisp|en|Maclisp}} MIT. Операційні системи були написані з нуля в Lisp, часто використовуючи об'єктно-орієнтовані розширення. Пізніше ці машини Lisp також підтримували різні версії [[Common Lisp]] (зі {{Не перекладено|Flavors (мова програмування)|Flavors|en|Flavors (programming language)}}, {{Не перекладено|Flavors (мова програмування)|New Flavors|en|Flavors (programming language)}} та {{Не перекладено|Common Lisp Object System|Common Lisp Object System|en|Common Lisp Object System}}(CLOS)).
=== Interlisp, BBN і Xerox ===
{{Не перекладено|Bolt, Beranek and Newman|Bolt, Beranek and Newman|en|Bolt, Beranek and Newman}}(BBN) розробили власну машину Lisp, названу Jericho,<ref>[["Обчислювальні засоби для штучного інтелекту: огляд існуючих та найближчих варіантів"]]. ''Журнал ШІ''. '''2''' (1). 1981.</ref> яка керувала версією {{Не перекладено|Interlisp|Interlisp|en|Interlisp}}.
Xerox також працював на машині Lisp, заснованої на [[RISC|скороченні обчислень набору команд]] (RISC), використовуючи процесор Xerox Common Lisp Processor і планував вивести його на ринок у 1987 році,<ref>[["Конференція AAAI-86: нові напрямки для комерційного штучного інтелекту, реалізація машин VLSSLIS з машиною"]]. ''Журнал ШІ'' . '''8''' (1). 1987.</ref> що не відбулося.
=== Машини інтегрованого висновку ===
У середині 1980-х років Інтегровані
=== Розробки машин Lisp за межами США ===
У 1984—1985 роках британська фірма «Racal-Norsk», спільна дочірня компанія {{Нп|Racal|Racal|en|Racal}} і {{Нп|Norsk Data|Norsk Data|en|Norsk Data}}, спробувала перепрофілювати
Було кілька спроб японських виробників вийти на ринок машин Lisp: спільний процесор [[Fujitsu]] [[Facom-alpha]]<ref>[["Facom Alpha"]]. ''Музей комп'ютерів''. IPSJ. Отримано 12 листопада 2011 року.</ref>, процесор NTT Elis,<ref>[["NTT ELIS"]]. ''Музей комп'ютерів''. IPSJ. 9 вересня 1983 року . Отримано 12 листопада2011 року .</ref><ref>[["32-розрядний процесор LISP для робочої станції Al ELIS з мовою парадигми декількох програм, TAO"]]. NII. 25 серпня 1990 року . Отримано 12 листопада 2011 року .</ref> процесор AI Toshiba (AIP)<ref>«Архітектура чипу процесора AI (IP1704)». NII. 25 серпня 1990 року. Отримано 12 листопада 2011 року.</ref> і NEC LIME.<ref>[["Машина NEC LIME Lisp"]]. ''Музей комп'ютерів''. IPSJ. Отримано 12 листопада 2011 року.</ref> Кілька наукових досліджень університету дали робочі прототипи, серед яких TAKITAC-7 університету Кобе,<ref>[["Машина університету Кобе"]]. ''Музей комп'ютерів''. IPSJ. 10 лютого 1979 року . Отримано 12 листопада 2011 року.</ref> FLATS RIKEN,<ref>[["Комп'ютерний обчислювальний комплекс RIKEN FLATS".]] ''Музей комп'ютерів''. IPSJ . Отримано 12 листопада 2011 року.</ref> і EVLIS університету в Осаці.<ref>[["Машина EVLIS"]]. ''Музей комп'ютерів''. IPSJ. Отримано 12 листопада 2011 року .</ref>
Рядок 52 ⟶ 55:
=== Кінець машин Lisp ===
З настанням ''[[Зима штучного інтелекту|зими АІ]]'' й ранніми початками {{Не перекладено|Історія персональних комп'ютерів|революції мікрокомп'ютера|en|History of personal computers}}, які
=== Спадщина ===
Було зроблено кілька спроб написання емуляторів з відкритим кодом для різних машин Lisp: Емуляція CADR,<ref>[["Емуляція CADR"]] . Unlambda . Отримано 12 листопада 2011 року .</ref> Symbolics L Емуляція машини Lisp,<ref>[["Символіка емуляції машини Lisp"]] . Unlambda. 28 травня 2004 року . Отримано 12 листопада 2011 року .</ref> Проект E3 (Емуляція TI Explorer II),<ref>[["Проект E3, емуляція TI Explorer II" .]] Unlambda . Отримано 12 листопада 2011 року .</ref> Meroko (TI Explorer I),<ref>[["Емулятор Meroko (TI Explorer I)"]] . Unlambda . Отримано 12 листопада 2011 року .</ref> і Невермор (ТІ Експлорер I).<ref>[http://www.unlambda.com/lisp/nevermore.page «Nevermore Emulator (TI Explorer I)»]. Unlambda. Отримано 12 листопада 2011 року .</ref> На 3 жовтня 2005 року MIT випустила вихідний код CADR Lisp Machine, як
У вересні 2014 року Олександр Бургер, розробник {{Не перекладено|PicoLisp|PicoLisp|en|PicoLisp}}, оголосив PilMCU, як реалізацію PicoLisp в апаратному забезпеченні.<ref>[https://www.mail-archive.com/picolisp@software-lab.de/msg04823.html «Анонс: PicoLisp в апаратному забезпеченні (PilMCU)» .]</ref>
Архів документів PDF у Бітвери<ref>[http://www.bitsavers.org/ «Архів документів PDF»] . Бітварів . Отримано 12 листопада 2011 року .</ref> містить PDF-версії великої документації для машин Symbolics Lisp,<ref>"[[Символіка документації"]] . Бітварів . Отримано 12 листопада 2011 року </ref> TI Explorer<ref>[["Документація TI Explorer"]]. Бітварів. 15 травня 2003 року . Отримано 12 листопада 2011 року .</ref> та MicroExplorer<ref>[["Документація TI MicroExplorer"]]. Бітварів. 9 вересня 2003 року. Отримано 12 листопада 2011 року .</ref> Машини Lisp і машини Xerox Interlisp-D Lisp.<ref>[["Документація Xerox Interlisp"]]. Бітварів. 24 березня 2004 року. Отримано 12 листопада 2011 року .</ref>
=== Програми ===
Домени, що використовують машини Lisp, були в основному в
Основні комерційні експертні системи 80-х років, які були доступні: середовище інженерних знань Intellicorp (KEE), знання Craft, від Carnegie Group Inc., та ART (Automated Reasoning Tool) від корпорації Inference.<ref>Ріхтер, Марк: ''Інструменти та методики ІІ'' . Ablex Publishing Corporation США, 1988, Розділ 3, Оцінка інструментів розробки експертної системи</ref>
== Технічний огляд ==
Спочатку машини Lisp були розроблені як особисті робочі станції для розробки програмного забезпечення в Lisp. Вони використовувалися однією людиною і не пропонували
Процесор не запускав Lisp безпосередньо, а був {{Не перекладено|Стек машина|стек машиною|en|Stack machine}} з інструкціями, оптимізованими для компіляції Lisp. Перші машини Lisp використовували мікрокод для забезпечення набору команд. Для декількох операцій перевірка типів і диспетчеризація виконувалася в апаратному режимі під час виконання. Наприклад, можна використовувати тільки одну операцію додавання з різними числовими типами (цілочисельні, плаваючі, раціональні та комплексні числа). Результатом було дуже компактне складання представлення коду Lisp.
Рядок 96 ⟶ 99:
17 SET-SP-TO-ADDRESS SP|-2
20 RETURN-SINGLE-STACK
</syntaxhighlight>Операційна система використовувала [[Віртуальна пам'ять|віртуальну пам'ять]] для забезпечення великого адресного простору. Управління пам'яттю здійснювалося зі збором сміття. Весь код має спільний простір
Все програмне забезпечення операційної системи було написано в Lisp. Xerox використовував Interlisp. Symbolics, LMI й TI використовували Lisp Machine Lisp (нащадок MacLisp). З появою Common Lisp, Common Lisp підтримувався на машинах Lisp, а деякі системні програми були перенесені на Common Lisp або пізніше написані в Common Lisp.
Деякі пізніші машини Lisp (такі як TI MicroExplorer, Symbolics MacIvory або Symbolics UX400 / 1200)
Деякі машини Lisp, такі як Symbolics XL1200, мали широкі графічні можливості з використанням спеціальних графічних плат. Ці машини використовувалися в таких областях,
== Див. також ==
|