Curry | |
---|---|
Класс языка | язык функционального программирования и логический язык программирования[вд] |
Появился в | 1995 |
Разработчик | Кильский университет |
Выпуск | |
Испытал влияние | Haskell и Пролог |
Лицензия | модифицированная лицензия BSD[вд] |
Сайт | curry-language.org (англ.) |
Curry — встраиваемый язык программирования общего назначения, реализующий две парадигмы декларативного программирования — функциональную и логическую. Назван в честь американского учёного Хаскелла Карри.
Заимствования из функционального программирования — вложенные выражения, функции высших порядков, ленивые вычисления; элементы логического программирования — логические переменные, частичные структуры данных, встроенная система поиска. Среди особенностей — использование техник для параллельных систем, таких как параллельное вычисление выражений с синхронизацией по логическим переменным. Также язык предоставляет дополнительные механизмы по сравнению с чистыми языками программирования: по сравнению с функциональными языками — поиск и вычисления по неполным данным, по сравнению с логическими — более эффективный механизм вычислений благодаря детерминизму и вызову по необходимости для функций.
Существует несколько реализаций язык: в PAKCS (Портлендский университет, Ахенский университет, Университет Киля) Curry-программы компилируются в код на Прологе; реализации KiCS и KiCS2 Университета Киля компилируют программы в код на Haskell; реализация MCC Университета Мюнстера обеспечивает компиляцию в машинный код.