TRAC(프로그래밍 언어)

TRAC (programming language)
트랙
패러다임범용 매크로 프로세서
설계자캘빈 무어스
첫 등장1964
영향을 받은
매크로 SAP[1]
영향받은
SAM76, ML/I[1]

TRAC(텍스트 계산 및 컴파일용) 언어캘빈 무어스에 의해 1959-1964년 사이에 개발된 프로그래밍 언어로서, L. Peter Deutsch에 의해 1964년에 PDP-1에 처음 구현되었다.[2]컴퓨터 리브에서 테드 넬슨이 추천한 3개의 '제1언어' 중 하나였다.TRAC T64는 무어스가 TRAC T84로 업데이트한 1984년까지 사용되었다.[2]

언어 설명

TRAC는 순전히 텍스트 기반 언어로서 매크로 언어의 일종이다.조립자에게서 발견되는 것과 같은 당시의 특별 매크로 언어와 달리, TRAC는 잘 계획되고 일관되며 많은 의미에서 완성된다.가장 바깥쪽 매크로 수준의 일반적인 암묵적 I/O와는 달리 명시적 입출력 연산자를 가지고 있어, 구식 매크로 언어보다 단순하고 동시에 보다 다용도적이 된다.

TRAC 번호가 자릿수 문자열이라는 점에서도 기존의 매크로 언어와 다른데, 내장("기본") 함수를 통해 정수 산술(최대값에 대한 특정 제한 없음)이 제공된다.논쟁의 여지 없이, 그것의 완전성의 한 측면은 오류의 개념이 파일 공간 부족과 같은 이벤트로 제한되고 통역사의 작업 스토리지보다 긴 문자열의 확장을 요청하는 것이다; 많은 언어에서 불법 작업으로 묘사되는 것은 가능한 모든 경우에 대한 결과(흔히 null 문자열)를 정의함으로써 TRAC에서 처리된다.함수의 인수 문자열 조합

TRAC는 문자 처리 언어로,[3] 문자열 처리 언어라고도 한다.[4]

문자열로서의 문자열에 대한 강조는 매우 강해서 TRAC는 언어 자체의 통사적 역할이나 다른 문자처럼 언어 자체의 통사적 문자를 다루기 위한 메커니즘을 제공하며, 자기 수정 코드는 특별한 기능이라기 보다는 전형적인 TRAC 프로그래밍 기법의 자연스러운 결과의 느낌을 더 가지고 있다.

TRAC는 APL이나 LISP와 같이 표현 지향 언어(더 전형적인 절차 지향 언어와는 대조적으로)이지만, APL과는 달리 연산자가 완전히 부족하다.대부분의 면에서 순기능 프로그래밍의 경우다.

TRAC는 호모이코닉이다.[5][6][7]

TRAC는 LISP와 공통적으로 다양한 수준의 중첩 괄호가 존재하는 구문을 가지고 있다.

TRAC의 주된 영감은 더글러스 매킬로이의 세 논문에서 나왔다.[5][8][9][10]

지적 재산.

무어스는 그 당시 특이하고 선구적인 행동이었던 언어의 정의에 대한 통제를 유지하기 위한 노력으로 TRAC라는 이름을 상표로 표시했다.어느 순간, 그는 TRAC 통역사와 함께 미니 컴퓨터를 납품하는 계약이 그의 권리를 침해했다고 주장하며 DEC를 상대로 한 지적 재산권 침해 소송을 제기했다.퍼스널 컴퓨터 분야의 초창기 간행물 하나인 닥터 도브스 저널 제1호에는 무어스에 대한 독설적 사설이 게재돼 있고, 컴퓨터 언어에 대해 사람들에게 요금을 부과하려는 그의 적극성이 담겨 있다.[11][12]이 명칭은 이후 트락(Trac)이라는 현행 오픈소스 프로젝트 관리 시스템을 포함해 관련성이 없는 정보기술 프로젝트에 여러 차례 사용되어 왔다.

영향과 사용법

TRAC는 나중에 PDP-8, PDP-10PDP-11에 구현되었다.

TRAC에서 영감을 받은 다양한 언어가 있다.무어와의 문제를 피하기 위해 원시 형성의 이름을 바꾸거나 다른 메타카락터를 사용했다.SAM76의 경우, "TRAC가 베이비 토크이기 때문"이라고 클로드 카간에 따르면, 원시성이 추가되었다.MINT의 경우, 고급 텍스트 편집기 기계에 접근할 수 있도록 원형을 추가했다.

  • TRAC의 단점 중 하나는 완전한 확장성의 결여였다. 일부 TRAC 원시 함수는 null (0 문자) 인수와 존재하지 않는 (비지연) 인수 간의 구분에 민감하지만, 마지막 Null 인수 이외의 사용자 정의 함수는 구분을 할 수 없다.SAM76은 그러한 한계를 없앤 TRAC와 같은 언어였다.
  • 러스 넬슨은 MINT(MINT Is Not TRAC)라는 이름의 이맥스 확장 언어를 구현했다.이 언어는 FreeDOS 편집자 FreeMACS가 사용한다.

TRAC는 FTP Software의 PC/TCP 제품에서 모뎀 다이얼러 스크립팅 언어로 사용되었다.

TRAC는 또한 The Last Starfighter를 포함한 영화들을 위해 Digital Productions Cray 렌더러의 프런트 엔드로 사용되었다.

예제 프로그램

피보나치 숫자를 계산하는 TRAC T84 스크립트:[13]

:(s,lauso, (ei,<1>, 1, 0, (ei,<1>, 2, 1), (aaa, : (리,fibo, : (1>, )), (리,fibo, : (1>,2) ))"" (mw,oo)"

참고 항목

참조

  1. ^ a b "TRAC – A man-machine string manipulating language". HOPL: Online Historical Encyclopaedia of Programming Languages. Archived from the original on August 13, 2009.
  2. ^ a b "Coding Supply — Everything a Programmer Needs". Archived from the original on 2001-04-08.
  3. ^ 데이비드 월든."Macro Memorys, 1964–2013" 2014.
  4. ^ 캐롤 롭 미르 "4개 프로그래밍 언어로 된 문자열 처리 비교" 1972.
  5. ^ a b Mooers, C.N.; Deutsch, L.P. (1965). "TRAC, A Text-Handling Language". Proceeding ACM '65 Proceedings of the 1965 20th national conference. pp. 229–246. doi:10.1145/800197.806048. S2CID 40013081.
  6. ^ Kay, Alan (1969). The Reactive Engine (PhD). University of Utah.
  7. ^ 클라스 반 셸벤"호모이코닉이라고 하지 마."
  8. ^ 매킬로이, MD, 컴파일러 언어의 매크로 명령 확장.CACM 3, 4위(1960), 214–220.
  9. ^ 이스트우드, D.E., 매킬로이, M.D., SAP의 매크로 컴파일러 수정.벨 전화 연구소 계산 센터, 1959.
  10. ^ M.D. McIlroy, SAP 매크로 지침을 사용하여 기호 표현 조작벨 전화 연구소 계산 센터 (1960)
  11. ^ Mooers, Calvin (22 June 1993). "Oral history interview with Calvin N. Mooers and Charlotte D. Mooers". Charles Babbage Institute.
  12. ^ [1]
  13. ^ The History of Computing ProjectTRAC 정보 페이지에는 C. M. M. M. Moers의 소코드 샘플과 사진이 있다.

외부 링크