Poplog — это рефлексивная , инкрементально компилируемая интегрированная среда разработки программного обеспечения и системная платформа для языков программирования POP-11 , Common Lisp , Prolog и Standard ML . Первоначально она была создана в Соединенном Королевстве для обучения и исследований в области искусственного интеллекта в Университете Сассекса , а затем была продана как коммерческий пакет для разработки программного обеспечения, обучения и исследований. Это была одна из инициатив, поддерживаемых некоторое время финансируемой правительством Великобритании программой Alvey .
Первоначально он лицензировался с 1982 по 1999 год как проприетарное программное обеспечение , а затем в 1999 году был выпущен как программное обеспечение с открытым исходным кодом под смешанной лицензией MIT , а затем и XFree86 .
После того, как инкрементальный компилятор для Prolog был добавлен к реализации POP-11 , было принято название POPLOG, чтобы отразить, что расширенная система поддерживает программирование на обоих языках. Название было сохранено как торговая марка Университета Сассекса , когда система была позже (середина 1980-х) расширена инкрементальными компиляторами для Common Lisp и Standard ML на основе набора инструментов для реализации новых языков в виртуальной машине Poplog. [1] Доступные пользователю инструменты инкрементального компилятора, которые позволяют добавлять компиляторы для всех этих языков, также позволяют создавать расширения в языке для предоставления новых возможностей, которые нельзя добавить с помощью стандартных макросов, которые просто позволяют новому тексту быть эквивалентным более длинной части старого текста.
Некоторое время после 1983 года Poplog продавался и поддерживался на международном уровне как коммерческий продукт от имени Университета Сассекса компанией Systems Designers Ltd (SDL), название которой менялось вместе со сменой владельца. Основная работа по разработке продолжала выполняться небольшой командой Университета Сассекса до 1998 года, в то время как маркетинг, продажи и поддержка (за исключением академических пользователей Великобритании, которые имели дело напрямую с командой Сассекса) выполнялись SDL и ее преемниками (SD, затем SD-Scicon, затем Electronic Data Systems (EDS) [2] ) до 1991 года. В то время выкуп руководством привел к появлению дочерней компании Integral Solutions Ltd (ISL) для продажи и поддержки Poplog в сотрудничестве с Университетом Сассекса, который сохранил права на название «Poplog» и отвечал за разработку основного программного обеспечения, пока оно было коммерческим продуктом. В 1992 году ISL и Университет Сассекса выиграли «Smart Award» в знак признания продаж Poplog на сумму 5 миллионов долларов. [3] ISL и ее клиенты использовали Poplog для многих проектов по разработке, особенно для системы добычи данных Clementine от ISL, в основном реализованной в POP-11, с использованием мощных графических инструментов, реализованных также в POP-11, работающей в X Window System . Clementine был настолько успешным, что в 1998 году ISL была куплена SPSS Inc, которая продавала пакет статистики и добычи данных SPSS, для которого им был нужен лучший графический интерфейс, подходящий как для опытных, так и для неопытных пользователей. SPSS не хотела продавать и поддерживать Poplog как таковой, поэтому Poplog затем стал доступен как бесплатный программный пакет с открытым исходным кодом , [4] размещенный в Университете Бирмингема , который также участвовал в разработке после 1991 года. Позже IBM купила SPSS, и Clementine теперь продается и поддерживается как SPSS Modeler . [5]
Основной язык Poplog — POP-11 . Он используется для реализации других языков, все они инкрементально скомпилированы , с интегрированным общим редактором. В версиях Linux/Unix POP-11 обеспечивает поддержку 2-D графики через X.
Poplog поддерживает инкрементально скомпилированные версии Common Lisp , POP-11 , Prolog и Standard ML . Отдельный пакет, реализованный Робином Попплстоуном, поддерживает версию Scheme .
Poplog использовался как для академических исследований и обучения в области искусственного интеллекта, так и для разработки нескольких коммерческих продуктов, помимо Clementine. В 1992 году ISL и Университет Сассекса выиграли премию ICP Million Dollar в знак признания того, что Poplog превысил объем продаж в 5 миллионов долларов США. [6]
POP-11 был впервые реализован на компьютере DEC PDP-11 в 1976 году и был портирован на VAX / VMS в 1980 году. Он стал Poplog около 1982 года. Хотя первые коммерческие продажи были для VAX / VMS, с середины 1980-х годов основная работа по разработке Poplog велась на компьютерах Sun SPARC под управлением Solaris , хотя было продано несколько различных версий, включая версии для HP-UX и 64-разрядную версию Poplog для DEC Alpha под управлением Digital UNIX . Примерно после 1999 года, когда Poplog стал доступен как бесплатный, с открытым исходным кодом, большая часть работы по разработке была сделана над версией для Linux, включая портирование на 64-разрядный Linux. Частичный порт на Mac OS X на PowerPC был сделан в 2005 году.
Существует версия для Windows , изначально разработанная для поддержки Clementine, но графическая подсистема Unix/Linux не работает на Windows Poplog. Версия Clementine для Windows зависела от коммерческого пакета, который поддерживал функциональность X в Windows.
Существует также проект с открытым исходным кодом [7] , целью которого является создание более платформенно-нейтральной версии Poplog, включая Windows. Последняя разработка этого проекта включает компонент веб-сервера для интеграции в приложения Poplog и коллекцию виджетов OpenPoplog для поддержки клиентских пользовательских интерфейсов, работающих в веб-браузере. Более узконаправленный проект Poplog с открытым исходным кодом, ограниченный 64-битной архитектурой AMD64/X86-64, был создан на GitHub Вальдеком Хебишем: [1]. Теперь это основа Poplog версии 16, размещенной в Университете Бирмингема [2].
Дополнительную информацию об истории и функциях Poplog можно найти в записях для POP-2 и POP-11 . Главным архитектором Poplog, ответственным за многие инновации, связанные с созданием переносимой инкрементально компилируемой системы и предоставлением поддержки для набора языков, был Джон Гибсон из Университета Сассекса, хотя самая ранняя работа была проделана Стивом Харди. Крис Меллиш помог с первоначальной реализацией Prolog в POP-11. Джон Уильямс, работая под руководством Джонатана Каннингема, реализовал подсистему Common Lisp. Роберт Дункан и Саймон Николс добавили Standard ML. Примерно между 1980 и 1991 годами проектом руководил Аарон Сломан , пока он не перешел в Университет Бирмингема , хотя он продолжал сотрудничать с Сассексом и ISL по разработке Poplog после этого. С 1999 года он отвечал за основной веб-сайт Poplog, а также за некоторые из расширений, которые можно найти там, перечисленные в POP-11.
Подмножество Prolog в Poplog реализовано с использованием расширяемого инкрементального компилятора POP -11 , основного языка Poplog, который является языком общего назначения, подобным Lisp, с более традиционным синтаксисом. Реализация потребовала расширения виртуальной машины Poplog для поддержки продолжений Prolog , переменных Prolog, следа Prolog (записи отменяемых привязок переменных) и терминов Prolog. Реализация была ограничена необходимостью разрешить совместное использование структур данных с другими языками Poplog, особенно POP-11 и Common Lisp , тем самым обеспечивая поддержку смеси стилей программирования.