러스터 (프로그래밍 언어)

러스터(Lustre)는 반응형 시스템 프로그래밍을 위한 정형적으로 정의된, 선언형, 동기 데이터플로 프로그래밍 언어이다. 1980년대 초 연구 프로젝트로 시작되었다. 이 언어에 대한 공식적인 발표는 1991년 IEEE 회보에 실려 있다. N. Halbwachs et al. The Synchronous Data Flow Programming Language LUSTRE. In Proc. IEEE 1991 Vol. 79, No. 9. Accessed 17 March 2014. 1993년에 에스테렐 테크놀로지스가 개발한 산업 환경 SCADE의 핵심 언어로서 상업 제품에 실제 산업적으로 사용되기 시작했다. 현재는 항공기, 헬리콥터, 원자력 발전소의 중요 제어 소프트웨어에 사용되고 있다.

러스터 프로그램의 구조
러스터 프로그램은 다음과 같이 작성된 일련의 노드 정의이다.
node foo(a : bool) returns (b : bool);
let
  b = not a;
tel
여기서 foo는 노드의 이름이고, a는 이 노드의 단일 입력의 이름이며, b는 단일 출력의 이름이다.
이 예에서 노드 foo는 입력 a의 부정을 반환하며, 이는 예상되는 결과이다.

내부 변수
추가 내부 변수는 다음과 같이 선언할 수 있다.
node Nand(X,Y: bool) returns (Z: bool);
  var U: bool;
let
  U = X and Y;
  Z = not U;
tel
참고: 방정식 순서는 중요하지 않다. U = X and Y; 및 Z = not U; 줄의 순서는 결과를 변경하지 않는다.

특수 연산자
 pre p  이전 주기에서 p의 값을 반환한다 p -> q  p를 표현식 q의 초기 값으로 설정한다

예시

상승 에지 감지
node RisingEdge (X : bool) returns (E : bool);
let
  E = X and not pre X;
tel
하강 에지 감지
node FallingEdge (X : bool) returns (E : bool);
let
  E = not X and pre X;
tel

 같이 보기 
 에스테렐
 SIGNAL (또 다른 데이터플로 지향 동기 언어)

 각주 

 외부 링크 
 Synchrone 랩  공식 웹사이트
 SCADE 제품 페이지

분류:선언형 프로그래밍 언어
분류:하드웨어 기술 언어
분류:정형 기법