PILOT
프로그램된 질의, 학습 또는 교수(Programmed Inquiry, Learning, or Teaching, PILOT)는 1960년대에 개발된 단순한 고급 프로그래밍 언어이다.[1] 형제 격인 LOGO와 마찬가지로, 이 언어는 컴퓨터 보조 수업 기술에 대한 초기 시도로 개발되었다.
PILOT은 기본 구성과 구조 면에서 BASIC 및 FORTRAN과 유사한 명령형 언어이다. 명령어는 한 글자로 되어 있는데, 예를 들어 텍스트를 출력하는 "type"의 경우 T를 사용하고, 사용자로부터 값을 입력받는 "accept"의 경우 A를 사용한다.
역사
[편집]1960년부터 캘리포니아 대학교 샌프란시스코(UCSF) 의료 센터의 심리학 교수인 존 암스덴 스타크웨더는 컴퓨터 문답 테스트 작성을 자동화하기 위한 간단한 시스템을 개발했다. 마린군의 밀러 크리크 초등학교 학구와 협력하여, 1962년에는 IBM 1620에서 작동하는 시스템을 완성하고 COMPUTEST라는 이름을 붙였다.[2]
UCSF가 IBM 시스템/360 모델 50을 도입하자, 스타크웨더는 1965년 미국 교육부에 추가 개발을 위한 연구비를 신청했다.[3] 이 자금을 사용하여 스타크웨더는 더 많은 기능을 갖춘 확장된 버전의 시스템 개발을 시작했다. 그는 이 버전에 PILOT이라는 새로운 이름을 붙였다. 초기 버전은 1966년에 선보였고, 거의 완성된 버전은 1968년에 출시되었다. 이듬해에는 퍼블릭 도메인으로 공개되었다.[4]
이후 PILOT은 스탠퍼드 연구소(SRI) 교육 연구소의 H. 딘 브라운에 의해 채택되었다. 브라운은 PILOT을 어린이가 직접 사용할 수 있는 언어로 대중화했다. 브라운의 노력으로 이 언어는 교사가 테스트와 교육 자료를 작성하기 위한 용도에서 프로그래밍을 가르치기 위한 용도로 그 성격이 변화했다.[5]
PILOT은 여러 다른 시스템으로 이식되었고, 각 현장에서 다양한 확장과 변경이 이루어졌다. 이로 인해 PYLON이나 NYLON과 같이 서로 호환되지 않는 여러 구현체가 등장했다.[2] 1973년, 스타크웨더는 컴퓨터 보조 교육에 관심이 있는 여러 사람을 모아 기계 독립적인 언어 사양인 PILOT-73을 개발했다. 이식 가능한 하위 집합도 Core PILOT으로 정의되었다. Core는 이후 개인용 컴퓨터로 알려지게 될 인텔 8008 기반 터미널인 데이터포인트 2200으로 이식되었다. 당시 13,000달러라는 가격은 많은 미니컴퓨터보다 비쌌기 때문에 널리 사용되지는 못했다. 그러나 이 이식 버전은 인텔 8080이 시장에 출시되어 저렴한 마이크로컴퓨터가 많이 등장한 이후 매우 유용하게 활용되었다.[3]
1970년대 후반부터 웨스턴 워싱턴 대학교는 이 언어를 Common PILOT으로 확장하기 시작했다. 이는 이후 여러 마이크로컴퓨터 변형의 기반이 되었다. 프로세서 테크놀로지는 자사의 Sol-20용 버전을 개발했으나 출판되기 전에 회사가 폐업했다. 그럼에도 이는 당시 여러 다른 버전에 영감을 주었다. 그중에는 Common을 기반으로 한 CP/M 시스템용 Nevada PILOT이 있었으며, 이는 다시 거북이 그래픽 시스템[2]과 기본적인 사운드 지원[2]을 추가한 아타리 PILOT의 기반이 되었다. 애플 II용 PILOT은 UCSD 파스칼로 작성되었다. 이러한 버전들은 교육용 PILOT 언어의 부활을 이끌었으며, 프로그램이 비디오디스크를 재생하는 등의 작업을 수행할 수 있도록 장치 제어 기능을 추가한 Super PILOT이라는 확장 버전으로 이어졌다.[3]
한동안 이 언어를 IEEE 표준 1154-1991로 통합하려는 노력이 있었으나, 2000년에 중단되었다.[3][6]
언어 통사론
[편집]PILOT 코드 한 줄은 (왼쪽에서 오른쪽으로) 다음과 같은 통사론 요소들을 포함한다:
레이블은 다른 코드 없이 줄에 단독으로 올 수도 있다. 레이블의 구문은 별표 뒤에 식별자(영문자로 시작하는 영숫자 문자열)가 오는 형태이다.
명령 문자
[편집]다음 명령어들은 "핵심 PILOT"에서 사용된다. "R:"로 시작하는 줄은 그 뒤에 오는 코드를 설명하는 주석을 나타낸다.
R:다음 입력 줄이 현재 accept 버퍼의 내용을 대체함 A: R:다음 입력 줄이 accept 버퍼와 문자열 변수 'FREE'를 대체함 A:$FREE R:다음 3줄의 입력이 문자열 변수 'X', 'Y', 'Z'에 할당됨 A:$X,$Y,$Z R:숫자 입력이 숫자 변수 "Q"에 할당됨 A:#Q
R:#X와 #Y의 산술 평균을 #AM에 할당 C:#AM=(#X+#Y)/2
- D
- 일부 구현체에서 배열의 크기를 지정한다.
- E
- 서브루틴 종료(반환) 또는 (서브루틴 외부일 경우) 프로그램 중단. 항상 피연산자 없이 사용된다.
- J
- 레이블로 점프한다. 예시:
J:*RESTART
- M
- accept 버퍼를 문자열 변수 또는 문자열 리터럴과 대조(Match)한다. 예시:
R:accept 버퍼에서 "TRUTH", MEXICO의 값, "YOUTH"를 순서대로 검색 M:TRUTH,$MEXICO,YOUTH
accept 버퍼의 부분 문자열인 첫 번째 매치 문자열(있을 경우)은 특수 변수 $MATCH에 할당된다. 첫 번째 매치보다 왼쪽의 버퍼 문자들은 $LEFT에, 오른쪽의 문자들은 $RIGHT에 할당된다.
매치 플래그는 매치가 이루어졌는지 여부에 따라 'yes' 또는 'no'로 설정된다. 명령 문자 뒤에 Y가 붙은 모든 문장은 매치 플래그가 설정된 경우에만 처리된다. N이 붙은 문장은 플래그가 설정되지 않은 경우에만 처리된다.
- N
- TN:과 동일 (마지막 매치가 실패했을 경우 출력)
- R
- R:의 피연산자는 주석이며, 따라서 아무런 영향을 미치지 않는다.
- T
- 피연산자를 출력("Type")한다. 예시:
R:다음 줄은 리터럴 문자열을 출력함 T:Thank you for your support. R:다음 줄은 리터럴 문자열과 변수 식을 결합함 T:Thank you, $NAME.
- U
- 서브루틴을 호출(Use)한다. 서브루틴은 레이블로 시작하여 E:로 끝난다. 예시:
R:레이블 *INITIALIZE에서 시작하는 서브루틴 호출 U:*INITIALIZE
- Y
- TY:와 동일 (마지막 매치가 성공했을 경우 출력)
- 괄호
- 문장에 괄호로 묶인 식이 있다면 이는 조건식이며, 테스트 결과가 '참'일 경우에만 문장이 처리된다. 예시:
R:x>y+z일 경우 메시지 출력 T(#X>#Y+#Z):Condition met
파생 언어
[편집]핵심 PILOT에 대한 확장 기능으로는 애플 II용 Apple PILOT의 배열 및 부동소수점 수 지원, 아타리 8비트 제품군용 아타리 PILOT의 LOGO에서 영감을 받은 거북이 그래픽 등이 있다.[7]
1979년에서 1983년 사이, 영국 머지사이드 위럴 그래머 스쿨의 교사인 알렉 우드가 UK PILOT 사용자 그룹을 운영했다. 당시 마이크로컴퓨터를 위한 미니 PILOT의 여러 기계어 버전이 제작되었으며, 스코틀랜드의 한 학교에서는 학생들이 마을 곳곳의 발자국을 따라다니며 독일어, 프랑스어 등으로 묻고 답하는 인터랙티브 외국어 튜토리얼을 개발하기도 했다. 1979년 12월호 Computer Age 잡지에서는 Tiny Pilot이라는 초기 구현체를 다루며 전체 기계어 목록을 제공했다.
베이직 인터프리터를 사용하여 작성된 PILOT 버전들도 1970년대와 1980년대 초에 출시되었다. 1973년 4월호 피플스 컴퓨터 컴퍼니 뉴스레터에는 HP 2100 시스템용 HP 시분할 베이직으로 작성된 시스템이 포함되었다.[8] PETPILOT(코모도어 PET용 PILOT)은 코모도어 제품이 아닌 PET용 최초의 언어였으며, 빌 게이츠의 약간의 도움을 받아 PET과 함께 제공된 마이크로소프트 베이직으로 작성되었다. 1979년 데이브 곰버그가 제작했으며, (출시되지 않은) 4K PET에서 실행될 수 있었고 코모도어가 출시한 8K PET에서는 원활하게 작동했다. 이는 래리 테슬러의 거실에서 PET 시리얼 번호 2번 기기로 작성되었다. 1978년, 바이트 매거진은 래리 케리어티가 개발한, 튜링 완전하지 않은 PILOT 파생 언어 Waduzitdo를 게재했다.[9][10]
1981년 아타리 8비트 제품군용으로 롬 카트리지 형태로 출시된 아타리 PILOT은 거북이 그래픽과 사운드 지원을 추가했다.[11] 이 지침들은 두 글자 명령어를 사용했다. 아타리는 1980년대 초에 운영한 컴퓨터 캠프에서 자사의 주요 언어 중 하나로 PILOT을 사용했다.[12] 클락슨 공과대학교는 1983년 제니스 Z-100용 ZPILOT을 개발했다.[13]
1983년 코모도어 64용 Vanilla PILOT 또한 거북이 그래픽을 추가했으며,[14] COMPUTE! 잡지 1987년 10월호에 타입인 리스팅으로 게재된 Super Turtle PILOT도 마찬가지였다.[15]
1991년 전기전자공학자협회(IEEE)는 PILOT에 대한 표준으로 IEEE Std 1154-1991을 발표했다. 이 표준은 이후 철회되었다.[16] 이를 기반으로 한 참조 구현이 에릭 레이먼드에 의해 구현되었으며, 이후 15년 동안 마지못해 유지 관리되었다.[17]
1990년 아타리 ST 컴퓨터용 eSTeem PILOT이 교육학 박사 톰 닐슨에 의해 개발 및 프로그래밍되었다. IEEE PILOT 표준을 기반으로 하며, 레이저디스크 및 CD-ROM 장치 제어와 같은 아타리 전용 기능을 포함했다.[18]
2018년에는 IEEE 표준을 일부 기반으로 한 취미용 구현체 psPILOT이 마이크로소프트의 파워셸 스크립팅 언어를 사용하여 구현되었다.[19]
각주
[편집]- ↑ Rob Linwood. “PILOT Resource Center”. 《Sourceforge project》. 2011년 10월 13일에 확인함.
- 1 2 3 4 《IEEE Standard for Programmed Inquiry, Learning, or Teaching (PILOT)》 (기술 보고서). IEEE. 1991년 8월 22일. doi:10.1109/IEEESTD.1991.108548. ISBN 978-0-7381-1184-1.
- 1 2 3 4 “PILOT”. 《EDM2》. 2022년 11월 4일.
- ↑ Xiuzhi Zhou (1998). “Register of the John A. Starkweather Papers, 1965-1985”. University of California, San Francisco library. 2011년 10월 13일에 확인함.
- ↑ 《Student Pilot》 (PDF). Atari. 1981.
- ↑ “IEEE 1154-1991: IEEE Standard for Programmed Inquiry, Learning, or Teaching (PILOT)”. 《IEEE》.
- ↑ Jim Conlan, Tracy Deliman (1983). 《Atari PILOT for beginners》. Reston Publishing. ISBN 9780835903028.
- ↑ “PILOT '73”. 《People's Computer Company》. April 1973. 11–17쪽.
- ↑ Brian Connors (2001년 4월 6일). “Waduzitdo 2001”. 2011년 10월 13일에 확인함.
- ↑ Larry Kheriarty (September 1978). “WADUZITDO: How To Write a Language in 256 Words or Less”. 《Byte》.
- ↑ “Atari PILOT”. 《Atari Mania》.
- ↑ “Atari Computer Camps” (PDF).
- ↑ Zimmerman, Frederick (March–April 1984). “A Z100 on Every Desk: Clarkson College” (영어). 《Sextant》. 9호. 8–14쪽. 2026년 2월 12일에 확인함.
- ↑ “Vanilla PILOT, PILOT that comes with turtle graphics”. 《Infoworld》. 1983년 9월 12일. 67–69면. 2011년 10월 13일에 확인함.
- ↑ Atarimagazines.com - COMPUTE! Issue 89, October 1987, p74
- ↑ 《IEEE Standard 1154-1991 for Programmed Inquiry, Learning, or Teaching (PILOT)》. IEEE Standards Committee. 1991. doi:10.1109/IEEESTD.1991.108548. ISBN 0-7381-1184-8. 2000년 3월 11일에 원본 문서에서 보존된 문서.
- ↑ “Twenty years after”. 2016년 9월 27일.
- ↑ “Press Release: eSTeem PILOT”.
- ↑ “psPilot”. 《깃허브》.
더 읽어보기
[편집]- John Starkweather (1985). 《User's guide to Pilot》. Prentice-Hall. ISBN 978-0-13-937755-6.