Відмінності між версіями «Лісп-машина»

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[неперевірена версія][неперевірена версія]
(Правки первых двух абзацев.)
Рядок 1: Рядок 1:
 
{{автопереклад}}
 
{{автопереклад}}
[[Файл:LISP machine.jpg|міні|209x209пкс|Лицарська машина збереглася в музеї MIT]]
+
[[Файл:LISP machine.jpg|міні|209x209пкс|машина Найтазбереглася в музеї MIT]]
   
 
'''Машини Lisp''' є комп'ютерами загального призначення, призначеними для ефективного запуску [[Lisp]] як основного програмного забезпечення та [[Мова програмування|мови програмування]], зазвичай за допомогою апаратної підтримки. Вони є прикладом {{Нп|комп'ютерна архітектура мови високого рівня|комп'ютерної архітектури мови високого рівня|en| High-level language computer architecture}}, і в певному сенсі вони були першими комерційними однокористувацькими [[Робоча станція|робочими станціями]]. Попри те, що їх число було скромним (аж у 1988 році<ref>Newquist, HP. ''Brain Makers'' , Sams Publishing, 1994. [[ISBN  0-672-30412-0 .]]</ref>), машини Lisp комерційно стали піонерами багатьох сучасних технологій, включаючи ефективну [[Збирання сміття|збірку сміття]], [[Лазерний принтер|лазерний друк]], {{Не перекладено|віконний інтерфейс|віконні інтерфейси|en|Windowing system}}, [[Комп'ютерна миша|комп'ютерні миші]], [[Растрова графіка|растрову графіку]] з високою роздільною здатністю, рендеринг комп'ютерної графіки та мережеві інновації, такі як {{Не перекладено|Chaosnet|Chaosnet|en|Chaosnet}}. Кілька фірм, побудованих і проданих лісп-машин у 1980: {{Не перекладено|Symbolics|Symbolics|en|Symbolics}}(3600 3640, XL1200, MacIvory і інші моделі), Lisp MachinesIncorporated (LMI Lambda), [[Texas Instruments]] ({{Не перекладено|TI провідник|TI провідник і MicroExplorer|en|TI Explorer}}) і [[Xerox]] (робочі станції базовані на {{Не перекладено|Interlisp|Interlisp-D|en|Interlisp}}). Операційні системи були написані на {{Не перекладено|Lisp Machine Lisp|Lisp Machine Lisp|en|Lisp Machine Lisp}}, Interlisp (Xerox), а пізніше частково на [[Common Lisp]].
 
'''Машини Lisp''' є комп'ютерами загального призначення, призначеними для ефективного запуску [[Lisp]] як основного програмного забезпечення та [[Мова програмування|мови програмування]], зазвичай за допомогою апаратної підтримки. Вони є прикладом {{Нп|комп'ютерна архітектура мови високого рівня|комп'ютерної архітектури мови високого рівня|en| High-level language computer architecture}}, і в певному сенсі вони були першими комерційними однокористувацькими [[Робоча станція|робочими станціями]]. Попри те, що їх число було скромним (аж у 1988 році<ref>Newquist, HP. ''Brain Makers'' , Sams Publishing, 1994. [[ISBN  0-672-30412-0 .]]</ref>), машини Lisp комерційно стали піонерами багатьох сучасних технологій, включаючи ефективну [[Збирання сміття|збірку сміття]], [[Лазерний принтер|лазерний друк]], {{Не перекладено|віконний інтерфейс|віконні інтерфейси|en|Windowing system}}, [[Комп'ютерна миша|комп'ютерні миші]], [[Растрова графіка|растрову графіку]] з високою роздільною здатністю, рендеринг комп'ютерної графіки та мережеві інновації, такі як {{Не перекладено|Chaosnet|Chaosnet|en|Chaosnet}}. Кілька фірм, побудованих і проданих лісп-машин у 1980: {{Не перекладено|Symbolics|Symbolics|en|Symbolics}}(3600 3640, XL1200, MacIvory і інші моделі), Lisp MachinesIncorporated (LMI Lambda), [[Texas Instruments]] ({{Не перекладено|TI провідник|TI провідник і MicroExplorer|en|TI Explorer}}) і [[Xerox]] (робочі станції базовані на {{Не перекладено|Interlisp|Interlisp-D|en|Interlisp}}). Операційні системи були написані на {{Не перекладено|Lisp Machine Lisp|Lisp Machine Lisp|en|Lisp Machine Lisp}}, Interlisp (Xerox), а пізніше частково на [[Common Lisp]].
Рядок 7: Рядок 7:
   
 
=== Історичний контекст ===
 
=== Історичний контекст ===
[[Файл:Symbolics3640 Modified.JPG|міні|310x310пкс|Символіка 3640 Машина Lisp]]
+
[[Файл:Symbolics3640 Modified.JPG|міні|310x310пкс|[[Символіка|Symbolics]] 3640 Машина Lisp]]
 
