Первые реализации языка Lisp в СССР


The Presentation inside:

Slide 0

Первые реализации языка Lisp в СССР Лидия Васильевна Городняя [email protected] ИСИ СО РАН им. А.П. Ершова


Slide 1

Конец 1968 года Джон Маккарти прочел в Москве и Новосибирске циклы лекций по Lisp-у и автоматизации доказательств теорем


Slide 2

Московская (ВЦ АН СССР) Lisp-система Лавров С.С., Силагадзе Г.С. Входной язык и интерпретатор системы программирования на базе языка ЛИСП для машины БЭСМ-6. - М.: ВЦ АН СССР, 1967. Лавров С.С., Силагадзе Г.С. Входной язык и интерпретатор системы программирования на базе языка ЛИСП для машины БЭСМ-6. - М.: ИТМ и ВТ АН СССР, 1969. Лавров С.С., Силагадзе Г.С. Автоматическая обработка данных. Язык Лисп и его реализация. - М.: Наука, 1978, 176 с.


Slide 3

С.С. Лавров. Научная автобиография «Существенно более успешной была реализация языка Лисп на БЭСМ-6 (совместно с Г.С. Силагадзе). Удалось создать неплохие интерпретатор и компилятор Лиспа. В книге тех же авторов "Язык Лисп и его реализация" (М.: Наука, 1978) описана более совершенная реализация. »


Slide 4

Новосибирская (ВЦ СО АН СССР) Лисп-система Применялась в пионерских исследованиях по верификации программ, организации недоопределенных вычислений, конструированию семантических моделей и макетированию программ с целью поддержки процесса их разработки. Включает русифицированную версию языка. Эксплуатировалась система без особых переделок практически до демонтажа БЭСМ-6


Slide 5

История языка Lisp John McCarthy. Recursive Functions of Symbolic Expressions and Their Computation by Machine. Communications of the ACM, April 1960. John McCarthy et al. LISP 1.5 Programmers Manual. MIT Press, 1962. Lisp 1. Programmer’s Manual. Massachusetts, 1960. 156 p. Mitchell, R.W., "LISP 2 Specifications Proposal", Stanford Artificial Intelligence Laboratory Memo No. 21, Stanford, Calif., 1964.


Slide 6

Первые реализации Сложилась структура открытой системы из: интерпретатора, компилятора, средств ввода-вывода списков, доступа к памяти с автоматической «сборкой мусора», встроенной базой данных с динамически изменяемым форматом записей, хранящих информацию об атомах, обеспечивающих взаимодействие всех элементов системы и программы.


Slide 7

Освобождение от непринципиальных затруднений Беззаботное размещение в памяти гибких списков произвольного размера с автоматической «сборкой мусора». Работа с целыми неограниченной длины и вещественными с задаваемой точностью. Отображение структур данных в интегральный результат посредством независимо программируемых функций. Компиляции как встроенная функция, вызываемая в любой момент по мере необходимости.


Slide 8

Расширение круга специалистов ввод/вывод данных любой сложности без особых ритуальных действий. Выделено концептуальное подмножество (Pure Lisp), достаточное для освоения наиболее важных особенностей языка, Разработан небольшой, но содержательно полный, сборник задач с ответами для быстрого самостоятельного перехода к программированию на языке.


Slide 9

Многолетняя дружба более 340 документов Язык Lisp упоминается в большинстве документов того времени – преимущественно Lisp 2 Джон Маккарти участвовал в ВКП-2 с докладом «Текущее состояние математической теории вычислений» После участия в Международном симпозиуме «Проблемы теории программирования» Джон Маккарти и Джекоб Шварц на две недели включились в работы ВЦ СО РАН СССР по реализации языков Лисп и Сетл.


Slide 10

Много более давняя и тесная дружба связывает Андрея Петровича Ершова со Святославом Сергеевичем Лавровым. Научный архив С.С. Лаврова передан на хранение в электронный архив А.П. Ершова


Slide 11

LISP – БЭСМ-6 (ВЦ АН СССР) Мнение авторов: «в основу языка Lisp положены оригинальные идеи, знакомство с которыми обогащает программистскую квалификацию и культуру и приносит пользу, даже если программист в дальнейшем и не работает с этим языком».


Slide 12

Мнение авторов «описание интерпретатора может служить примером подхода к составлению любых больших программ, т.е. программ, значительно превосходящих по размеру и сложности те программы, которые встречаются в учебных пособиях или излагаются на занятиях по программированию».


Slide 13

Мнение авторов «язык Lisp устроен так, что он во многих случаях позволяет находить путь к решению задачи постепенно, последовательно сводя ее к более простым задачам».


Slide 14

FUNARG-проблема Изобретено и реализовано оригинальное эффективное решение FUNARG-проблемы, заключающееся в особой разметке областей действия переменных в ассоциативном списке


Slide 15

Фольклор На Ростовской молодежной Школе системного программирования (Мелиховка) в 1970 году в стенгазете отмечен «Лавровый Лисп».


Slide 16

Судьба Лиспа в России весьма волновала С.С. Лаврова подготовил серию статей, адресованных старшеклассникам, для журнала «Компьютерные инструменты в образовании» реализовал новую учебную систему на Паскале


Slide 17

ЛИСП – БЭСМ-6 (ВЦ СО АН СССР) Начатая в 1967 году первая версия реализации Лисп-интерпретатора в Новосибирске, была прервана из-за несовершенства исходных решений (реализация хэш-таблицы атомов оказалась неприспособленной к удалению объектов).


Slide 18

Вторая версия реализации полного Lisp 1.5 Для производительного варианта был реализован специальный механизм контроля стека с выгрузкой во внешнюю память. Для производительного варианта был реализован специальный механизм контроля стека с выгрузкой во внешнюю память.


Slide 19

Руссификация КАР, КДР, КОНС, СОВП, АТОМ, ЛАМБДА, МЕТКА, КАВЫЧ, УСЛ, ФУНК, НИЛ, И, Л, ИНТЕРП, ЧТЕНИЕ, ПЕЧАТЬ, ПЕЧ0, ПЕЧФ, СПИСОК, НИЛС, ДЛИНА, ДОСТ, ЗНАЧ, ПОДПР, СВЫР, СПЕЦВЫР, СПЕЦПОЛПР, ОШИБКА, РЕЖИМ, СБОЙ, КОНЕЦ, …)


Slide 20

Стандартизация языка Lisp Раскол между сторонниками академических (Lisp-1) и производственных (Lisp-2) диалектов (fn a1 a2 … ) ;; Scheme (FUNCALL fn a1 a2 …) ;; Common Lisp


Slide 21

Другие MuLisp Interlisp AutoLisp GNU Clisp CMUCL


Slide 22

Новые реализации Дмитрий Иванов и Арсений Слободюк реализовали (ок. 500 функций) учебное подмножество языка Common Lisp, соответствующее стандарту X3J13 Б.Л. Файфель создал систему HomeLisp, обеспечивающую Windows-интерфейс, средства машинной графики, COM-объекты и BLOB-объекты, WEB-компоненты, т.е. все, к чему привык программист, воспитанный на Visual Studio и Delphi


Slide 23

«Зная Лисп, легко понимать любые языки программирования» Хендерсон П Функциональное программирование М.: Мир, 1983 - в переводе Л.Т. Петровой В предисловии к этой книге А.П. Ершов утверждает, что «понять и принять функциональное программирование легче, если рассматривать задачу программирования в ее полном контексте, начиная со спецификации задачи и логического анализа ее разрешимости, побочным продуктом которого является сама программа».


Slide 24

Вопросы? Спасибо за внимание !


×

HTML:





Ссылка: