Articulo de referencia

Claire (lenguaje de programación)

.cl "},"implementations":{"wt":"Claire ([[reference implementation]]), WebClaire"},"influenced by":{"wt":"[[Smalltalk]], [[SETL]], [[OPS5]], [[Lisp (programming language)|Lisp]]...

Claire es un lenguaje de programación funcional y orientado a objetos de alto nivel con capacidad para procesar reglas . Fue diseñado por Yves Caseau en el laboratorio de investigación e-Lab de Bouygues y recibió su definición final en 2004.

Claire proporciona:

La implementación de referencia de Claire , que consta de un intérprete y un compilador, se publicó como código abierto en su totalidad con el lanzamiento de la versión 3.3.46 en febrero de 2009. Otra implementación, WebClaire, cuenta con soporte comercial .

Desde 2022, Claire cuenta con una nueva versión de referencia, CLAIRE4, escrita en el lenguaje Go . Dispone de un nuevo sitio web con documentación y ejemplos, además de un repositorio de código abierto en GitHub .

Descripción general

Claire es un lenguaje de programación de propósito general , ideal para aplicaciones que requieren modelado de datos sofisticado , procesamiento de reglas o resolución de problemas. WebClaire añade extensiones para una integración más completa con el sistema operativo y para la programación de aplicaciones web .

Aunque Claire se puede utilizar para proyectos completos, está diseñada para integrarse sin problemas con C++ , Java o Go .

El conjunto clave de características que distingue a Claire de otros lenguajes de programación ha sido determinado por la experiencia en la resolución de problemas de optimización complejos. Dos características que no se encuentran en otros lenguajes mixtos funcionales/orientados a objetos, como OCaml , Scala y F# , son el control de versiones y las reglas de producción .

Las versiones pueden considerarse como una pila de instantáneas de alguna parte del sistema, cuyo tamaño puede ajustarse según sea necesario, ya sea para mayor expresividad o eficiencia. La creación y reversión de versiones permite el retroceso , similar al de la programación lógica , aunque el retroceso de Claire puede abarcar cualquier estructura definida por el usuario, en lugar de limitarse a un conjunto de variables lógicas.

En Claire, una regla de producción se compone de un evento, una condición y una respuesta que se evalúa si se cumple la condición. Un evento puede ser cualquier cambio en la ranura de un objeto o la instanciación de una clase, y una respuesta puede, a su vez, desencadenar otros eventos. Estas reglas de producción son especialmente útiles para describir algoritmos reactivos, como los de propagación de restricciones .

Claire se creó como sucesor de LAURE, un lenguaje expresivo pero complejo diseñado por Caseau en la década de 1980 que combinaba muchos paradigmas. Claire se concibió para ser más fácil de aprender que su predecesor y para no imponer una sobrecarga de rendimiento con respecto a C++; por lo tanto, es un lenguaje mucho más pequeño, que omite características como restricciones y reglas deductivas , y está más cerca de C en espíritu y sintaxis. Sus principales usuarios en la industria han sido los grupos Bouygues y Thales . La nueva versión Claire 4 aporta mejoras en la fiabilidad (gracias a la solidez de Go como lenguaje subyacente) y en el rendimiento del compilador y el intérprete .

Ejemplo

Una función para calcular el enésimo número de la secuencia de Fibonacci :

fib(n:entero) : entero -> (si (n < 2) 1 de lo contrario fib(n - 1) + fib(n - 2))
  • Sitio web oficial
  • Claire4 en GitHub
  • Sitio web específico de Claire4
  • Documentación , Claire, WebClaire
  • " Introducción al lenguaje de programación Claire, versión 3.2 " por Yves Caseau y François Laburthe
  • « Claire: Combinando conjuntos, búsqueda y reglas para expresar mejor los algoritmos », de Yves Caseau, François-Xavier Josset y François Laburthe (2002). Un resumen de 26 páginas, escrito para un público académico, con pruebas comparativas.