Curry

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Curry
Изображение логотипа
Класс языка язык функционального программирования и логический язык программирования[вд]
Выпуск
Испытал влияние Haskell и Пролог
Лицензия модифицированная лицензия BSD[вд]
Сайт curry-language.org (англ.)

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

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

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

Примечания

[править | править код]