Комп'ютерні програми зі [[Штучний інтелект|штучного інтелекту]] (AI) 1960-х і 1970-х років неминуче вимагали того, що тоді вважалося величезною кількістю комп'ютерної потужності, як у процесорному часі так і у розмірах пам'яті. Вимоги до потужності досліджень AI були посилені мовою програмування Lisp, яка використовувала символи, коли комерційне обладнання було розроблено та оптимізовано для мов програмування, подібних до [[Асемблер|''assembler'']] та [[FORTRAN|Fortran]]. Спершу вартість такої комп'ютерної техніки означала, що вона повинна бути розділена між багатьма користувачами. Оскільки технологія [[Інтегральна схема|інтегральних схем]] скоротила розмір і вартість комп'ютерів у 1960-х і на початку 1970-х років, а потреби в пам'яті програм AI стали перевищувати [[адресний простір]] найпоширенішого дослідницького комп'ютера, [[PDP-10|DEC PDP-10]], дослідники розглянули новий підхід: комп'ютер, розроблений спеціально для розробки й запуску великих програм [[Штучний інтелект|штучного інтелекту]], пристосованих до семантики [[Lisp|мови Lisp]]. Щоб зберегти [[Операційна система|операційну систему]] (відносно) простою, ці машини не будуть спільними, але будуть присвячені окремим користувачам.
 
Комп'ютерні програми зі [[Штучний інтелект|штучного інтелекту]] (AI) 1960-х і 1970-х років неминуче вимагали того, що тоді вважалося величезною кількістю комп'ютерної потужності, як у процесорному часі так і у розмірах пам'яті. Вимоги до потужності досліджень AI були посилені мовою програмування Lisp, яка використовувала символи, коли комерційне обладнання було розроблено та оптимізовано для мов програмування, подібних до [[Асемблер|''assembler'']] та [[FORTRAN|Fortran]]. Спершу вартість такої комп'ютерної техніки означала, що вона повинна бути розділена між багатьма користувачами. Оскільки технологія [[Інтегральна схема|інтегральних схем]] скоротила розмір і вартість комп'ютерів у 1960-х і на початку 1970-х років, а потреби в пам'яті програм AI стали перевищувати [[адресний простір]] найпоширенішого дослідницького комп'ютера, [[PDP-10|DEC PDP-10]], дослідники розглянули новий підхід: комп'ютер, розроблений спеціально для розробки й запуску великих програм [[Штучний інтелект|штучного інтелекту]], пристосованих до семантики [[Lisp|мови Lisp]]. Щоб зберегти [[Операційна система|операційну систему]] (відносно) простою, ці машини не будуть спільними, але будуть присвячені окремим користувачам.
   
 
=== Початковий розвиток ===
 
=== Початковий розвиток ===
У 1973 році [[Річард Грінблатт]] і [[Томас Найт]], програмісти [[Лабораторія штучного інтелекту|лабораторії штучного інтелекту]] в [[MIT|Массачусетському технологічному інституті]] (MIT), розпочали те, що стало б проектом MIT Lisp Machine, коли вони вперше почали будувати комп'ютер, необхідний для запуску деяких базових операцій Lisp замість того, щоб запускати їх у програмному забезпеченні, у 24-бітній [[Архітектура з тегами|архітектурі з тегами]]. Машина також зробила інкрементальну (або ''арену'') [[Збирання сміття|збірку сміття]]. Більш конкретно, оскільки змінні типу Lisp надруковані під час виконання, а не під час компіляції, просте додавання двох змінних може займати п'ять разів довше на звичайних апаратних засобах, завдяки інструкціям тестування та розгалуження. Машини Lisp провели тести паралельно з більш звичайними доповненнями однієї інструкції. Якщо одночасні тести провалилися, то результат був відкинутий і перерахований; це в багатьох випадках означало збільшення швидкості за кількома факторами. Цей підхід одночасної перевірки був використаний також для тестування меж масивів, на які посилаються, та інших потреб управління пам'яттю (а не просто збору сміття або масивів).
+
У 1973 році {{Не перекладено|Річард Грінблатт|Річард Грінблатт|en|Richard Greenblatt}} і {{Не перекладено|Томас Найт|Томас Найт|en|Tom Knight (scientist)}}, програмісти {{Не перекладено|Лабораторія штучного інтелекту у Массачусетський технологічний інститут (MIT)|лабораторії штучного інтелекту|en|MIT Computer Science and Artificial Intelligence Laboratory}}(AI Lab) в [[MIT|Массачусетському технологічному інституті]] (MIT), розпочали те, що стане проектом MIT Lisp Machine, коли вони вперше почали будувати комп'ютер, необхідний для запуску деяких базових операцій Lisp замість того, щоб запускати їх у програмному забезпеченні, у 24-бітній архітектурі з {{Не перекладено|Тегована пам'ять|тегованою пам'яттю|en|Tagged architecture}}. Машина також зробила інкрементальну (або ''Arena'') [[Збирання сміття|збірку сміття]]. Більш конкретно, оскільки змінні Lisp типізуються під час виконання, а не під час компіляції, просте додавання двох змінних може займати до п'ять разів довше на звичайних апаратних засобах, завдяки інструкціям тестування та розгалуження. Машини Lisp провели тести паралельно з більш звичайними доповненнями однієї інструкції. Якщо одночасні тести провалилися, то результат був відкинутий і перерахований; це в багатьох випадках означало збільшення швидкості за кількома факторами. Цей підхід одночасної перевірки був використаний також для тестування меж масивів, на які посилаються, та інших потреб управління пам'яттю (а не просто збору сміття або масивів).
   
