클레어(프로그래밍 언어)

Claire (programming language)
클레어.
패러다임멀티패키지: 기능성, 객체 지향(클래스 베이스), 규칙 처리, 리플렉스
설계자이브 카세우
처음 등장한1994년(1994년)
안정된 릴리스
3.3.46 / 2009년 2월 17일, 13년 전(2009-02-17)
타이핑 분야Static과 Dynamic의 양쪽있는 Strong
OS크로스 플랫폼
면허증.허가된 자유 소프트웨어 라이선스
파일 이름 확장자.cl
웹 사이트www.claire-language.com
주요 구현
Claire(참조 구현), WebClaire
영향을 받다
Smalltalk, SETL, OPS5, Lisp, ML, C, LORE, LORE

Claire고도의 기능성 및 객체 지향 프로그래밍 언어로 규칙 처리 능력을 갖추고 있습니다.Bouygues의 e-Lab 연구소의 이브 카소(Yves Caseau)에 의해 설계되었으며 2004년에 최종 정의를 받았다.

Claire는 다음을 제공합니다.

  • 파라메트릭 클래스와 메서드를 가진 단순한 객체 시스템
  • 다형파라메트릭 함수 프로그래밍
  • 이벤트의해 트리거된 프로덕션 규칙
  • 시스템 전체 또는 모든 부분의 상태 버전 스냅샷으로 롤백 및 검색 공간 탐사를 지원합니다.
  • 엔티티 간의 명시적 관계. 예를 들어, 두 엔티티가 서로 반대라고 선언될 수 있습니다.
  • 집합 기반 프로그래밍을 위한 편리한 구문을 갖춘 1등급 세트
  • 2차 정적 타이핑과 동적 타이핑을 모두 허용하는 표현식 집합 기반 타이핑 시스템

인터프리터와 컴파일러로 구성된 Claire의 레퍼런스 실장은 2009년 2월에 버전 3.3.46이 출시되면서 완전히 오픈 소싱되었습니다.또 다른 구현인 WebClaire는 상업적으로 지원됩니다.

개요

Claire는 범용 프로그래밍 언어로 정교한 데이터 모델링, 규칙 처리 또는 문제 해결이 필요한 애플리케이션 소프트웨어에 가장 적합합니다.WebClaire는 운영 체제와의 완벽한 통합 및 웹 애플리케이션 프로그래밍을 위한 확장을 추가합니다.

Claire는 완전한 프로젝트에 사용할 수 있지만 C++ 또는 Java와 원활하게 통합되도록 설계되어 있습니다.Claire 프로그램은 C++ 또는 Java 코드를 포함할 수 있으며 Claire 코드는 C++ 또는 Java 프로젝트에서 사용하기 위해 C+ 또는 Java로 변환될 수 있습니다.

클레어를 다른 프로그래밍 언어와 구별하는 주요 기능 세트는 복잡한 최적화 문제를 해결한 경험에 의해 결정됩니다.OCaml, Scala, F# 등 다른 기능/개체 지향 언어에서는 찾을 수 없는 두 가지 기능은 버전 관리 규칙과 프로덕션 규칙입니다.

버전은 시스템 일부의 스냅샷 스택으로 볼 수 있으며, 필요에 따라 (표현성을 위해) 크거나 (효율성을 위해) 작게 만들 수 있습니다.버전의 작성과 롤백은 논리 프로그래밍에서 볼 수 있듯이 역추적을 허용하지만 Claire의 역추적에는 논리 변수 집합이 아닌 사용자 정의 구조가 포함될 수 있습니다.

Claire의 생산 규칙은 해당 조건이 충족될 경우 평가할 이벤트, 조건 및 응답으로 구성됩니다.이벤트는 오브젝트 슬롯의 변경이나 클래스의 인스턴스화일 수 있으며 응답 자체가 추가 이벤트를 발생시킬 수 있습니다.이러한 생산 규칙은 제약 조건 전파와 같은 반응형 알고리즘을 기술할 때 특히 유용합니다.

클레어는 1980년대에 Caseau가 고안한 표현력이 뛰어나지만 복잡한 언어인 LORE의 후계자로 만들어졌다.Claire는 이전 버전보다 배우기 쉽고 C++에 비해 퍼포먼스 오버헤드를 부과하지 않기 위해 고안되었습니다.따라서 이 언어는 훨씬 작은 언어로 제약이나 연역 규칙 등의 특징을 생략하고 정신이나 구문 면에서 C에 가깝습니다.업계의 주요 사용자는 BouyguesThales 그룹이었다.

n번째 피보나치 수를 계산하는 함수:

fib(n:signer) : integer -> (n < 2) 1의 경우 fib(n - 1) + fib(n - 2))

외부 링크