1
Fork 0
mirror of https://github.com/thegeneralist01/fphistoryru synced 2026-01-10 14:10:24 +01:00

november upd.

This commit is contained in:
klapaucius 2024-12-03 02:03:46 +05:00
parent 4fdfa7aa04
commit 8bc705eb79
2 changed files with 99 additions and 0 deletions

View file

@ -51,6 +51,9 @@
- [SKIM](#skim)
- [SKIM II](#skim-ii)
- [NORMA](#norma)
- [Скобочный потолок](#скобочный-потолок)
- [Персональный миникомпьютер](#персональный-миникомпьютер)
- [Персональный микрокомпьютер](#персональный-микрокомпьютер)
- [Литература](#литература)
@ -1663,12 +1666,97 @@ LML (VAX)
Но дела у создателей SKIM, видимо, пошли не очень хорошо. У разработчиков же обычного железа дела шли отлично. Так что позднее Норман пишет уже не про специальные ФП-компьютеры, а про имплементацию ФЯ на компьютерах обычных [Norm88].
А как шли дела у создателей NORMA? Дело в том, что у исследовательской работы в лабораториях при коммерческих компаниях есть и недостатки. В 86-ом году в Burroughs, во время поглощения Sperry решили, что ARC не нужен и закрыли его [Hoar22].
### Скобочный потолок
> Мы сидели рядом с Symbolics. У них был двухэтажный выставочный стенд из черного металла, изогнутый спереди и с рядом мониторов на втором ярусе для удобства демонстрации. Этот стенд называли "Звезда Смерти".
> Ричард Гэбриел [Gabr96]
Увы, история SKI-машины оборвалась внезапно. Вместо того, чтоб долго и мучительно проигрывать машине обычной, она стала жертвой решения, которое выглядит случайным. Но было ли оно случайным? Нам не хватает разнообразия SKI-машин, чтоб ответить на этот вопрос. Но что если добавить к ним похожих машин?
Мы выяснили, что SKI-машина - это примерно то же самое, что и Лисп-машина и отличается, в основном, микрокодом. А значит, мы можем составить представление о том, как могло бы выглядеть медленное закономерное умирание, если бы быстрое случайное не состоялось. В 80-е годы Лисп был несоизмеримо популярнее того функционального программирования, историю которого мы пишем. Так что довольно безопасно предположить, что реальные успехи Лисп-машин существенно превышают возможные успехи SKI-машин при самом удачном для них развитии событий.
И разнообразие производителей Лисп-машин позволяют нам оценить все три возможных варианта развития SKI-машин. Возможное будущее SKIM представят бывшие исследовательские группы из университета, которые стали относительно успешной и относительно неуспешной компанией производящей специальное железо. Возможное будущее NORMA - производитель обычного железа, который решил попробовать производить и специальное.
Но подождите-ка, если и Лисп-машины и SKI-машины SKIM и NORMA - это, в основном, обычные компьютеры с большой памятью для микрокода и поддержкой тегов, то почему бы не использовать Лисп-машину для того, чтоб исполнять "аппликативный" язык, написав подходящий интерпретатор на микрокоде?
Имплементаторы Пролога так и сделали [Carl84], получив ускорение в три раза и в два раза более компактный код. Такую же попытку предприняли однажды и имплементаторы ФЯ, но это уже была имплементация второго поколения, о которой мы расскажем в следующих частях нашей истории.
Да, использование Лисп-машины для имплементации ФЯ не было распространенным явлением. И на вопросы о том, насколько успешными могли бы быть SKI-машины и о том, почему Лисп-машины особо не пытались перемикропрограммировать в ФП-машины, по большему счету, один и тот же ответ.
#### Персональный миникомпьютер
Самым успешным из производителей Лисп-машин была компания Symbolics. Та самая, которую основали машинисты, решившие обойтись без своего бывшего руководителя в МТИ Гринблатта. В Symbolics начали с производства разработанной в МТИ Лисп-машины CADR под названием LM-2. Но, в отличие от прочих машинистов начавших с МТИ-машины, они сделали в 83-ем году и Лисп-машину следующего поколения - 3600. Как и NORMA, эти машины использовали и специальное железо, не просто были обычными компьютерами с увеличенной памятью для микрокода и поддержкой тегов.
Машины линейки 3600 работали быстрее, и были любимы за это пользователями. Правда, быстрее в значительной степени потому, что ранние модели не имели сборщика мусора [Stee96]. Продвинутые пользователи прочих Лисп-машин, конечно, могли выбрать отключение сборщика и освобождать память способом, который мы подробно описали в прошлой части. Но в случае 3600 этот лайфхак уже действовал прямо из коробки. Позднее машины 3600 серии получили сборщик мусора нового поколения, о котором мы еще расскажем.
В 80-ом году, когда Symbolics уже продавала, но еще не поставляла свою первую Лисп-машину, эта машина стоила, ориентировочно $140,000 ($536,322 в 2024). Что можно было получить за эти $140K в 80-ом году? Процессор и 12K слов памяти для микрокода - это $79,600. Добавим $23,000 за минимальный жесткий диск и его контроллер. Все невеликое адресное пространство LM-2 поместится и на минимальный диск. 10-30 тысяч за ОС в зависимости от того, сколько Лисп-машин покупаете и хотите ли получать обновления. И мелочи вроде I/O-карты, клавиатуры и мыши - $7,900 за все и монохромного монитора за $4,800.
И сколько после всего этого остается на самый важный для нашей истории ресурс - оперативную память? Примерно на 0-750Кб. 4Мб памяти, минимальный объем для следующей модели, и, как мы выяснили в предыдущей части, минимальный совсем не без причины, обходился в $75,200 ($288,081 в 24-ом году). Так что тут, вероятно, не обошлось без скидки, которую обещают за покупку многих машин [Symb80]. Эта цена сопоставима с миникомпьютером VAX-11/750, а цена за пару Лисп-машин - с VAX-11/780 [VAX82].
Заплатив эти деньги в 80-ом году можно было в 81-ом получить персональный компьютер с достаточно большой памятью для ваших Лисповых (и функциональных) нужд. Или миникомпьютер, которые бывали персональными только в выходные ночью или вроде того. Все остальное время они обслуживали несколько (десятков) рабочих мест. Например, сотрудники Йеля обсуждали в рассылках, что на рабочее место для одного студента там готовы потратить 10-15 тысяч долларов [TMail]. И миникомпьютер с десятками терминалов один из способов обеспечить рабочее место за эти деньги. Чего не скажешь о Лисп-машине. По видимому, персональный миникомпьютер был для не самых богатых героев нашей истории слишком сумасшедшей идеей. Так что не удивительно, что неперсональные мини-компьютеры выиграли в подавляющем большинстве мест, где велась разработка ФЯ. И, в отличие от лисперов, которые не любили VAX-11 [Stee96], разработчиков ФЯ он более-менее устраивал.
В 81-86 годах Symbolics поставила две тысячи Лисп-машин [Symb86b]. Две тысячи машин это немного. И в Symbolics рассчитывали производить и продавать намного больше. Нам известно об этом не из декларируемых пожеланий, а потому что Symbolics арендовала больше производственных помещений и нанимала больше людей, чем им оказалось нужно в действительности [Phil99]. Но насколько это было немного для 80-х? Лисп-машинисты хотели соревноваться с миникомпьютерами. И, например, DEC - компания, производившая не очень много компьютеров, в 85-87 выпустила 65 тысяч миникомпьютеров MicroVAX II [Mash2006]. Довольно популярная по меркам DEC линейка VAX-11-машин на микропроцессорах. И только одна из многих линеек совместимых компьютеров.
Машинисты LMI к концу 83-его года продали только 23 CADR машины. Что выглядит довольно смешно, если сравнивать с успехами Symbolics, но ARC собрал только две [Turn12] или три [Trel87] машины NORMA. Первые лисп-машины LMI стоили примерно $100,000 ($383,000 в 24-году). Половину из этих 23-х собрали еще в 80-ом, первом году существования компании. Он же последний год, когда компания была прибыльной.
Так что в 83-ем году в LMI решили, что дела идут не особенно хорошо и решили сделать то, чего основатель LMI Гринблат делать опасался, и из-за чего машинисты ИИ Лаборатории МТИ и разделились на две компании. Пригласили менеджера из Texas Instruments Фрэнка Спитногла (Frank Spitnogle) на должности президента и COO в LMI. TI приобрел четверть компании.
И, нужно отдать Гринблатту должное, его опасения полностью оправдались. С помощью TI, LMI выпустили новую машину Lambda. Новую, но не очень - это все еще CADR-образная машина из МТИ 70-х. И, получив некоторый опыт работы с LMI, в TI пришли примерно к тем же выводам, к которым пришли и большинство бывших коллег Гринблатта по ИИ-лаборатории: Гринблатт и LMI не нужны. TI стала производить собственные Лисп-машины, лицензию на которые им в LMI не могли не дать. LMI не могла конкурировать и с Symbolics, и появление на Лисп-машинном рынке настоящего производителя железа не пошло им на пользу. Так что в апреле 87-го LMI обанкротилась [Phil99].
Что не обязательно плохо для Лисп-машин как явления. В TI могли производить больше Лисп-машин и сделать их дешевле. И могли позволить себе терять деньги на них, пока раздавят остальных Лисп-машинистов. TI раньше чем Symbolics стала продавать Лисп-машины на одном чипе, хотя и все той же старой CADR архитектуры Найта из 70-х. И Лисп-машина на чипе, конечно, имела меньше недостатков по сравнению с обычной рабочей станцией. МТИ купил для лаборатории компьютерных наук не машины Symbolics, а 400 Лисп-машин TI Explorer (пользователи этих машин и будущие герои нашей истории называли их "exploder"). Но TI пришла на рынок поздновато, в 84-ом году. Позднее лисперы напишут, что в 87-ом году "стало ясно, что все, кто хотел купить Лисп-машину - уже купили её". Трудные времена наступили не только для SKI-машин. Что же случилось?
#### Персональный микрокомпьютер
Закончилось время, когда одним компьютером пользовались больше десяти лет. И даже заменив компьютер на новый, продолжали пользоваться компьютером примерно той же производительности. Рабочее место пользователя компьютера вместо этого дешевело. С самого начала предыстория функционального программирования была историей увеличения оперативной памяти. Но не историей увеличения числа операций в секунду. С 60-х годов история разворачивалась таким образом: разработчик, например, компилятора ФЯ, мог позволить себе немного машинного времени на первом компьютере в 1 MIPS (Atlas), затем побольше машинного времени на серийном мэйнфрейме примерно в 1 MIPS (PDP-10), затем еще больше времени на миникомпьютере в 1 MIPS (VAX-11/780) и, наконец, персональный микрокомпьютер примерно в 1 MIPS.
И это не было каким-то средним показателем. Это был передняя кромка практической производительности. К которой некоторые герои нашей (пред)истории могли только прикоснуться однажды, как Поплстоун, и затем отступить на годы в области меньшей производительности. Или даже вовсе только мечтать о ней, как Тернер. Но, к счастью, в начале 80-х этот вычислительный застой подошел к концу.
Перелом произошел в 83-84 годах. В 83-ом году в Symbolics еще были настолько уверены в продолжающемся превосходстве Лисп-машин, что ликвидировали отдел занимающийся имплементацией Лиспа для обычных машин [Phil99]. В 84-ом одни из главных героев предыдущей главы Ричард Гэбриел и Скотт Фалман вместе с одним из разработчиков PSL Эриком Бэнсоном (Eric Benson) основали компанию Lucid Inc., которая имплементировала Лисп для микрокомпьютеров [Stee96] [Gabr96]. В том же году разработчики Franz Lisp основали компанию Franz Inc. [Franz], которая занялась тем же.
Как мы выяснили в этой части, некоторые герои нашей истории в INRIA и Йеле уже давно готовились к появлению микрокомпьютеров в 1 MIPS, начав с тех рабочих станций, которые уже может и были "миникомпьютером на одном чипе", но еще не VAX-11/780 на одном чипе. Вроде ранних рабочих станций Apollo DN400
| | fib | fibg | fibp | sub | rev | clos | ASSOC | tak |
| :---- | :------: | :------: | :------: | :------: | :------: | :------: | :------: | :------: |
| 3670 | **1.00** | **1.00** | **1.00** | **1.00** | **1.00** | **1.00** | **1.00** | **1.00** |
| TERN | 2.92 | 2.90 | 2.50 | 6.88 | 5.00 | **1.00** | 3.55 | 3.00 |
| DN400 | 9.21 | 8.90 | 8.60 | 5.38 | 7.00 | 1.15 | 10.9 | 9.80 |
```
3670
░▒▒▓▓░░▒▒▓▓▓▓▓▓▓▓▓▓▓░▒
TERN
░░░░▒▒▒▒▓▓▓▓░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓░░░░▒▒▒▒
DN400
░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒
```
И, как видите, новые рабочие станции позволили разработчикам T2 резко сократить их отставание от новых Лисп-машин ничего не делая с имплементацией T2.
Обратите внимание на то, что бенчмарк для замыканий (`clos`) работает на ZetaLisp/3670 как на T2 и намного более медленных рабочих станциях. Не самая лучшая платформа для имплементации ФЯ!
Авторы Le Lisp из INRIA просто заявляют о победе над LM2 в марте 83 [Chai83] (даже для загружаемого в интерпретатор кода) и над 3600 в июле 84-го [Chai84] по результатам вычисления чисел Фибоначчи.
| | fib 20 |
| :------------- | :------: |
| Le Lisp (opt) | **1.00** |
| Le Lisp | 5.42 |
| Symbolics 3600 | 1.25 |
| Symbolics LM2 | 6.50 |
```
Le Lisp (opt)
░░░░░░░░░░░░░░░
Le Lisp
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
Symbolics 3600
░░░░░░░░░░░░░░░░░░░
Symbolics LM2
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
```
Что, конечно, не дает реалистичного представления о разнице в производительности, но есть основания считать что Le Lisp действительно был побыстрее T2.
И разработчики T2 признавали [TMail], что Лисп-машины _пока_ еще работают заметно быстрее. Но скорость это еще не все.
В наше время Лисперы чаще вспоминают о Лисп-машинах как о потерянном рае, из которого они были изгнаны другими лисперами, как Столлман, или же другими безжалостными силами, к которым мы еще вернемся. Но если почитать рассылки 80-х, то обнаруживаются лисперы, которые просто не любят Лисп-машины. Конечно, легко не любить что-то, чего все равно не купят для вас на вашей работе. Но этим претензии не ограничиваются.
Есть лисперы, которым не нравится Лисп-машинный Лисп и которые хотят использовать Схему, которые хотят использовать свой любимый текстовый редактор, использовать TeX и C. Предпочитают рабочее окружение и интерфейс на обычных рабочих станциях. А машинисты смеются над тем, что кто-то хочет использовать C и свой любимый текстовый редактор.
Но надолго ли это преимущество Лисп-машин в скорости? Начиная с 84-го года, микрокомпьютер работает все быстрее и быстрее. Возможность поисполнять Лисп или поредуцировать комбинаторы немного быстрее на фоне той двадцатилетней стагнации могла выглядеть заманчиво. Но что делать Лисп/SKI-машине в новом мире? В следующем году комбинаторы будут редуцироваться заметно быстрее без всяких специальных машин. Будет ли специальная машина работать быстрее в следующем году?
В 84-ом году разработчики и пользователи Лиспов для обычных машин смотрят [TMail] в будущее с оптимизмом и уже ожидают победы над Лисп-машинами в ближайшем будущем. Motorola анонсировала новую модель процессора из 68K линейки - MC68020, который должен быть в разы быстрее.
Машинисты не верят. Пишут, что Лисп-машины-то вот они, а быстрых рабочих станций с 6Мб памяти и Motorola 68020 еще нет. В Symbolics Гэбриелу заявили, что Лисп на машинах с MC68020 будет, по крайней мере, в 17 раз медленнее, чем на 3600 [Gabr96]. Машинисты верили, что Лисп-машины станут быстрее. Ну а что им еще оставалось делать?
В середине 80-х разработка нового микропроцессора стоит десятки миллионов долларов (т.е. порядка 100 миллионов долларов 24-го года), и это уже существенная проблема для того кто продает десятки тысяч миникомпьютеров [Mash2006]. Не говоря уже о тысяче Лисп-машин. Это сумма того же порядка, что весь Лисп-машинный рынок или все инвестиции привлеченные успешной Лисп-машинной компанией за всю её историю.
Разумеется, это все несопоставимо с масштабами производства микрокомпьютеров, с которыми Лисп-машинистам теперь нужно было соревноваться. В те же 85-87 годы было выпущено, например, 14 миллионов IBM PC и клонов.
Конечно, только небольшое число микрокомпьютеров представляло реальную угрозу для Лисп-машин. Но это число ограничивалось, в основном, памятью. И стоимость памяти падала, все больше увеличивая долю стоимости процессора, выпускаемого миллионами и дешевого в случае микрокомпьютеров. В 80-ом году память стоила $18K ($69K 24-го) за мегабайт [Symb80]. В 86-ом $1K ($2,880 24-го) за мегабайт [Apol86].
В начале 84-го года обычный микрокомпьютер на процессоре Motorola 68K - Apple Macintosh - имел жалкие 128K памяти, но уже осенью того же года - 512K, а в начале 86-го продавалась модель, которую можно было проапгрейдить до волшебного числа в 4Мб. Понятно, к чему все шло. И для тех, кому нужно было больше памяти, существовали микрокомпьютеры с той же линейкой процессоров, но большей памятью: рабочие станции Apollo, SUN и другие.
За шесть лет цена на Лисп-машины Symbolics упала с $140,000 до $40,000 ($115,205 в 2024). И $40,000 в 86-ом - это цена самой минимальной машины с 4Мб памяти и 190Мб жестким диском. В том же 86-ом году Symbolics продавала (пыталась продавать?) машины с памятью до 60Мб и дисками до 4120Мб. И, как мы выяснили, большие объемы памяти были очень желательны. Кроме того, 40 тыс. долларов - это временная цена, со скидкой. Без скидки такая минимальная машина стоила на $18,000 дороже [Symb86], т.е. 164 тысячи долларов 24-го года.
И, конечно же, MC68020 стал очень успешен и с максимальной частотой выдавал 10 MIPS. В 86-ом году за эти 40 тысяч еще без скидок можно было купить рабочую станцию с 16МГц MC68020 (4.8 MIPS) и 12Мб-16Мб памяти, а сравнимая с Лисп-машиной конфигурация обошлась бы тысяч в десять [Apol86]. Вот эти-то машины и покупали.
Но триумф микрокомпьютеров не единственная причина того, что желающих покупать Лисп-машины было мало. У тех, кто продавал Лиспы для микрокомпьютеров тоже начинались проблемы. И Лисп-машинисты придумали, со временем, как обратить триумф микрокомпьютеров себе на пользу. Что тоже им не особенно помогло. Но эти остальные причины упадка Лисп-машин в частности и Лиспа вообще - уже другая история.
ПРОДОЛЖЕНИЕ СЛЕДУЕТ
Литература
==========
[ALGOL80]: AB45.4.2 ALGOL 68 Implementations - ALGOL 68C - Release 1, Algol Bulletin No. 45, January 1980 http://archive.computerhistory.org/resources/text/algol/algol_bulletin/A45/P42.HTM
[Apol86]: http://bitsavers.informatik.uni-stuttgart.de/pdf/datapro/datapro_reports_70s-90s/Apollo/M11-075-11_8605_Apollo_Domain.pdf
[Arvi84]: Arvind, Brock, J. D. and Pingali, K. "FP1.5: Backus' FP with higher order functions", M.I.T. Lab. for Computer Science, (Unpublished 1984)
[Augu84]: Lennart Augustsson, A compiler for lazy ML. LFP '84: Proceedings of the 1984 ACM Symposium on LISP and functional programming August 1984 Pages 218227 doi:10.1145/800055.802038
[Augu89]: L. Augustsson, T. Johnsson, The Chalmers Lazy-ML Compiler. In The Computer Journal, Volume 32, Issue 2, 1989, Pages 127141 DOI:10.1093/comjnl/32.2.127
@ -1686,6 +1774,7 @@ LML (VAX)
[Burk83]: Glenn Burke. Introduction to NIL. Laboratory for Computer Science, Massachusetts Institute of Technology, March 1983. https://www.softwarepreservation.org/projects/LISP/MIT/Burke-Introduction_to_NIL-1983.pdf
[Burk83b]: Glenn S. Burke, George J. Carrette, and Christopher R. Eliot. NIL Notes for Release 0.259, Laboratory for Computer Science, Massachusetts Institute of Technology, June 1983. https://www.softwarepreservation.org/projects/LISP/MIT/Burke_et_al-NIL_Notes_Release_0259-1983.pdf
[Burk84]: Glenn S. Burke, George J. Carrette, and Christopher R. Eliot. NIL Reference Manual corresponding to Release 0.286. Report MIT/LCS/TR-311, Laboratory for Computer Science, Massachusetts Institute of Technology, January 1984. https://www.softwarepreservation.org/projects/LISP/MIT/Burke_et_al-NIL_Reference_Manual_0286-1984.pdf
[Carl84]: Mats Carlsson. LM-Prolog - The Language and its Implementation. Thesis for Licentiat of Philosophy in Computer Science at Uppsala University. UPMAIL Technical Report 30, October 1984.
[Chai83]: J. Chailloux, J.M. Hullot, Jean-Jacques Levy, J. Vuillemin. Le systeme LUCIFER d'aide a la conception de circuits integres. RR-0196, INRIA. 1983.
[Chai84]: Jérome Chailloux, Matthieu Devin, and Jean-Marie Hullot. 1984. LELISP, a portable and efficient LISP system. In Proceedings of the 1984 ACM Symposium on LISP and functional programming (LFP '84). Association for Computing Machinery, New York, NY, USA, 113122. doi:10.1145/800055.802027
[Card80]: Luca Cardelli, The ML Abstract Machine. https://smlfamily.github.io/history/Cardelli-ML-abstract-machine-1980.pdf
@ -1717,6 +1806,7 @@ LML (VAX)
[Fate2003]: Souza, Paulo Ney de, Richard J. Fateman, Joel Moses and Clifford W Yapp. “The Maxima Book.” (2003). https://maxima.sourceforge.io/docs/maximabook/maximabook-19-Sept-2004.pdf
[Fitc09]: Fitch, J. (2009). CAMAL 40 Years on Is Small Still Beautiful?. In: Carette, J., Dixon, L., Coen, C.S., Watt, S.M. (eds) Intelligent Computer Mathematics. CICM 2009. Lecture Notes in Computer Science(), vol 5625. Springer, Berlin, Heidelberg. doi:10.1007/978-3-642-02614-0_8
[Fode81]: Foderaro JK, Fateman RJ. Characterization of VAX Macsyma. InProceedings of the fourth ACM symposium on Symbolic and algebraic computation 1981 Aug 5 (pp. 14-19).
[Franz]: History of Franz Inc. https://franz.com/about/company.history.lhtml
[Franz38]: Franz Lisp Opus 38.93 https://github.com/krytarowski/Franz-Lisp-Opus-38.93-for-4.3BSD-Reno
[Gabr96]: Gabriel, Richard P. Patterns of software. 1996.
[Gris82]: Martin L. Griss, Eric Benson, and Gerald Q. Maguire. 1982. PSL: A Portable LISP System. In Proceedings of the 1982 ACM symposium on LISP and functional programming (LFP '82). Association for Computing Machinery, New York, NY, USA, 8897. doi:10.1145/800068.802139
@ -1759,6 +1849,8 @@ SIGPLAN '84: Proceedings of the 1984 SIGPLAN symposium on Compiler construction
[MacQ82]: D. B. MacQueen and Ravi Sethi. 1982. A semantic model of types for applicative languages. In Proceedings of the 1982 ACM symposium on LISP and functional programming (LFP '82). Association for Computing Machinery, New York, NY, USA, 243252. doi:10.1145/800068.802156
[MacQ14]: Luca Cardelli and the Early Evolution of ML, by David MacQueen. A paper presented at the Luca Cardelli Fest at Microsoft Research Cambridge on Sept. 8, 2014.
[MacQ15]: MacQueen, David B. The History of Standard ML: Ideas, Principles, Culture https://www.youtube.com/watch?v=NVEgyJCTee4
[Mash2006]: John Mashey, A Historical Look at the VAX: The Economics of
Microprocessors, 01-24-2006 http://www.bitsavers.org/pdf/dec/vax/VAX_Retrospective_20060124.pdf
[Matt83]: Matthews, David Charles James. Programming language design with polymorphism. No. UCAM-CL-TR-49. University of Cambridge, Computer Laboratory, 1983.
[Matt85]: David C. J. Matthews. 1985. Poly manual. SIGPLAN Not. 20, 9 (August 1985), 5276. doi:10.1145/988364.988371
[Maun86]: Mauny, M., & Suárez, A. (1986). Implementing functional languages in the Categorical Abstract Machine. Proceedings of the 1986 ACM Conference on LISP and Functional Programming - LFP 86. doi:10.1145/319838.319869
@ -1790,6 +1882,9 @@ SIGPLAN '84: Proceedings of the 1984 SIGPLAN symposium on Compiler construction
[SERC83]: DISTRIBUTED INTERACTIVE COMPUTING NOTE 781 https://www.chilton-computing.org.uk/acd/pdfs/dic/dic781.pdf
[Sche86]: Mark Scheevel. 1986. NORMA: a graph reduction processor. In Proceedings of the 1986 ACM conference on LISP and functional programming (LFP '86). Association for Computing Machinery, New York, NY, USA, 212219. doi:10.1145/319838.319864
[Shiv2001]: Olin Shivers, History of T https://paulgraham.com/thist.html
[Symb80]: Symbolics LM-2 Price List, Oct 1980 https://bitsavers.org/pdf/symbolics/LM-2/LM-2_Price_List_Oct1980.pdf
[Symb86]: Symbolics Overview https://bitsavers.org/pdf/symbolics/history/Symbolics_Overview_1986.pdf
[Symb86b]: Symbolics Press Release, 1986 https://vtda.org/docs/computing/Symbolics/Symbolics_Press_Release1986.pdf
[Slom89]: Sloman, Aaron. "The Evolution of Poplog and Pop-11 at Sussex University." POP-11 Comes of Age: The Advancement of an AI Programming Language (1989): 30-54.
[SPJ87]: Peyton Jones, Simon L. The implementation of functional programming languages (prentice-hall international series in computer science). Prentice-Hall, Inc., 1987.
[SPJ18]: People of Programming Languages. An interview project in conjunction with POPL 2018. Interview with Simon Peyton-Jones http://www.cs.cmu.edu/~popl-interviews/peytonjones.html
@ -1802,8 +1897,10 @@ SIGPLAN '84: Proceedings of the 1984 SIGPLAN symposium on Compiler construction
[Thom76]: Christopher Mark Thomson. The Run-Time structure of an ALGOL 68 Student Checkout Compiler. Master's thesis, Department of Computing Science, University of Alberta, 1976.
[Thom78]: C. Thomson. ALGOL 68 Compiler for IBM S/370. Announcement. SIGPLAN Notices, Volume 13, Number 11 (November 1978), page 11.
[TMail]: T mailing list archive. http://people.csail.mit.edu/riastradh/t/tmail.tar.bz2
[Trel87]: Treleaven, P.C., Refenes, A.N., Lees, K.J., McCabe, S.C. (1987). Computer architectures for artificial intelligence. In: Treleaven, P., Vanneschi, M. (eds) Future Parallel Computers. Lecture Notes in Computer Science, vol 272. Springer, Berlin, Heidelberg. doi:10.1007/3-540-18203-9_15
[Turn79]: Turner, D. A. (1979). A new implementation technique for applicative languages. Software: Practice and Experience, 9(1), 3149. doi:10.1002/spe.4380090105 
[Turn82]: Turner, D.A. (1982). Recursion Equations as a Programming Language. In: Darlington, John, David Turner and Peter B. Henderson. “Functional Programming and its Applications: An Advanced Course.”
[Turn12]: Turner DA. Some history of functional programming languages. In International Symposium on Trends in Functional Programming 2012 Jun 12 (pp. 1-20). Springer, Berlin, Heidelberg.
[VAX82]: VAX Product Sales Guide EG-21731-18, Apr. 82
[Will88]: J. H. Williams and E. L. Wimmers. 1988. Sacrificing simplicity for convenience: Where do you draw the line? In Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL '88). Association for Computing Machinery, New York, NY, USA, 169179. doi:10.1145/73560.73575
[Wray86]: Wray, Stuart Charles. Implementation and programming techniques for functional languages. No. UCAM-CL-TR-92. University of Cambridge, Computer Laboratory, 1986. DOI: 10.48456/tr-92