Перевірка типу була додатково вдосконалена й автоматизована, коли звичайне байтове слово 32-біт було подовжено до 36-бітних для машин Lisp [[Символіка|Symbolics]] 3600-model<ref>[[Місяць, Девід А. "Архітектура символіки 3600"]] . Portal.acm.org. doi : 10.1145 / 327070.327133 . Отримано 12 листопада 2011 року .</ref> і, зрештою, до 40-бітних або більше (зазвичай, надлишкові біти не враховуються для [[кодів, що виправляють помилки,]] використовувалося наступне. Першу групу додаткових бітів використовували для утримання даних типу, роблячи машину [[Архітектура з тегами|архітектурою з тегами]], а інші біти використовували для реалізації [[кодування CDR]] (в якому звичайні елементи зв'язаного списку стискаються, щоб зайняти приблизно половину простору), допомагаючи збору сміття за повідомленнями на порядок. Подальшим поліпшенням були дві інструкції мікрокоду, які спеціально підтримували [[Функція|функції]] Lisp, зменшуючи вартість виклику функції до 20 тактових циклів, в деяких реалізаціях Symbolics.
+
Перевірка типу була додатково вдосконалена й автоматизована, коли звичайне байтове слово 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). Часто його люблять називати ''машиною лицаря'', можливо, з того моменту, як [[Найт]] написав дисертацію на цю тему; вона була надзвичайно добре прийнята. Надалі вона була вдосконалена у версію, яка називається CADR (каламбур; у Lisp <code>[[cadr]]</code>функція, яка повертає другий елемент списку, вимовляється /əɹkeɪ.dəɹ/ або /ˈkɑ.dəɹ/, як деякі вимовляють слово «кадр»), який був заснований на по суті тієї ж архітектурі. Близько 25 з того, що було по суті прототипом CADR, було продано в межах і без MIT ~ 50 000 $; він швидко став улюбленою машиною для злому&nbsp;— багато з найбільш прихильних програмних засобів були швидко перенесені на нього (наприклад, [[Emacs]] був перенесений з [[ITunes|ITS]] в 1975 році). Це було так добре сприйнято на конференції AI, яка відбулася в МТІ в 1978 році, і [[Агентство передових оборонних дослідницьких проектів США|Агентство оборонних наукових проектів]] (DARPA) почало фінансувати свій розвиток.
+
Першу машину називали машиною CONS (названу на честь оператора будівництва списку <code>[[cons]]</code> в Lisp). Часто його люблять називати ''машиною Найта'', можливо, з того моменту, як {{Нп|Томас Найт|Найт|en|Tom Knight (scientist)}} написав дисертацію на цю тему; вона була надзвичайно добре прийнята. Надалі вона була вдосконалена у версію, яка називається {{Не перекладено|CAR і CDR|CADR|en|CAR and CDR}}, який був заснований на по суті тієї ж архітектурі. Близько 25 з того, що було по суті прототипом CADR, було продано в межах і без MIT ~ 50 000 $; він швидко став улюбленою машиною для злому&nbsp;— багато з найбільш прихильних програмних засобів були швидко перенесені на нього (наприклад, [[Emacs]] був перенесений з [[ITunes|ITS]] в 1975 році). Це було так добре сприйнято на конференції AI, яка відбулася в МТІ в 1978 році, і [[Агентство передових оборонних дослідницьких проектів США|Агентство оборонних наукових проектів]] (DARPA) почало фінансувати свій розвиток.
   
 
=== Комерціалізація технології MIT Lisp ===
 
=== Комерціалізація технології MIT Lisp ===

Версія за 11:15, 12 травня 2019

машина Найтазбереглася в музеї MIT

Машини Lisp є комп'ютерами загального призначення, призначеними для ефективного запуску Lisp як основного програмного забезпечення та мови програмування, зазвичай за допомогою апаратної підтримки. Вони є прикладом комп'ютерної архітектури мови високого рівня[en], і в певному сенсі вони були першими комерційними однокористувацькими робочими станціями. Попри те, що їх число було скромним (аж у 1988 році[1]), машини Lisp комерційно стали піонерами багатьох сучасних технологій, включаючи ефективну збірку сміття, лазерний друк, віконні інтерфейси[en], комп'ютерні миші, растрову графіку з високою роздільною здатністю, рендеринг комп'ютерної графіки та мережеві інновації, такі як Chaosnet[en]. Кілька фірм, побудованих і проданих лісп-машин у 1980: Symbolics[en](3600 3640, XL1200, MacIvory і інші моделі), Lisp MachinesIncorporated (LMI Lambda), Texas Instruments (TI провідник і MicroExplorer[en]) і Xerox (робочі станції базовані на Interlisp-D[en]). Операційні системи були написані на Lisp Machine Lisp[en], Interlisp (Xerox), а пізніше частково на Common Lisp.

Історія

Історичний контекст

Symbolics 3640 Машина Lisp

Комп'ютерні програми зі штучного інтелекту (AI) 1960-х і 1970-х років неминуче вимагали того, що тоді вважалося величезною кількістю комп'ютерної потужності, як у процесорному часі так і у розмірах пам'яті. Вимоги до потужності досліджень AI були посилені мовою програмування Lisp, яка використовувала символи, коли комерційне обладнання було розроблено та оптимізовано для мов програмування, подібних до assembler та Fortran. Спершу вартість такої комп'ютерної техніки означала, що вона повинна бути розділена між багатьма користувачами. Оскільки технологія інтегральних схем скоротила розмір і вартість комп'ютерів у 1960-х і на початку 1970-х років, а потреби в пам'яті програм AI стали перевищувати адресний простір найпоширенішого дослідницького комп'ютера, DEC PDP-10, дослідники розглянули новий підхід: комп'ютер, розроблений спеціально для розробки й запуску великих програм штучного інтелекту, пристосованих до семантики мови Lisp. Щоб зберегти операційну систему (відносно) простою, ці машини не будуть спільними, але будуть присвячені окремим користувачам.

Початковий розвиток

У 1973 році Річард Грінблатт[en] і Томас Найт[en], програмісти лабораторії штучного інтелекту[en](AI Lab) в Массачусетському технологічному інституті (MIT), розпочали те, що стане проектом MIT Lisp Machine, коли вони вперше почали будувати комп'ютер, необхідний для запуску деяких базових операцій Lisp замість того, щоб запускати їх у програмному забезпеченні, у 24-бітній архітектурі з тегованою пам'яттю[en]. Машина також зробила інкрементальну (або Arena) збірку сміття. Більш конкретно, оскільки змінні Lisp типізуються під час виконання, а не під час компіляції, просте додавання двох змінних може займати до п'ять разів довше на звичайних апаратних засобах, завдяки інструкціям тестування та розгалуження. Машини Lisp провели тести паралельно з більш звичайними доповненнями однієї інструкції. Якщо одночасні тести провалилися, то результат був відкинутий і перерахований; це в багатьох випадках означало збільшення швидкості за кількома факторами. Цей підхід одночасної перевірки був використаний також для тестування меж масивів, на які посилаються, та інших потреб управління пам'яттю (а не просто збору сміття або масивів).

Перевірка типу була додатково вдосконалена й автоматизована, коли звичайне байтове слово 32-біт було подовжено до 36-бітних для машин Lisp Symbolics 3600-model[2] і, зрештою, до 40-бітних або більше (зазвичай, для кодів, що виправляють помилки використовувалися надлишкові біти). Першу групу додаткових бітів використовували для зберігання даних типу, роблячи пам'ять машини [[Архітектура з тегами|тегованою[en]]], а інші біти використовували для реалізації CDR кодування[en] (в якому звичайні елементи зв'язаного списку стискаються, щоб зайняти приблизно половину простору), допомагаючи у збиранні сміття повідомленням величин. Подальшим поліпшенням були дві інструкції мікрокоду, які спеціально підтримували функції Lisp, зменшуючи вартість виклику функції до 20 тактових циклів, в деяких реалізаціях Symbolics.

