Слайд 2Конец 1968 года
Джон Маккарти прочел в Москве и Новосибирске циклы
![Конец 1968 года Джон Маккарти прочел в Москве и Новосибирске циклы лекций](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-1.jpg)
лекций
по Lisp-у и автоматизации доказательств теорем
Слайд 3Московская (ВЦ АН СССР)
Lisp-система
Лавров С.С., Силагадзе Г.С. Входной язык и интерпретатор системы программирования
![Московская (ВЦ АН СССР) Lisp-система Лавров С.С., Силагадзе Г.С. Входной язык и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-2.jpg)
на базе языка ЛИСП для машины БЭСМ-6. - М.: ВЦ АН СССР, 1967.
Лавров С.С., Силагадзе Г.С. Входной язык и интерпретатор системы программирования на базе языка ЛИСП для машины БЭСМ-6. - М.: ИТМ и ВТ АН СССР, 1969.
Лавров С.С., Силагадзе Г.С. Автоматическая обработка данных. Язык Лисп и его реализация. - М.: Наука, 1978, 176 с.
Слайд 4С.С. Лавров.
Научная автобиография
«Существенно более успешной была реализация языка Лисп на БЭСМ-6
![С.С. Лавров. Научная автобиография «Существенно более успешной была реализация языка Лисп на](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-3.jpg)
(совместно с Г.С. Силагадзе). Удалось создать неплохие интерпретатор и компилятор Лиспа. В книге тех же авторов "Язык Лисп и его реализация" (М.: Наука, 1978) описана более совершенная реализация. »
Слайд 5Новосибирская (ВЦ СО АН СССР) Лисп-система
Применялась в пионерских исследованиях по верификации программ, организации недоопределенных вычислений,
![Новосибирская (ВЦ СО АН СССР) Лисп-система Применялась в пионерских исследованиях по верификации](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-4.jpg)
конструированию семантических моделей и макетированию программ с целью поддержки процесса их разработки.
Включает русифицированную версию языка.
Эксплуатировалась система без особых переделок практически до демонтажа БЭСМ-6
Слайд 6История языка Lisp
John McCarthy. Recursive Functions of Symbolic Expressions and Their Computation
![История языка Lisp John McCarthy. Recursive Functions of Symbolic Expressions and Their](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-5.jpg)
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.
Слайд 7Первые реализации
Сложилась структура открытой системы из:
интерпретатора,
компилятора,
средств ввода-вывода списков,
доступа к памяти с
![Первые реализации Сложилась структура открытой системы из: интерпретатора, компилятора, средств ввода-вывода списков,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-6.jpg)
автоматической «сборкой мусора»,
встроенной базой данных с динамически изменяемым форматом записей, хранящих информацию об атомах, обеспечивающих взаимодействие всех элементов системы и программы.
Слайд 8Освобождение от непринципиальных затруднений
Беззаботное размещение в памяти гибких списков произвольного размера
![Освобождение от непринципиальных затруднений Беззаботное размещение в памяти гибких списков произвольного размера](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-7.jpg)
с автоматической «сборкой мусора».
Работа с целыми неограниченной длины и вещественными с задаваемой точностью.
Отображение структур данных в интегральный результат посредством независимо программируемых функций.
Компиляции как встроенная функция, вызываемая в любой момент по мере необходимости.
Слайд 9Расширение круга специалистов
ввод/вывод данных любой сложности без особых ритуальных действий.
Выделено концептуальное
![Расширение круга специалистов ввод/вывод данных любой сложности без особых ритуальных действий. Выделено](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-8.jpg)
подмножество (Pure Lisp), достаточное для освоения наиболее важных особенностей языка,
Разработан небольшой, но содержательно полный, сборник задач с ответами для быстрого самостоятельного перехода к программированию на языке.
Слайд 10Многолетняя дружба
более 340 документов
Язык Lisp упоминается в большинстве документов того времени –
![Многолетняя дружба более 340 документов Язык Lisp упоминается в большинстве документов того](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-9.jpg)
преимущественно Lisp 2
Джон Маккарти участвовал в ВКП-2 с докладом «Текущее состояние математической теории вычислений»
После участия в Международном симпозиуме «Проблемы теории программирования» Джон Маккарти и Джекоб Шварц на две недели включились в работы ВЦ СО РАН СССР по реализации языков Лисп и Сетл.
Слайд 11Много более давняя и тесная дружба связывает Андрея Петровича Ершова со Святославом Сергеевичем
![Много более давняя и тесная дружба связывает Андрея Петровича Ершова со Святославом](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-10.jpg)
Лавровым.
Научный архив С.С. Лаврова передан на хранение в электронный архив А.П. Ершова
Слайд 12LISP – БЭСМ-6 (ВЦ АН СССР)
Мнение авторов:
«в основу языка Lisp положены
![LISP – БЭСМ-6 (ВЦ АН СССР) Мнение авторов: «в основу языка Lisp](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-11.jpg)
оригинальные идеи, знакомство с которыми обогащает программистскую квалификацию и культуру и приносит пользу, даже если программист в дальнейшем и не работает с этим языком».
Слайд 13Мнение авторов
«описание интерпретатора может служить примером подхода к составлению любых больших программ,
![Мнение авторов «описание интерпретатора может служить примером подхода к составлению любых больших](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-12.jpg)
т.е. программ, значительно превосходящих по размеру и сложности те программы, которые встречаются в учебных пособиях или излагаются на занятиях по программированию».
Слайд 14Мнение авторов
«язык Lisp устроен так, что он во многих случаях позволяет находить
![Мнение авторов «язык Lisp устроен так, что он во многих случаях позволяет](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-13.jpg)
путь к решению задачи постепенно, последовательно сводя ее к более простым задачам».
Слайд 15FUNARG-проблема
Изобретено и реализовано оригинальное эффективное решение FUNARG-проблемы, заключающееся в особой разметке
![FUNARG-проблема Изобретено и реализовано оригинальное эффективное решение FUNARG-проблемы, заключающееся в особой разметке](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-14.jpg)
областей действия переменных в ассоциативном списке
Слайд 16Фольклор
На Ростовской молодежной Школе системного программирования (Мелиховка) в 1970 году в
![Фольклор На Ростовской молодежной Школе системного программирования (Мелиховка) в 1970 году в стенгазете отмечен «Лавровый Лисп».](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-15.jpg)
стенгазете отмечен «Лавровый Лисп».
Слайд 17Судьба Лиспа в России
весьма волновала С.С. Лаврова
подготовил серию статей, адресованных старшеклассникам, для
![Судьба Лиспа в России весьма волновала С.С. Лаврова подготовил серию статей, адресованных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-16.jpg)
журнала «Компьютерные инструменты в образовании»
реализовал новую учебную систему на Паскале
Слайд 18ЛИСП – БЭСМ-6 (ВЦ СО АН СССР)
Начатая в 1967 году первая версия
![ЛИСП – БЭСМ-6 (ВЦ СО АН СССР) Начатая в 1967 году первая](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-17.jpg)
реализации Лисп-интерпретатора в Новосибирске, была прервана из-за несовершенства исходных решений (реализация хэш-таблицы атомов оказалась неприспособленной к удалению объектов).
Слайд 19Вторая версия реализации полного Lisp 1.5
Для производительного варианта был реализован специальный
![Вторая версия реализации полного Lisp 1.5 Для производительного варианта был реализован специальный](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-18.jpg)
механизм контроля стека с выгрузкой во внешнюю память.
Для производительного варианта был реализован специальный механизм контроля стека с выгрузкой во внешнюю память.
Слайд 20Руссификация
КАР, КДР, КОНС, СОВП, АТОМ,
ЛАМБДА, МЕТКА, КАВЫЧ, УСЛ,
![Руссификация КАР, КДР, КОНС, СОВП, АТОМ, ЛАМБДА, МЕТКА, КАВЫЧ, УСЛ, ФУНК, НИЛ,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-19.jpg)
ФУНК,
НИЛ, И, Л, ИНТЕРП, ЧТЕНИЕ, ПЕЧАТЬ, ПЕЧ0, ПЕЧФ, СПИСОК, НИЛС,
ДЛИНА, ДОСТ, ЗНАЧ,
ПОДПР, СВЫР, СПЕЦВЫР, СПЕЦПОЛПР,
ОШИБКА, РЕЖИМ, СБОЙ, КОНЕЦ, …)
Слайд 21Стандартизация языка Lisp
Раскол между сторонниками академических (Lisp-1) и производственных (Lisp-2) диалектов
(fn a1 a2 … ) ;;
![Стандартизация языка Lisp Раскол между сторонниками академических (Lisp-1) и производственных (Lisp-2) диалектов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-20.jpg)
Scheme
(FUNCALL fn a1 a2 …) ;; Common Lisp
Слайд 22Другие
MuLisp
Interlisp
AutoLisp
GNU Clisp
CMUCL
![Другие MuLisp Interlisp AutoLisp GNU Clisp CMUCL](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-21.jpg)
Слайд 23Новые реализации
Дмитрий Иванов и Арсений Слободюк реализовали (ок. 500 функций) учебное подмножество
![Новые реализации Дмитрий Иванов и Арсений Слободюк реализовали (ок. 500 функций) учебное](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-22.jpg)
языка Common Lisp, соответствующее стандарту X3J13
Б.Л. Файфель создал систему HomeLisp, обеспечивающую Windows-интерфейс, средства машинной графики, COM-объекты и BLOB-объекты, WEB-компоненты, т.е. все, к чему привык программист, воспитанный на Visual Studio и Delphi
Слайд 24«Зная Лисп, легко понимать
любые языки программирования»
Хендерсон П Функциональное программирование М.: Мир, 1983
![«Зная Лисп, легко понимать любые языки программирования» Хендерсон П Функциональное программирование М.:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/393044/slide-23.jpg)
- в переводе Л.Т. Петровой
В предисловии к этой книге А.П. Ершов утверждает, что «понять и принять функциональное программирование легче, если рассматривать задачу программирования в ее полном контексте, начиная со спецификации задачи и логического анализа ее разрешимости, побочным продуктом которого является сама программа».