Клэр (язык программирования) - Claire (programming language)
Парадигма | мультипарадигма : функциональная , объектно-ориентированная (на основе классов ), обработка правил , рефлексивная |
---|---|
Разработано | Ив Казо |
Впервые появился | 1994 г. |
Стабильный выпуск | 3.3.46 / 17 февраля 2009 г .
|
Печатная дисциплина | сильный , как статический, так и динамический |
Операционные системы | Кроссплатформенность |
Лицензия | Разрешающая лицензия свободных программ |
Расширения имени файла | .cl |
Интернет сайт | www |
Основные реализации | |
Клэр ( эталонная реализация ), WebClaire | |
Под влиянием | |
Smalltalk , SETL , OPS5 , Lisp , ML , C , LORE, LAURE |
Claire - это функциональный и объектно-ориентированный язык программирования высокого уровня со способностями обработки правил . Он был разработан Ивом Казо в исследовательской лаборатории Bouygues e-Lab и получил окончательное определение в 2004 году.
Клэр обеспечивает:
- простая объектная система с параметрическими классами и методами
- полиморфное и параметрическое функциональное программирование
- производственные правила, вызванные событиями
- версионные снимки состояния всей системы или любой ее части, поддерживающие откат и легкое исследование пространств поиска
- явные отношения между сущностями; например, два объекта могут быть объявлены противоположными друг другу
- первоклассные наборы с удобным синтаксисом для программирования на основе наборов
- выразительная система типов на основе наборов, позволяющая вводить как статическую, так и динамическую типизацию второго порядка
Эталонная реализация Клэр , состоящая из интерпретатора и компилятора, была полностью открыта с выпуском версии 3.3.46 в феврале 2009 года. Другая реализация, WebClaire, коммерчески поддерживается.
Обзор
Claire - это язык программирования общего назначения , который лучше всего подходит для прикладного программного обеспечения, требующего сложного моделирования данных , обработки правил или решения проблем. WebClaire добавляет расширения для более полной интеграции с операционной системой и для программирования веб-приложений .
Хотя Claire может использоваться для полных проектов, он разработан для плавной интеграции с C ++ или Java : программы Claire могут включать в себя код C ++ или Java, а код Claire может быть переведен на C ++ или Java для использования в проектах C ++ или Java.
Ключевой набор функций, которые отличает Claire от других языков программирования, был продиктован опытом решения сложных задач оптимизации. Две функции, которых нет в других смешанных функционально-объектно-ориентированных языках, таких как OCaml , Scala и F # , - это управление версиями и производственные правила .
Версии можно рассматривать как стопку снимков некоторой части системы, которые можно сделать большими (для выразительности) или маленькими (для эффективности) по мере необходимости. Создание и откат версий допускают обратное отслеживание , как в логическом программировании , хотя обратное отслеживание Клэр может охватывать любую определяемую пользователем структуру, а не просто набор логических переменных.
Производственное правило в Claire состоит из события, условия и ответа, которые должны быть оценены, если условие выполнено. Событием может быть любое изменение в слоте объекта или создание экземпляра класса, а ответ сам может инициировать дальнейшие события. Такие производственные правила особенно полезны при описании реактивных алгоритмов, например, для распространения ограничений .
Клэр была создана как преемница LAURE, выразительного, но сложного языка, разработанного Касо в 1980-х годах, который объединил множество парадигм. Предполагалось, что Claire будет легче изучить, чем его предшественник, и не будет накладывать дополнительные расходы на производительность по сравнению с C ++; Таким образом, это намного меньший язык, в котором отсутствуют такие функции, как ограничения и дедуктивные правила, и он ближе к C по духу и синтаксису. Его основными пользователями в промышленности были группы компаний Bouygues и Thales .
пример
Функция для вычисления n- го числа Фибоначчи:
fib(n:integer) : integer -> (if (n < 2) 1 else fib(n - 1) + fib(n - 2))
внешние ссылки
- Официальный сайт
- Последнюю версию Claire и ее документацию можно получить на "языке программирования claire" Yahoo! группа, требующая бесплатной регистрации.
- Документация для Клэр и WebClaire.
- « Введение в язык программирования CLAIRE версии 3.2 » Ива Казо и Франсуа Лабурта.
- « CLAIRE: объединение наборов, поиска и правил для улучшения экспресс-алгоритмов » Ив Касо, Франсуа-Ксавье Жоссе и Франсуа Лабурте (2002). 26-страничный обзор, предназначенный для академической аудитории, с контрольными показателями.