Першу машину називали машиною CONS (названу на честь оператора будівництва списку cons в Lisp). Часто його люблять називати машиною Найта, можливо, з того моменту, як Найт[en] написав дисертацію на цю тему; вона була надзвичайно добре прийнята. Надалі вона була вдосконалена у версію, яка називається CADR[en], який був заснований на по суті тієї ж архітектурі. Близько 25 з того, що було по суті прототипом CADR, було продано в межах і без MIT ~ 50 000 $; він швидко став улюбленою машиною для злому — багато з найбільш прихильних програмних засобів були швидко перенесені на нього (наприклад, Emacs був перенесений з ITS в 1975 році). Це було так добре сприйнято на конференції AI, яка відбулася в МТІ в 1978 році, і Агентство оборонних наукових проектів (DARPA) почало фінансувати свій розвиток.

Комерціалізація технології MIT Lisp

У 1979 році Рассел Нофцкер, переконаний, що машини Lisp мали яскраве комерційне майбутнє завдяки силі мови Lisp і фактору апаратного прискорення, запропонували Greenblatt, що вони комерціалізують технологію. У боротьбі з інтуїтивним хакером AI Lab Greenblatt погодився, сподіваючись, що він зможе відтворити неформальну і продуктивну атмосферу лабораторії в реальному бізнесі. Ці ідеї та цілі значно відрізнялися від ідей Нофцкера. Обидва вони обговорювалися довго, але ніхто не міг би йти на компроміс. Оскільки запропонована фірма могла домогтися успіху лише за допомогою повної і неподільної допомоги хакерів AI Lab як групи, Noftsker і Greenblatt вирішили, що доля підприємства залежить від них, і тому вибір повинен бути залишений хакерам.

