리테

Lithe

Lithe는 1982년 Washington 대학의 David Sandberg에 의해 만들어진 실험적인 프로그래밍 언어로 프로그래머가 자유롭게 자신의 구문을 선택할 수 있게 해준다.Lithe는 구문지향 번역과 수업의 개념을 매우 단순하지만 강력한 언어를 만들어 내는 참신한 방식으로 결합합니다.

개요

표준 클래스 베이스 프로그래밍 모델에서는 오브젝트를 조작하는 메커니즘은 지정되어 있지 않습니다.Smalltalk는 메시지 전달을 사용하고 Lithe는 구문 방향 변환(SDT)을 사용합니다.SDT는 문법의 각 규칙에 이러한 액션을 부가함으로써 일련의 액션으로 문자열을 변환하는 방법입니다.따라서 문법의 문자열을 해석하면 일련의 규칙응용 프로그램이 생성됩니다.문법의 비말단 알파벳으로 클래스를 사용하여 SDT를 클래스 모델과 병합합니다.Lithe가 사용하는 문법 클래스는 모든 문맥이 없는 문법을 적절하게 포함하므로 다양한 구문을 기술할 수 있으며 SDT는 이러한 구문에 시멘틱스를 부가하는 간단한 방법을 제공합니다.

패키지는 Lithe의 프로그램 모듈화 단위입니다.패키지는 클래스를 정의하는 부분과 규칙을 정의하는 부분으로 나누어져 있습니다.정보 숨김은 패키지 외부에 표시되는 이러한 규칙과 클래스의 export 키워드를 모두 요구하고 소스 패키지 이름을 컨슈머 패키지의 with 구에 포함시킴으로써 실현됩니다.

Lithe에서의 프로그래밍은 규칙-작업 쌍 및 클래스를 정의하는 것으로 구성됩니다.다음과 같이 숫자의 절대값을 계산하는 작업을 수행합니다.

규칙 " <i:int> " return int; {i <0이면 return - i return i end}

이 규칙과 액션의 쌍을 정의한 후에는 소스코드 내에서 자유롭게 사용할 수 있습니다.예를 들어, 그 후에 다음 식이 유효하게 됩니다.

x - y + 3

BNF의 동등한 규칙은 다음과 같습니다.

<int> ::= " <int> "

Lithe 설명은 BNF의 왼쪽과 오른쪽을 스왑한 후 BNF 오른쪽의 각 비단말기에 이름을 추가합니다.이러한 이름은 액션 부분에서 사용됩니다.액션 부분은 이전에 정의된 다른 규칙-액션 쌍을 사용하여 일련의 액션으로 변환되는 문자열로 표현됩니다(결국 이러한 규칙-액션 쌍 중 일부는 원시 액션을 호출합니다).

외부 링크