Введение

λProlog, также написанный как lambda Prolog, - это логический язык программирования, включающий полиморфный тип, модульное программирование и программирование более высокого порядка. Эти расширения Prolog получены из высокопоставленных наследственных формул Харропа, используемых для обоснования основы λProlog. Количественное определение высшего порядка, просто напечатанные термины λ и унификация высшего порядка дают λProlog основные поддержки, необходимые для захвата синтаксического подхода дерева λ к абстрактному синтаксису высшего порядка, подходу к представлению синтаксиса, который отображает связки уровня объекта с связками языка программирования. Программистам в λProlog не нужно иметь дело с именами связанных переменных: вместо этого доступны различные декларативные устройства для работы с объемом связующих и их инстанциями.

История

С 1986 года λProlog получил многочисленные реализации. По состоянию на 2023 год язык и его реализации все еще активно разрабатываются. Проверка теоремы Абелла была разработана для обеспечения интерактивной среды для доказательства теорем о декларативном ядре λProlog.

Учебные пособия и тексты

Дейл Миллер и Гопалан Надатур написали книгу "Программирование с логикой высшего порядка", опубликованную издательством Cambridge University Press в июне 2012 года. Эми Фелти написала в 1997 году учебник по lambda Prolog и его применению к доказательству теорем. Джон Ханнан написал учебник по анализу программ в lambda Prolog для конференции PLILP 1998 года. Оливье Риду написал "Ламбда Пролог" (англ.) русск. Она доступна в виде PostScript, PDF и html.

Реализация

Компилятор Teyjus λProlog в настоящее время является самой старой реализацией, которая все еще поддерживается. Этот компиляторный проект возглавляет Гопалан Надатур и его коллеги и студенты. ELPI: встраиваемый интерпретатор λProlog был разработан Энрико Тасси и Клаудио Сасердоти Коэном. Он реализован в OCaml и доступен в Интернете. Система описана в статье, которая появилась в LPAR 2015. ELPI также доступен в качестве плагина Coq: см. Учебное пособие Энрико Тасси по этому плагину. Проверкатель Абелла может использоваться для доказательства теорем о программах и спецификациях λProlog.