Наступні обговорення вибору поділили лабораторію на дві фракції. У лютому 1979 року справи прийшли до голови. Хакери встали на бік Нофцкера, вважаючи, що комерційна фірма, що підтримує комерційні фонди, має більше шансів вижити й комерціалізувати машини Лісп, ніж запропонований самостійним стартапом Greenblatt. Greenblatt програв битву.

Саме на цьому етапі символіка, підприємство Нофцкера, повільно зібралася. Хоча Нофцкер платив своїм співробітникам заробітну плату, у нього не було будівлі або будь-якого обладнання для роботи хакерів. Він торгувався з Патріком Уінстоном, що, в обмін на те, щоб дозволити працівникам Symbolics продовжувати працювати над MIT, Symbolics дозволить MIT використовувати внутрішньо і вільно всі розроблені програмні символи. Консультант з CDC, який намагався зібрати комп'ютерну програму для природної мови з групою програмістів із Західного узбережжя, прийшов у Грінблат, шукаючи машину Lisp, з якою працювала його група, приблизно через вісім місяців після катастрофічної конференції з Нофцкером. Greenblatt вирішив розпочати власну фірму конкурента Lisp, але він нічого не зробив. Консультант, Олександр Джейкобсон, вирішив, що єдиний спосіб, як Greenblatt збирається запустити фірму і побудувати машину Lisp, яку Джейкобсон відчайдушно потребував, — це, якщо Якобсон підштовхнув і допоміг Greenblatt запустити фірму. Якобсон зібрав бізнес-плани, дошку, партнера для Greenblatt (один Ф. Стівен Вайл). Нова фірма отримала назву LISP Machine, Inc. (LMI) і фінансувалася за допомогою замовлень CDC через Джейкобсон.

Приблизно в цей час почала діяти Символіка (фірма Нофцкера). Це заважало обіцянню Нофцкера дати Грінблатт на початку року, а також серйозними затримками у залученні венчурного капіталу. Символіка все ще мала головну перевагу, коли 3 або 4 хакери AI Lab перейшли на роботу в Greenblatt, 14 інших хакерів підписали на Symbolics. Два працівники лабораторії AI не були найняті ні: Річард Столлман і Марвін Мінскі. Столлман, однак, звинувачував символіку в занепаді хакерської спільноти, яка була зосереджена навколо лабораторії AI. Протягом двох років, з 1982 по кінець 1983 року, Столлман сам працював, щоб клонувати випуск програмістів Symbolics, з метою запобігти їхній монополії на комп'ютери лабораторії.[3]


Наперекір це, після серії внутрішніх битв, Symbolics вийшли на землю в 1980/1981, продаючи CADR як LM-2, в той час як Lisp Machines, Inc. продала його як LMI-CADR. Символіка не мала наміру виробляти багато LM-2, оскільки 3600 сімейств машин Lisp повинна була поставлятися швидко, але 3600-х років неодноразово затримувалася, і Symbolics закінчувалося виробництвом ~ 100 LM-2, кожен з яких продавався за $ 70,000. Обидві фірми розробили продукти другого покоління на основі CADR: Symbolics 3600 і LMI-LAMBDA (з яких LMI вдалося продати ~ 200). 3600, що поставляється через рік пізніше, розширений на CADR, розширюючи машинне слово на 36-біт, розширюючи адресний простір до 28-біт, [4]і додавання апаратних засобів для прискорення деяких загальних функцій, які були реалізовані в мікрокоді на CADR. LMI-LAMBDA, який вийшов через рік після 3600 у 1983 році, був сумісний з CADR (він міг працювати з мікрокодом CADR), але існували відмінності в обладнанні. Texas Instruments (TI) приєднався до боротьби, коли він ліцензував дизайн LMI-LAMBDA і виготовив свій власний варіант TI Explorer. Деякі LMI-LAMBDA та TI Explorer були подвійними системами як з процесором Lisp, так і з Unix. TI також розробив 32-бітну мікропроцесорну версію свого процесора Lisp для TI Explorer. Цей чіп Lisp також був використаний для MicroExplorer — плати NuBus для Apple Macintosh II (NuBus спочатку розроблявся в MIT для використання в машинах Lisp).

Символіка продовжувала розвивати сімейство 3600 і її операційну систему, Genera, і виробляла слонову кішку, VLSI реалізацію архітектури Symbolics. З 1987 року було розроблено декілька машин на основі процесора Ivory: плати для Suns і Mac, автономні робочі станції й навіть вбудовані системи (I-Machine Custom LSI, 32-розрядна адреса, Symbolics XL-400, UX-400, MacIvory II). у 1989 р. доступними були платформи Symbolics XL-1200, MacIvory III, UX-1200, Zora, NXP1000 «Коробка для піци»). Texas Instruments скоротив Explorer в кремній, як MicroExplorer, який був запропонований як картка для Apple Mac II. LMI відмовився від архітектури CADR і розробив власний K-Machine, [5]але LMI збанкрутувала до того, як машина може бути виведена на ринок. Перед його загибеллю LMI працювала над розподіленою системою для LAMBDA, використовуючи простір Moby.[6]

