WikiDer > ПОП-11

POP-11

ПОП-11 это отражающий, инкрементально скомпилированный язык программирования со многими особенностями интерпретируемый язык. Это основной язык Поплог программирование среда первоначально разработанная Университет Сассекса, а недавно в Школе компьютерных наук Бирмингемский университет, на котором размещен главный сайт Poplog. Теперь есть [1] Github Poplog] сайт с основными исходными файлами.

POP-11 - это эволюция языка ПОП-2, разработанный в Эдинбургский университет, и имеет открытый куча модель (нравится Четвертый, среди другие). Это в основном процедурный, но поддерживает декларативные языковые конструкции, в том числе сопоставление с образцом, и в основном используется для исследований и обучения в искусственный интеллект, хотя его возможностей достаточно для решения многих других классов задач. Он часто используется для ознакомления с методами символического программирования программистам более традиционных языков, таких как Паскаль, которым синтаксис POP более знаком, чем синтаксис Лисп. Одна из особенностей POP-11 заключается в том, что он поддерживает первоклассные функции.

POP-11 - это основной язык системы Poplog. Доступность компилятора и подпрограмм компилятора во время выполнения (требование для инкрементной компиляции) дает ему возможность поддерживать гораздо более широкий диапазон расширений (включая расширения времени выполнения, такие как добавление новых типов данных), чем это было бы возможно. используя только макрос средство. Это сделало возможным добавление (необязательных) дополнительных компиляторов для Пролог, Common Lisp и Стандартный ML, который может быть добавлен по мере необходимости для поддержки разработки на смешанном языке или разработки на втором языке без использования каких-либо конструкций POP-11. Это сделало возможным использование Poplog учителями, исследователями и разработчиками, которых интересовал только один из языков. Самым успешным продуктом, разработанным в POP-11, был Clementine. Сбор данных система, разработанная ISL. После того, как SPSS купила ISL, они решили перенести Clementine на C ++ и Java, и в конце концов добились успеха с большими усилиями (и, возможно, с некоторой потерей гибкости, обеспечиваемой использованием языка AI).

POP-11 какое-то время был доступен только как часть дорогостоящего коммерческого пакета (Poplog), но примерно с 1999 года он был свободно доступен как часть версии Poplog с открытым исходным кодом, включая различные дополнительные пакеты и обучающие библиотеки. Онлайн-версия ELIZA использование POP-11 доступно в Бирмингеме.

В Университете Сассекса Дэвид Янг использовал POP-11 в сочетании с C и Fortran для разработки набора обучающих и интерактивных инструментов разработки для обработки изображений и визуализации и сделал их доступными в расширении Popvision для Poplog.

Примеры простого кода

Вот пример простой программы POP-11:

определить Double (Источник) -> Результат; Источник * 2 -> Результат; enddefine;
Двойной (123) =>

Это распечатывает:

** 246

Это включает некоторую обработку списка:

 определить RemoveElementsMatching (Элемент, Источник) -> Результат; lvars Index; [[% для индекса в источнике делать, если индекс = элемент или индекс не соответствует элементу, то индекс; бесконечный; endfor; %]] -> Результат; enddefine; RemoveElementsMatching ("the", [[кот сел на циновку]]) => ;;; выводит [[кот сел на циновку]] RemoveElementsMatching ("the", [[кот] [сел на] циновку]) => ;;; выводит [[кот] [сидел] мат] RemoveElementsMatching ([[= кошка]], [[кошка]] - [[большая кошка]]) => ;;; выходы [[is a]]

Примеры использования средства сопоставления шаблонов POP-11, которое позволяет студентам относительно легко научиться разрабатывать сложные программы обработки списков без необходимости рассматривать шаблоны как древовидные структуры, к которым имеют доступ функции 'head' и 'tail' (CAR и CDR в Lisp) , можно найти в вводное онлайн-руководство. Матчер лежит в основенабор инструментов SimAgent (sim_agent). Некоторые из мощных функций этого инструментария, такие как связывание переменных шаблона с переменными встроенного кода, было бы очень сложно реализовать без дополнительных средств компилятора.

Смотрите также

  • КОУСЕЛЬ (он же POP-1) язык программирования

Рекомендации

  • Р. Берстолл, А. Коллинз и Р. Попплстоун, Программирование в Pop-2 University Press, Эдинбург, 1968 г.
  • D.J.M. Дэвис, Руководство пользователя POP-10, Отчет по информатике № 25, Университет Западного Онтарио, 1976 г.
  • С. Харди и К. Меллиш, «Интеграция Пролога в среду Poplog», в Реализации Пролога/ Под ред. Я.А. Кэмпбелл, Вили, Нью-Йорк, 1983, стр. 147–162.
  • Р. Барретт, А., Рамзи и А. Сломан, POP-11: практический язык искусственного интеллекта, Эллис Хорвуд, Честер, 1985
  • М. Бертон и Н. Шедболт, POP-11 Программирование для искусственного интеллекта, Аддисон-Уэсли, 1987
  • Дж. Лавентол, Программирование в POP-11, Blackwell Scientific Publications Ltd., 1987 г.
  • Р. Барретт и А. Рамзи, Искусственный интеллект на практике: примеры из Pop-11, Эллис Хорвуд, Честер, 1987.
  • M. Sharples et al., Компьютеры и мысль, MIT Press, 1987. (Введение в когнитивную науку с использованием Pop-11. Онлайн-версия, указанная выше).
  • Джеймс Андерсон, ред., Pop-11 достигает совершеннолетия: развитие языка программирования AI, Эллис Хорвуд, Чичестер, 1989
  • Г. Газдар и К. Меллиш, Обработка естественного языка в Pop11 / Prolog / Lisp, Эддисон Уэсли, 1989. (читать онлайн)
  • Р. Смит, А. Сломан и Дж. Гибсон, поддержка двухуровневых виртуальных машин POPLOG для интерактивных языков, в Направления исследований в области когнитивной науки Том 5: Искусственный интеллект, Ред. Д. Слиман и Н. Бернсен, Lawrence Erlbaum Associates, стр. 203–231, 1992. (Доступен как отчет 153 исследования когнитивных наук, Школа информатики, Университет Сассекса).
  • Крис Торнтон и Бенедикт дю Буле, Искусственный интеллект через поиск, Kluwer Academic (версия в мягкой обложке Intellect Books) Дордрехт, Нидерланды и Норвелл, Массачусетс, США (Интеллект в Оксфорде) 1992.
  • А. Сломан, Поп-11 Праймер, 1999 (Третье издание)

внешняя ссылка