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