Ці машини мали апаратну підтримку для різних примітивних операцій Lisp (тестування типу даних, кодування CDR), а також апаратна підтримка інкрементного збору сміття. Вони дуже ефективно керували великими програмами Lisp. Машина Symbolics була конкурентоспроможна проти багатьох комерційних супер мінікомпьютеров, але ніколи не була адаптована для звичайних цілей. Машини Symbolics Lisp також продавалися на деяких ринках, які не належать до AI, таких як комп'ютерна графіка, моделювання та анімація.

Ліпп-машини, отримані від MIT, керували діалектом Lisp з іменем Lisp Machine Lisp, що походить від Maclisp MIT. Операційні системи були написані з нуля в Lisp, часто використовуючи об'єктно-орієнтовані розширення. Пізніше ці машини Lisp також підтримували різні версії Common Lisp (зі смаками, новими смаками та об'єктною системою Common Lisp (CLOS)).

Interlisp, BBN і Xerox

Болт, Беранек і Ньюман (BBN) розробили власну машину Lisp, названу Jericho[7], яка керувала версією Interlisp. Він ніколи не продавався. Розчаровані, вся група AI пішла у відставку, і найнялася в основному Xerox. Таким чином, Xerox Palo Alto Research Center, одночасно з власним розвитком Greenblatt в MIT, розробив власні машини Lisp, які були розроблені для роботи InterLisp (і пізніше Common Lisp). Таке ж обладнання використовувалося з різним програмним забезпеченням, також як машини Smalltalk та офісної системи Xerox Star. Вони включали Xerox 1100, Dolphin (1979); Xerox 1132, Dorado ; Xerox 1108,Кульбаба (1981); Xerox 1109, Dandetiger ; і Xerox 1186/6085, Daybreak. Операційна система машин Xerox Lisp також перенесена на віртуальну машину і доступна для декількох платформ як продукт Medley. Машина Xerox була добре відома своєю передовою середовищем розробки (InterLisp-D), менеджером вікон ROOMS, її раннім графічним інтерфейсом та новими додатками, наприклад, NoteCards (одним з перших гіпертекстових додатків).

Xerox також працював на машині Lisp, заснованої на скороченні обчислень набору команд (RISC), використовуючи процесор Xerox Common Lisp Processor і планував вивести його на ринок у 1987 році[8], що не відбулося.

Машини інтегрованого висновку

У середині 1980-х років Інтегровані машини з висновком (IIM) побудували прототипи машин Lisp під назвою Inferstar.[9]

Розробки машин Lisp за межами США

У 1984—1985 роках британська фірма Racal-Norsk, спільна дочірня компанія Racal і Norsk Data, спробувала перепрофілювати супермаркі ND-500 Norsk Data як мікрокодування Lisp-машину, яка використовує програмне забезпечення CADR: Система обробки знань (KPS).[10]

Було кілька спроб японських виробників вийти на ринок машин Lisp: спільний процесор Fujitsu Facom-alpha[11], процесор NTT Elis, [12][13] процесор AI Toshiba (AIP)[14] і NEC LIME.[15] Кілька наукових досліджень університету дали робочі прототипи, серед яких TAKITAC-7 університету Кобе, [16] FLATS RIKEN, [17] і EVLIS університету в Осаці.[18]

У Франції виникли дві проекти: машина M3L[19] в університеті Тулуза Пал Сабатьє, а потім MAIA.[20]

У Німеччині Siemens розробив RISC-сумісний процесор COLIBRI.[21][22][23][24]

Кінець машин Lisp

З настанням зими АІ й ранніми початками революції мікрокомп'ютера, які винесли б мінікомп'ютер і виробники робочих станцій, дешевші настільні ПК скоро могли запускати програми Lisp ще швидше, ніж машини Lisp, без використання спеціального обладнання. Їхня велика прибутковість апаратного бізнесу ліквідована, більшість виробників машин Lisp вийшли з бізнесу на початку 90-х, залишивши лише фірми на основі програмного забезпечення, такі як Lucid Inc. або виробники обладнання, які перейшли на програмне забезпечення та послуги, щоб уникнути аварії. Станом на січень 2015 року, крім Xerox, Symbolics — це єдина фірма Lisp, яка все ще працює, продаючи програмне середовище машин Open Genera Lisp і Macsymaсистема комп'ютерної алгебри.[25][26]


Спадщина

Було зроблено кілька спроб написання емуляторів з відкритим кодом для різних машин Lisp: Емуляція CADR, [27]Символіка L Емуляція машини Lisp, [28] Проект E3 (Емуляція TI Explorer II), [29] Meroko (TI Explorer I), [30]і Невермор (ТІ Експлорер I).[31] На 3 жовтня 2005 року MIT випустила вихідний код CADR Lisp Machine, як з відкритим вихідним кодом.[32]

