TXL(프로그래밍 언어)
TXL (programming language)패러다임 | 패턴 매칭 및 용어 변경 |
---|---|
설계자 | 찰스 할펜-하무 제임스 코디 |
개발자 | 제임스 코디 찰스 할펜-하무 이안 카마이클 에릭 프로미슬로 |
웹 사이트 | www |
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 엔드 함수로 바꿉니다.
「 」를 참조해 주세요.
레퍼런스
- J.R. 코디, CD.Halpern and E. Promislow, 1991년.TXL: 언어 사투리를 프로그래밍하기 위한 신속한 프로토타이핑 시스템.컴퓨터 언어 16,1(1991년 1월), 97-107.
- J.R. 코디, 2006년TXL 소스 변환 언어.컴퓨터 프로그래밍 과학 61,3(2006년 8월), 190-210.