ПОП-11
![]() | в этой статье Использование внешних ссылок может не соответствовать политике и рекомендациям Википедии . ( декабрь 2021 г. ) |
Парадигма | Мультипарадигмальность : структурированная , рефлексивная , процедурная , функциональная , декларативная. |
---|---|
Семья | Лисп : ПОП |
Разработано | Робин Попплстоун , Стив Харди, Крис Меллиш, Аарон Сломан, Джон Уильямс, Роберт Дункан, Саймон Николс, Джон Гибсон |
Разработчики | Университет Сассекса ООО "Системные дизайнеры" ООО "Интеграл Солюшнс" Университет Бирмингема |
Впервые появился | 1975 год |
Стабильная версия | 16
/ январь 2020 г |
Дисциплина набора текста | динамичный |
Язык реализации | ПОП-11 |
Платформа | PDP-11 , ВАКС , СПАРК , IA-32 , PowerPC , x86-64 |
ТЫ | Кроссплатформенность : VMS , Unix , Linux , Mac OS X , Windows. |
Лицензия | Собственный (1975–1999) С открытым исходным кодом (1999 – настоящее время): MIT – XFree86. |
Веб-сайт | www |
Основные реализации | |
AlphaPop, Basic Pop, Pop-9X, Poplog, Spice | |
Под влиянием | |
ПОП-2 |
POP-11 — это рефлексивный , инкрементно компилируемый язык программирования со многими функциями интерпретируемого языка . Это основной язык Poplog, программирования среды первоначально разработанный Университетом Сассекса , а недавно в Школе компьютерных наук Университета Бирмингема , где размещен основной веб-сайт Poplog.
POP-11 — это развитие языка POP-2 , разработанного в Эдинбургском университете , и отличающееся моделью открытого стека (как ) , например, Forth . Он в основном процедурный , но поддерживает декларативные языковые конструкции, включая средство сопоставления с образцом, и в основном используется для исследований и преподавания в области искусственного интеллекта , хотя имеет функции, достаточные для многих других классов задач. Его часто используют для ознакомления с методами символьного программирования программистам более традиционных языков, таких как Паскаль , которые находят синтаксис POP более знакомым, чем синтаксис Lisp . Одной из особенностей POP-11 является поддержка первоклассных функций .
POP-11 — это основной язык системы Poplog. Доступность компилятора и подпрограмм компилятора во время выполнения (требование для инкрементальной компиляции) дает ему возможность поддерживать гораздо более широкий диапазон расширений (включая расширения времени выполнения, такие как добавление новых типов данных), чем это было бы возможно. используя только макросы . Это позволило добавить (необязательные) инкрементальные компиляторы для Prolog , Common Lisp и Standard ML , которые можно было добавлять по мере необходимости для поддержки либо разработки на смешанном языке, либо разработки на втором языке без использования каких-либо конструкций POP-11. Это позволило использовать Poplog преподавателям, исследователям и разработчикам, которых интересовал только один из языков. Самым успешным продуктом, разработанным в POP-11, была система интеллектуального анализа данных Clementine , разработанная ISL. После того, как SPSS купила ISL, они переименовали Clementine в SPSS Modeler и решили портировать его на C++ и Java , и в конечном итоге это удалось с большими усилиями и, возможно, с некоторой потерей гибкости, обеспечиваемой использованием языка искусственного интеллекта.
POP-11 какое-то время был доступен только как часть дорогого коммерческого пакета (Poplog), но примерно с 1999 года он был доступен бесплатно как часть с открытым исходным кодом версии программного обеспечения Poplog , включая различные дополнительные пакеты и обучающие библиотеки . Онлайн-версия ELIZA с использованием POP-11 доступна в Бирмингеме.
В Университете Сассекса Дэвид Янг использовал POP-11 в сочетании с C и Fortran для разработки набора инструментов обучения и интерактивной разработки для обработки изображений и зрения и сделал их доступными в расширении Popvision для Poplog.
Простые примеры кода [ править ]
Вот пример простой программы POP-11:
define Double(Source) -> Result; Source*2 -> Result; enddefine;
Double(123) =>
Это распечатывает:
** 246
Этот включает в себя некоторую обработку списка:
define RemoveElementsMatching(Element, Source) -> Result; lvars Index; [[% for Index in Source do unless Index = Element or Index matches Element then Index; endunless; endfor; %]] -> Result; enddefine; RemoveElementsMatching("the", [[the cat sat on the mat]]) => ;;; outputs [[cat sat on mat]] RemoveElementsMatching("the", [[the cat] [sat on] the mat]) => ;;; outputs [[the cat] [sat on] mat] RemoveElementsMatching([[= cat]], [[the cat]] is a [[big cat]]) => ;;; outputs [[is a]]
Примеры использования средства сопоставления шаблонов POP-11, которое позволяет студентам относительно легко научиться разрабатывать сложные программы обработки списков без необходимости рассматривать шаблоны как древовидные структуры, к которым обращаются функции «голова» и «хвост» (CAR и CDR в Lisp). , можно найти во вводном онлайн-руководстве . Сопоставитель находится в центре набор инструментов SimAgent (sim_agent) . Некоторые из мощных функций набора инструментов, такие как связывание переменных шаблона с переменными встроенного кода, было бы очень сложно реализовать без средств инкрементального компилятора.
См. также [ править ]
- Язык программирования COWSEL (он же POP-1)
Ссылки [ править ]
- Р. Берстолл, А. Коллинз и Р. Попплстоун , Программирование в издательстве Pop-2 University Press, Эдинбург, 1968 г.
- DJM Дэвис, Руководство пользователя POP-10 , Отчет по компьютерным наукам № 25, Университет Западного Онтарио, 1976 г.
- С. Харди и К. Меллиш, «Интеграция Пролога в среду Poplog», в «Реализациях Пролога» , под ред. Дж. А. Кэмпбелла, Wiley, Нью-Йорк, 1983, стр. 147–162.
- Р. Барретт, А. Рамзи и А. Сломан, POP-11: практический язык искусственного интеллекта , Эллис Хорвуд, Чичестер, 1985 г.
- М. Бертон и Н. Шедболт, Программирование POP-11 для искусственного интеллекта , Аддисон-Уэсли, 1987 г.
- Дж. Лавентол, Программирование в POP-11 , Blackwell Scientific Publications Ltd., 1987 г.
- Р. Барретт и А. Рамзи, Искусственный интеллект на практике: примеры в Pop-11 , Эллис Хорвуд, Чичестер, 1987.
- М. Шарплс и др., Компьютеры и мысль , MIT Press, 1987. (Введение в когнитивную науку с использованием Pop-11. Интернет-версия, упомянутая выше.)
- Джеймс Андерсон, редактор, Pop-11 достигает совершеннолетия: развитие языка программирования искусственного интеллекта , Эллис Хорвуд, Чичестер, 1989 г.
- Г. Газдар и К. Меллиш, Обработка естественного языка в Pop11/Prolog/Lisp , Аддисон Уэсли, 1989. ( читать онлайн )
- Р. Смит, А. Сломан и Дж. Гибсон, Двухуровневая поддержка виртуальных машин POPLOG для интерактивных языков, в «Направлениях исследований в когнитивной науке», том 5: Искусственный интеллект , под ред. Д. Слиман и Н. Бернсен, Lawrence Erlbaum Associates, стр. 203–231, 1992 г. (Доступно как отчет 153 исследования когнитивных наук, Школа информатики, Университет Сассекса).
- Крис Торнтон и Бенедикт дю Буле, Искусственный интеллект посредством поиска , Kluwer Academic (версия Intellect Books в мягкой обложке), Дордрехт, Нидерланды и Норвелл, Массачусетс, США (Intellect в Оксфорде), 1992.
- А. Сломан, Pop-11 Primer , 1999 (третье издание)
Внешние ссылки [ править ]
- Официальный сайт , бесплатный портал Poplog
- GetPoplog на GitHub
- Информация об учебных материалах POP-11
- Веб-сайт Poplog.org (включая частичное зеркало веб-сайта Free poplog) (в настоящее время несуществующий: см. его более позднюю копию (17 июня 2008 г.) @ Internet Archive Wayback Machine )
- Обзор POP-11 (Букварь для опытных программистов) (альтернативный PDF-файл )
- Вальдек Хебиш подготовил небольшую коллекцию примеров программирования в Pop-11, показывающих, как его можно использовать для манипуляций с символами, числовых вычислений, логики и математики.
- «Практическое введение в искусственный интеллект» Компьютеры и мысль: онлайн-книга , знакомящая с когнитивной наукой через Pop-11.
- Проект SourceForge OpenPoplog.
- Набор инструментов SimAgent (sim_agent)
- Pop-11 Элиза в системе поплога . Учебник по Элизе
- История преподавания ИИ в Pop-11 примерно с 1976 года.
- 2-D (X) графика в Pop-11
- Объектный класс — расширение объектно-ориентированного программирования для Pop-11 (частично созданное по образцу CLOS и поддерживающее множественное наследование ).
- Учебное пособие по объектно-ориентированному программированию в Pop-11.
- Дальнейшие ссылки
- Интернет-документация по Pop-11 и Poplog
- Онлайн-документация системы, включая информацию о переносе
- Запись на Pop-11 на веб-сайте HOPL (История языков программирования)