У вересні 2014 року Олександр Бургер, розробник PicoLisp, оголосив PilMCU, реалізацію PicoLisp в апаратному забезпеченні.[33]

Архів документів PDF у Бітвери[34] містить PDF-версії великої документації для машин Symbolics Lisp, [35] TI Explorer[36] та MicroExplorer[37] Машини Lisp і машини Xerox Interlisp-D Lisp.[38]

Програми

Домени, що використовують машини Lisp, були в основному в широкому полі додатків штучного інтелекту, а також у комп'ютерній графіці, обробці медичних зображень та багатьох інших.

Основні комерційні експертні системи 80-х років були доступні: середовище інженерних знань Intellicorp (KEE), знання Craft, від Carnegie Group Inc., та ART (Automated Reasoning Tool) від корпорації Inference.[39]

Технічний огляд

Спочатку машини Lisp були розроблені як особисті робочі станції для розробки програмного забезпечення в Lisp. Вони використовувалися однією людиною і не пропонували багатокористувацького режиму. Машини забезпечували великий, чорно-білий, растровий дисплей, клавіатуру і мишу, мережевий адаптер, локальні жорсткі диски, більше ніж 1 Мб оперативної пам'яті, послідовний інтерфейс і локальну шину для платіжних карток. Кольорові відеокарти, стрічкові накопичувачі та лазерні принтери були додатковими.

Процесор не запускав Lisp безпосередньо, а був машиною стека з інструкціями, оптимізованими для компіляції Lisp. Перші машини Lisp використовували мікрокод для забезпечення набору команд. Для декількох операцій перевірка типів і диспетчеризація виконувалася в апаратному режимі під час виконання. Наприклад, можна використовувати тільки одну операцію додавання з різними числовими типами (цілочисельні, плаваючі, раціональні та комплексні числа). Результатом було дуже компактне складання представлення коду Lisp.

Наступний приклад використовує функцію, яка підраховує кількість елементів списку, для яких повертається предикат true.

(defun example-count (predicate list)
  (let ((count 0))
    (dolist (i list count)
      (when (funcall predicate i)
        (incf count)))))

Розібраний машинний код для вищезгаданої функції (для мікропроцесора Ivory від Symbolics):

