TXL(프로그래밍 언어)

TXL (programming language)
TXL
패러다임패턴 매칭 및 용어 변경
설계자찰스 할펜-하무
제임스 코디
개발자제임스 코디
찰스 할펜-하무
이안 카마이클
에릭 프로미슬로
웹 사이트www.txl.ca

TXL은 1985년 토론토 대학의 Charles Halpern-Hamu와 James Cordy에 의해 설계된 특수 목적 프로그래밍 언어입니다."TXL"이라는 약자는 원래 튜링 프로그래밍 언어의 원래 목적인 변형과 확장의 사양과 신속한 프로토타이핑에서 따온 "Turing eXtender Language"를 의미하지만, 더 이상 의미 있는 해석이 없다.

최신 TXL은 소스 변환을 사용하여 언어 기반 설명, 도구 및 애플리케이션을 생성, 조작 및 신속하게 프로토타이핑할 수 있도록 특별히 설계되었습니다.상위 레벨에서는 1차 함수 프로그래밍을 사용하고 하위 레벨에서는 용어 개서를 사용하는 하이브리드 함수/규칙 기반 언어입니다.TXL의 형식적인 의미론 및 구현형식적인 용어 개서를 기반으로 하지만, 패턴 지정의 예와 같은 스타일로 인해 구조라는 용어는 사용자로부터 대부분 숨겨집니다.

각 TXL 프로그램에는 2개의 컴포넌트가 있습니다.변환되는 소스 구조의 설명으로 확장 Backus-Naur 폼을 사용하여 컨텍스트 프리 문법으로 지정되며, 1차 함수 프로그래밍을 사용하여 조합된 패턴/치환 쌍을 사용하여 지정되는 트리 변환 규칙 세트입니다.TXL은 해석, 응용 프로그램, 순서 및 재작성 규칙의 백트래킹을 프로그래머가 명시적으로 제어할 수 있도록 설계되어 있어 민첩한 해석과 같은 광범위한 문법 기반 기술을 표현할 수 있습니다.

첫 번째 컴포넌트는 패턴 매칭을 사용하여 입력 식을 트리로 해석합니다.두 번째 컴포넌트는 Yacc와 유사한 방법으로 Term-rewrite를 사용하여 변환된 출력을 생성합니다.

TXL은 설계 복구와 같은 소프트웨어 분석 및 리엔지니어링 작업, 새로운 프로그래밍 언어 및 방언의 신속한 프로토타이핑에 가장 일반적으로 사용됩니다.

버블소트[1]

%Syntax 사양 정의 프로그램 [반복 횟수] 종료 정의
%변환규칙의 주 규칙이 $[반복번호] N1 [번호] N2 [번호] Rest [반복번호]N1 [> N2]를 N2 N1 Rest End 규칙으로 바꿉니다.

요인[2]

%Syntax 사양 정의 프로그램 [번호] 종료 정의
%변환 규칙 함수 주 [program] p [number]를 p [fact][fact0] 종료 함수로 바꿉니다.
함수 팩트 치환 [number]n [number] construct n MinusOne [- 1] 여기서 n [> 1] construct fact MinusOne [number]n MinusOne [fact] by n [* factMinusOne] 엔드 함수 팩트 fact0은 0을 1 엔드 함수로 바꿉니다.

「 」를 참조해 주세요.

레퍼런스

외부 링크