Curry — встраиваемый язык программирования общего назначения, реализующий две парадигмы декларативного программирования — функциональную и логическую. Назван в честь американского учёного Хаскелла Карри.

Curry
Класс языка язык функционального программирования и логический язык программирования[d]
Выпуск
Испытал влияние Haskell и Пролог
Сайт curry-language.org

Заимствования из функционального программирования — вложенные выражения, функции высших порядков, ленивые вычисления; элементы логического программирования — логические переменные, частичные структуры данных, встроенная система поиска. Среди особенностей — использование техник для параллельных систем, таких как параллельное вычисление выражений с синхронизацией по логическим переменным. Также язык предоставляет дополнительные механизмы по сравнению с чистыми языками программирования: по сравнению с функциональными языками — поиск и вычисления по неполным данным, по сравнению с логическими — более эффективный механизм вычислений благодаря детерминизму и вызову по необходимости для функций.

Существует несколько реализаций язык: в PAKCS (Портлендский университет, Ахенский университет, Университет Киля) Curry-программы компилируются в код на Прологе; реализации KiCS и KiCS2 Университета Киля компилируют программы в код на Haskell; реализация MCC Университета Мюнстера обеспечивает компиляцию в машинный код.

СсылкиПравить

  1. https://www-ps.informatik.uni-kiel.de/currywiki/_media/documentation/report.pdf