Command: (disassemble (compile #'example-count))

  0  ENTRY: 2 REQUIRED, 0 OPTIONAL      ;Cтворення PREDICATE and LIST
  2  PUSH 0                             ;Cтворення COUNT
  3  PUSH FP|3                          ;LIST
  4  PUSH NIL                           ;Cтворення I
  5  BRANCH 15
  6  SET-TO-CDR-PUSH-CAR FP|5
  7  SET-SP-TO-ADDRESS-SAVE-TOS SP|-1
 10  START-CALL FP|2                    ;PREDICATE
 11  PUSH FP|6                          ;I
 12  FINISH-CALL-1-VALUE
 13  BRANCH-FALSE 15
 14  INCREMENT FP|4                     ;COUNT
 15  ENDP FP|5
 16  BRANCH-FALSE 6
 17  SET-SP-TO-ADDRESS SP|-2
 20  RETURN-SINGLE-STACK

Операційна система використовувала віртуальну пам'ять для забезпечення великого адресного простору. Управління пам'яттю здійснювалося зі збором сміття. Весь код має спільний простір адрес. Всі об'єкти даних зберігалися з тегом в пам'яті, так що тип може бути визначений під час виконання. Підтримували й називали процесами декілька потоків виконання. Всі процеси проходили в одному адресному просторі.

Все програмне забезпечення операційної системи було написано в Lisp. Xerox використовував Interlisp. Символіка, LMI й TI використовували Lisp Machine Lisp (нащадок MacLisp). З появою Common Lisp Common Lisp підтримувався на машинах Lisp, а деякі системні програми були перенесені на Common Lisp або пізніше написані в Common Lisp.

Деякі пізніші машини Lisp (такі як TI MicroExplorer, Symbolics MacIvory або Symbolics UX400 / 1200) більше не були робочими станціями, а плати, призначені для вбудовування в комп'ютери: Apple Macintosh II і SUN 3 або 4.

Деякі машини Lisp, такі як Symbolics XL1200, мали широкі графічні можливості з використанням спеціальних графічних плат. Ці машини використовувалися в областях, таких як обробка медичних зображень, 3D-анімація та CAD.

Див. також

  • ICAD[en] — приклад інженерного програмного забезпечення на основі знань, спочатку розробленого на машині Lisp, що було достатньо корисним для перенесення за допомогою Common Lisp до Unix
  • Сирітська технологія[en]

Примітки

  1. Newquist, HP. Brain Makers , Sams Publishing, 1994. ISBN  0-672-30412-0 .
  2. Місяць, Девід А. "Архітектура символіки 3600" . Portal.acm.org. doi : 10.1145 / 327070.327133 . Отримано 12 листопада 2011 року .
  3. Леві, S: Хакери . Пінгвін США, 1984
  4. Місяць 1985
  5. K-машина
  6. Заявка на патент Мобі 4779191
  7. "Обчислювальні засоби для штучного інтелекту: огляд існуючих та найближчих варіантів" . Журнал AI . 2 (1). 1981.
  8. "Конференція AAAI-86: нові напрямки для комерційного штучного інтелекту, реалізація машин VLSSLIS з машиною" . Журнал AI . 8 (1). 1987.
  9. "Експозиції конференції AAAI-86: нові напрямки для комерційного ІІ, новий постачальник машин Lisp" , журнал AI , 8 (1), 1987 , випущено 12 листопада 2011 р.
  10. "Комп'ютерна алгебра в Норвегії, Racal-Norsk KPS-5 і KPS-10 багатокористувацькі машини Lisp" . Спрінгер посилання . Отримано 12 листопада2011 року .
  11. "Facom Alpha" . Музей комп'ютерів . IPSJ . Отримано 12 листопада 2011 року .
  12. "NTT ELIS" . Музей комп'ютерів . IPSJ. 9 вересня 1983 року . Отримано 12 листопада2011 року .
  13. "32-розрядний процесор LISP для робочої станції Al ELIS з мовою парадигми декількох програм, TAO" . NII. 25 серпня 1990 року . Отримано 12 листопада 2011 року .
  14. "Архітектура чіпа процесора AI (IP1704)" . NII. 25 серпня 1990 року . Отримано 12 листопада 2011 року .
  15. "Машина NEC LIME Lisp" . Музей комп'ютерів . IPSJ . Отримано 12 листопада 2011 року .
  16. "Машина університету Кобе" . Музей комп'ютерів . IPSJ. 10 лютого 1979 року . Отримано 12 листопада 2011 року .
  17. "Комп'ютерний обчислювальний комплекс RIKEN FLATS" . Музей комп'ютерів . IPSJ . Отримано 12 листопада 2011 року .
  18. "Машина EVLIS" . Музей комп'ютерів . IPSJ . Отримано 12 листопада 2011 року .
  19. "M3L, A Lisp-машина" . Limsi . Отримано 12 листопада 2011 року .
  20. "MAIA, Машина для штучного інтелекту" . Limsi . Отримано 12 листопада 2011 року .
  21. Hafer, Christian; Plankl, Josef; Schmidt, Franz Josef (1991), «COLIBRI: копроцесор для LISP на основі RISC», VLSI для штучного інтелекту та нейронних мереж , Бостон, Массачусетс: Springer
  22. Müller-Schloer (1988), «Bewertung der RISC-Methodik am Beispiel COLIBRI», в Bode, A (ed.), RISC-Architekturen [ Risc архітектура ] (німецькою мовою), BI
  23. Hafer, Christian; Plankl, Josef; Schmitt, FJ (7–9 березня 1990), «COLIBRI: Ein RISC-LISP-System» [Colibri: система RISC, Lisp], Architektur von Rechensystemen, Tagungsband (німецькою мовою), Мюнхен, DE : 11. ITG / GI -Fachtagung
  24. Легутко, християнин; Schäfer, Eberhard; Tappe, Jürgen (9-11 березня 1988), «Die Befehlspipeline дез Colibri-система» [Інструкція трубопровід системи Colibri], Architektur унд Betrieb фон Rechensystemen, Tagungsband (німецькою мовою), Падерборн, DE : 10. ITG / GI -Fachtagung
  25. «symbolics.txt»
  26. «Дещо я знаю про LISP Machines»
  27. "Емуляція CADR" . Unlambda . Отримано 12 листопада 2011 року .
  28. "Символіка емуляції машини Lisp" . Unlambda. 28 травня 2004 року . Отримано 12 листопада 2011 року .
  29. "Проект E3, емуляція TI Explorer II" . Unlambda . Отримано 12 листопада 2011 року .
  30. "Емулятор Meroko (TI Explorer I)" . Unlambda . Отримано 12 листопада 2011 року .
  31. «Nevermore Emulator (TI Explorer I)» . Unlambda . Отримано 12 листопада 2011 року .
  32. "Вихідний код машини MIT CADR Lisp" . Heeltoe . Отримано 12 листопада 2011 року .
  33. «Анонс: PicoLisp в апаратному забезпеченні (PilMCU)» .
  34. «Архів документів PDF» . Бітварів . Отримано 12 листопада 2011 року .
  35. "Символіка документації" . Бітварів . Отримано 12 листопада 2011 року
  36. "Документація TI Explorer" . Бітварів. 15 травня 2003 року . Отримано 12 листопада 2011 року .
  37. "Документація TI MicroExplorer" . Бітварів. 9 вересня 2003 року . Отримано 12 листопада2011 року .
  38. "Документація Xerox Interlisp" . Бітварів. 24 березня 2004 року . Отримано 12 листопада2011 року .
  39. Ріхтер, Марк: Інструменти та методики ІІ . Ablex Publishing Corporation США, 1988, Розділ 3, Оцінка інструментів розробки експертної системи

Посилання