튜터
TUTOR패러다임 | 필수(농업) |
---|---|
설계자 | 폴 텐차르와 리처드 블롬[1] |
개발자 | 폴 텐차르와 일리노이 대학교 어바나 샴페인 |
처음 등장한 | 표준 |
타이핑 분야 | 없음. |
주요 구현 | |
튜터, 마이크로 튜터 | |
영향받은 | |
TenCORE, USE (지역 시스템) |
PLATO Author Language라고도 알려진 TUTOR는 대략 1965년부터 시작된 일리노이 대학의 PLATO 시스템에서 사용하기 위해 개발된 프로그래밍 언어입니다.튜터는 처음에 Paul Tenczar에 의해 컴퓨터 지원 명령(CAI) 및 컴퓨터 관리 명령(CMI)에 사용하기 위해 설계되었으며 이를 위한 많은 기능을 갖추고 있습니다.예를 들어 TUTOR에는 강사의 학생 기록 및 통계 처리를 단순화하는 강력한 응답 파싱 및 응답 판단 명령, 그래픽 및 기능이 있습니다.튜터의 유연성과 플라톤의 계산 능력(1972년 슈퍼컴퓨터로 간주되던 것)은 비행 시뮬레이터, 전쟁 게임, 던전 스타일의 멀티플레이어 롤플레잉 게임, 카드 게임, 워드 게임, 벅스 앤 드러그(BND)와 같은 의학 레슨 게임 등 게임 제작에 적합했다.Cyber1 PLATO [2]System의 프로그래밍 언어로 현재 존재합니다.Cyber1 PLATO System은 1980년대 PLATO의 소스 코드 대부분을 실행하고 2020년 6월 현재 약 5000명의 사용자를 보유하고 있습니다.
기원과 개발
TUTOR는 원래 교육 레슨을 설계하기 위한 특수 목적 제작 언어로 개발되었으며, 범용 프로그래밍 언어로 발전하는 것은 계획되지 않았습니다.튜터라는 이름은 플라톤 3세 말기에 플라톤 시스템의 저작 언어에 처음 적용되었다.이 이름으로 된 이 언어의 첫 번째 문서는 R. A. Avner와 P의 The Tutor Manual, CERL Report X-4인 것으로 보인다.1969년 1월 텐차르
Teaching the Turning the Russian Translation by[3] Computer는 PLATO IV가 가동되기 직전부터의 TUTOER의 스냅숏을 제공한다.언어의 핵심 요소가 존재했지만 명령어는 대문자로 표시되었으며 일반적인 메커니즘을 사용하는 대신 다음과 같은 특수 명령어 이름을 통해 대체 문자 집합이 지원되었습니다.WRUSS
"러시아어 문자 집합을 사용하여 쓰기"를 사용합니다.
1970년대까지 TUTOR의 개발자들은 TUTOR 프로그램의 전체 말뭉치가 동일한 컴퓨터 시스템에 온라인에 저장된다는 사실을 이용했다.언어를 변경할 필요가 있다고 느낄 때마다 TUTOR 코드 코퍼스에 변환 소프트웨어를 실행하여 기존 코드를 모두 수정하여 [4]변경 사항을 준수하도록 했습니다.결과적으로, 튜터의 새로운 버전이 개발되면, PLATO 버전과의 호환성을 유지하는 것은 [5]매우 어려울 수 있다.
Control Data Corporation(CDC)은 1981년까지 PLATO 문서에서 TUTOR라는 이름을 대부분 삭제했다.그들은 언어 자체를 플라톤 작가 언어라고 불렀다.그러나 TUTOR 파일 또는 TUTOR 레슨 파일이라는 문구는 PLATO Author [6]Language로 작성된 텍스트를 저장하는 데 사용되는 파일 형식의 이름으로 남아 있습니다.
튜터 수업의 구조
튜터 수업은 각 단위가 정보 제시로 시작하여 한 단원에서 다음 단원으로의 진행이 하나 이상의 질문에 대한 올바른 답변에 좌우되는 일련의 단원으로 구성됩니다.COBOL 단락과 마찬가지로 제어는 선행 유닛에서 다음 유닛으로 들어가지만 유닛은 서브루틴으로 호출할 수도 있습니다.do
또는join
명령어를 지정합니다.
다음은 1973년 3월 튜터 사용자 메모의 5페이지에 있는 예시 단위입니다(University of Illinois at Urbana-Champaign).
205에서 단위 산술 쓰기 3 + 3 = 4 × 3 = 화살표 413 응답 6 화살표 613 응답 12
이 예에서 몇 가지 사항을 즉시 알 수 있어야 합니다.
- 첫째, 튜터는 고정 형식 언어입니다.각 행은 명령어로 시작합니다.명령어 이름은 명령어 이름의 고정8 문자 필드 내에 있어야 합니다.해당 명령어(태그)에 대한 인수는 9번째 문자로 시작합니다.9번째 열에는 탭 키를 사용했지만 플라톤에는 탭 문자가 없어 공백이 생겼다.
- 다음과 같은 경우에 따라서는
write
위의 명령어는 태그가 여러 줄로 구성될 수 있습니다.연속 행이 공백이거나 선행 탭이 있습니다. - 화면 좌표는 단일 번호로 표시되므로 205는 2열 5를, 413은 4열 13을 나타냅니다.
명확하지 않을 수 있는 것은 이 유닛에 내재된 제어 구조입니다.그arrow
명령은 판단 블록의 입구를 표시합니다. 이 제어 구조는 튜터의 고유한 기능 중 하나입니다.
독자적인 기능
튜터에는 여러 가지 고유한 기능이 포함되어 있습니다.다음 목록은 튜터 매뉴얼을 대체하기 위한 것이 아니라 언어의 가장 흥미롭고 혁신적이며 때로는 혼란스러운 기능을 강조하기 위한 것입니다.
답변 판단
TUTOR의 판단 블록은 다음과 같이 시작하는 제어 구조입니다.arrow
명령어와 다음 명령어로 끝납니다.arrow
,endarrow
또는unit
명령어를 입력합니다.그arrow
또한 명령은 지정된 화면 좌표에 프롬프트로 표시되는 특수 화살표 문자("▷"로 표시됨)와 함께 입력을 요청합니다.실제로, 판정 블록은 학생이 정답이 전진할 수 있을 때까지 문제에 대한 답을 여러 번 시도할 수 있는 역추적 제어 구조라고 생각할 수 있다.
판정 패턴 매칭
각 판단 블록은 일련의 패턴 매칭 커맨드로 구성되며, 각 커맨드는 그 패턴이 일치할 경우 실행되는 (아마도 빈) 커맨드 블록을 도입한다.가장 일반적인 패턴 매칭명령어는 다음과 같습니다.answer
그리고.wrong
. 이들은 동일한 패턴 매칭 의미론을 가지고 있었다.answer
일치하는 경우 학생의 반응이 맞다고 판단한 반면,wrong
학생의 반응이 올바르지 않다고 판단했습니다.
의 태그 필드answer
그리고.wrong
명령어는 옵션어, 필수어 및 대체어 목록으로 구성되어 있습니다.1973년 튜터 사용자 메모의 연습 4-1에서 이 예를 고려합니다.
답 <it, is, a, it's, figure, polygon> (오른쪽, rt) (변형, 삼각형)
이것은 "직각 삼각형" 또는 "삼각형 도형" 또는 "rt 삼각형"과 같은 대답과 일치합니다.'sort of triangular'는 'sort of ignored'로 표기되어 있지 않기 때문에 'sort of triangular'와 일치하지 않으며, 순서가 잘못되어 'triangle'과 일치하지 않습니다.
패턴 매칭 하위 시스템이 철자 오류를 인식했기 때문에 "triangel" 또는 "triangl"이라는 단어가 예제 패턴과 일치합니다.이 레슨 작성자는specs
명령어를 사용하여 맞춤법 오류에 대한 시스템의 현학적 수준을 설정합니다.
다양한 TUTOR 구현에서 사용되는 패턴 매칭 알고리즘은 세부적으로 다양했지만 일반적으로 입력 텍스트의 각 단어와 패턴의 각 단어는 비트 벡터로 변환되었습니다.학생 입력 단어가 패턴의 단어와 일치하는지 확인하기 위해 두 비트 벡터 사이의 해밍 거리를 단어 간의 차이 정도를 측정하는 척도로 사용했습니다.비트 벡터의 길이는 보통 60 또는 64비트이며, 문자 존재, 문자 쌍 존재 및 첫 번째 문자를 위한 필드가 있습니다.그 결과, 배타적인 비트 벡터의 1비트수 또는 2개의 비트 벡터의 수는 대응하는 [7]단어간의 발음차이의 정도에 근사했다.
판단 제어 구조
튜터 판정 블록의 제어 구조에 대한 모든 초기 프레젠테이션은 혼란스러웠다.그러나 현대의 용어에서는 판단 블록은 학생의 입력이 올바르다고 판단될 때 종료되는 반복 제어 구조라고 할 수 있다.이 제어 구조의 본문은 다음과 같은 패턴 매칭 명령에 의해 도입되는 일련의 케이스로 구성됩니다.answer
또는wrong
이전 사이클에서 판정 루프 본체에 의해 생성된 모든 출력은 다음 사이클 전에 화면에서 지워집니다.
1973년 튜터 사용자 메모의 연습 4-1에서 이 예를 생각해 보십시오.
1501에서 정사각형이 틀렸다. 정사각형은 네 변이 있다.
학생이 "사각형" 또는 "사각형"을 입력하면 정답이 틀렸다고 판단되어 화면상의 15행 열 1부터 "사각형은 네 변이 있다"라는 텍스트가 출력된다.이 출력은 학생이 새 답을 입력하기 시작할 때까지 화면에 남아 있으며, 이 시점에서 새 답에 대한 응답을 계산할 수 있도록 지워집니다.디스플레이 화면이 이전 상태로 롤백되는 메커니즘은 구현마다 다릅니다.단말기를 소거 모드로 전환하고 일치한 케이스 전체를 재실행함으로써 초기 구현이 동작했습니다.이후 일부 구현에서는 판단 중에 생성된 출력이 버퍼링되어 이 출력이 지워졌습니다.
그join
명령어는 서브루틴 호출의 고유한 형식입니다.이것은 join 명령어 대신 결합된 장치의 본문을 텍스트로 대체한 것과 동등하다고 정의되었다(p.21, 1973 TUTOR 사용자 메모).따라서 결합된 유닛은 판정 블록의 일부를 포함할 수 있습니다.따라서 판정블록은 개념적으로 일련의 케이스를 둘러싼 반복기이지만 이 블록은 임의로 서브루틴으로 분할할 수 있다.(대체 서브루틴 콜은do
다른 프로그래밍 언어의 서브루틴 콜과 관련된 통상적인 의미에 준거한 명령어)
그래픽스 및 디스플레이 명령어
PLATO IV 학생[8] 단말기에는 512x512픽셀 플라즈마 디스플레이 패널이 있으며, 점묘화, 선묘화 및 텍스트 표시를 하드웨어로 지원합니다.PLATO IV 터미널의 각 픽셀은 주황색 또는 검정색이었다.CDC PLATO V 단자는 흑백 CRT를 사용하여 플라즈마 패널을 에뮬레이트했습니다.내장된 문자 집합에는 각각 8x16픽셀로 구성된 63글자 세트가 4세트 포함되어 있으며, 이 중 절반은 고정, 절반은 프로그래밍이 가능합니다.튜터 언어는 이 단말기를 완전히 지원했습니다.
두 개의 좌표계가 있었다(Bruce Sherwood의 튜터 언어 II-1페이지 참조).
- 거친 좌표는 텍스트의 행과 열을 기준으로 지정되었습니다.예를 들어, 거친 좌표 1501은 15행 문자 1을 참조한 것으로, 화면의 왼쪽 상단 문자가 위치 101에 있고 오른쪽 하단 문자가 3264에 있습니다.
- 미세 좌표는 화면의 왼쪽 아래 모서리에 상대적인 X 및 Y 좌표로 지정되었습니다.미세좌표 0,511은 화면의 왼쪽 상단 모서리를 지정했고, 0,496은 거친 101과 같았으며, 이는 글자의 16픽셀 높이와 왼쪽 하단 모서리에 상대적인 글자의 플롯을 허용했다.
그리기 명령어
다음 예제에서는 튜터의 도면 명령 [9]중 일부를 보여 줍니다.
1812;180;180;180;1544 원 16,344,288 드로잉 1837;1537;1535;1633;1833
세미콜론을 사용하여 연속된 좌표를 구분합니다.draw
명령어를 입력합니다.이를 통해 쉼표로 구분된 미세 좌표를 명확하게 사용할 수 있습니다.일반적으로 그리기 명령은 연속된 포인트를 선분(segment)과 연결하지만skip
태그에서draw
개념적으로 펜을 들도록 명령을 내릴 수 있습니다.
의 태그circle
명령은 중앙의 반지름과 미세 좌표를 제공합니다.추가 태그는 부분 원의 시작 및 끝 각도를 지정할 수 있습니다.
손으로 그리기 명령을 작성하는 것은 어렵기 때문에 이 작업을 [10]자동화하기 위해 1974년까지 PLATO 시스템에 그림 편집기가 포함되었습니다.이 경우 좌표가 일정한 도면 명령만 처리할 수 있습니다.
텍스트 렌더링 명령어
다음 예시는 [11]튜터의 텍스트 렌더링 도구 중 일부를 보여 줍니다.
단위 제목 크기 9.5달러 텍스트 9.5배 보통 크기 2519에서 45도 회전 라틴어 크기 0달러 일반 쓰기 0달러 회전 3125에서 0달러 동사 쓰기 레슨
크기 0 회전으로 렌더링된 텍스트는 PLATO 터미널의 내장 문자 렌더링 하드웨어를 사용하는 반면, 크기 0이 아닌 크기 및 회전으로 렌더링된 텍스트는 라인 세그먼트에서 수행되었으며, 따라서 터미널에 대한 통신 링크의 속도 때문에 상당히 느려졌습니다.
제어 구조
고유한 답변 판단 메커니즘을 제외하고, 튜터의 원래 제어 구조는 다소 희박했다.1970년대 중반, 이러한 단점은 다음과 같이 소개됨으로써 해결되었다.if
,endif
블록(옵션)elseif
그리고.else
를 참조해 주세요.이러한 제어 구조의 의미는 일상적이었지만, 구문은 튜터 언어의 필수 들여쓰기를 계승하여 Python의 들여쓰기와 연속 행과 구분하기 위해 공백이 아닌 고유한 들여쓰기를 추가했습니다.
이것은 Elaine Avner, 1981년에 의한 튜터 명령 및 시스템 변수 요약(10번째 ed)의 S5페이지에서 볼 수 있는 다음 예시는 다음과 같다.
n8 < 4 . write first branch . calc n9 34 34 、 n8 = 4 . write second branch . write some unit else . write default branch . n8 > 6 . write special branch . endif .
(의 할당 화살표.calc
일부 브라우저에서는 문이 올바르게 렌더링되지 않습니다.<=>와 비슷하지만 한 글자로 표시됩니다.PLATO IV 키보드에 전용 키가 있었다.)
같은 구문이 에 사용되었습니다.loop
,endloop
기존 프로그래밍 언어의 루프와 유사한 의미론을 가진 블록입니다.이것은 Elaine Avner, 1981년에 의한 튜터 명령 및 시스템 변수 요약(10번째 ed)의 S6페이지에서 볼 수 있는 다음 예시는 다음과 같다.
loop n8 < 10 . write in loop . sub1 n8 reloop n8 55 . write still in loop . something outloop n8 < 3 . write still in loop out outloop outside.
주의:reloop
그리고.outloop
명령어는 어느 정도 유사합니다.continue
그리고.break
C에 근거한 언어의 스테이트먼트(단, 수정하는 루프의 들여쓰기 레벨에 위치해야 하며, 지정된 제어 전송이 이루어지는 시기를 나타내는 조건 태그가 있는 것을 제외).내부 루프의 행은 하나의 문으로 여러 외부 루프를 종단 또는 재루핑할 수 있기 때문에 다른 언어보다 더 강력한 구조를 만듭니다.
식 구문
튜터의 표현 구문은 FORTRAN의 구문을 되돌아보지도 않았고, 그 시대의 서툴게 디자인된 문자 집합에도 제한되지도 않았다.예를 들어, PLATO IV 문자 집합은 첨자 및 윗첨자를 위한 제어 문자를 포함하였고 TUTOR는 이것을 지수에 사용했다.다음 명령을 고려합니다(The Tutor Language, Sherwood, 1974년판 IV-1페이지).
동그라미(41+1/272.62), 1002,200
문자 집합에는 곱셈과 나눗셈을 위한 일반적인 기호도 포함되어 있습니다.×
그리고.÷
단, FORTRAN에 의해 확립된 규약에서 보다 급진적인 탈피에서는 암묵적인 곱셈이 가능했기 때문에 표현식은(4+7)(3+6)
그리고.3.4+5(23-3)/2
값은 각각 99와 15.9로 유효했다(op cit).이 기능은 필수적이라고 생각되었습니다.학생이 질문에 대한 숫자 답을 입력하면 연산자, 변수 및 표준 대수 표기법을 사용할 수 있으며, 프로그램은 TUTOR "compute" 명령을 사용하여 공식을 컴파일 및 실행하여 숫자적으로 정답과 동등(또는 부동 소수점 반올림 오류 내)한지 확인합니다.
언어에는 그리스 문자 pi(θ)로 명명된 사전 정의된 상수가 포함되었으며, 계산에 사용할 수 있는 적절한 값을 가지고 있었다.그래서 표현은πr2
는 삽입 δ 상수, 암묵적 곱셈 및 위 첨자로 나타나는 지수를 사용하여 원의 면적을 계산하는 데 사용할 수 있습니다.
튜터에서 부동소수점 비교x=y
사실로 정의되었다.x
그리고.y
(플라톤 사용자 메모의 C5페이지, Avner의 No.1, 1975 참조)이렇게 수학적으로 순진한 지도 수업 개발자들의 삶은 단순해졌지만, 때때로 수치적으로 정교한 코드 개발자들에게는 골칫거리가 되었다. 왜냐하면 두 가지 모두 가능했기 때문이다.x<y
그리고.x≥y
동시에 [12]사실일 수도 있어요
메모리 관리
저작 언어로서 TUTOR는 최소한의 메모리 리소스와 그것들을 조작하기 위한 가장 형편없는 도구만으로 시작되었습니다.각 사용자 프로세스에는 150개의 변수의 개인 데이터 세그먼트가 있으며 공유 공통 블록을 연결할 수 있어 공유 메모리를 통한 사용자 간 통신이 가능했습니다.
PLATO IV 시스템에서 워드는 CDC 6600 계열의 컴퓨터에 맞춰 60비트였습니다.이후 일부 구현에서는 [13]64비트로 변경되었습니다.
기본 메모리 리소스
각 프로세스의 개인 메모리 영역은 학생 변수라고 불리는 150개의 단어로 구성되었습니다. 이러한 변수의 값은 세션마다 개별 사용자를 따라 영구적입니다.이것들은 다음과 같이 취급되었다.n1
통해.n150
정수값 유지에 사용되는 경우 또는v1
통해.v150
부동 소수점 [14]값을 유지하는 데 사용됩니다.
튜터 레슨에서는 최대 1500단어의 공유 메모리로 구성된 단일 영역을 연결할 수 있습니다.common
명령어를 입력합니다.각 레슨에는 해당 레슨의 모든 사용자가 공유하는 변수를 포함하는 이름 없는 임시 공통 블록이 있을 수 있습니다.이러한 블록은 레슨이 사용되었을 때 생성되었고 레슨이 비활성화되었을 때 할당 해제되었습니다.반면 명명된 공통 블록은 수업 블록(디스크 파일)과 관련지어졌습니다.공유 메모리의 주소는 다음과 같습니다.nc1
통해.nc1500
(정수의 경우) 또는vc1
통해.vc1500
(부동소수점 [15]번호의 경우).
150개의 학생 변수가 불충분한 경우, 레슨에서는storage
명령어를 사용하여 최대 1000단어의 추가 개인 메모리세그먼트를 만듭니다.이 세그먼트는 스왑 공간에만 존재하지만 학생 변수 또는 공통 변수에 매핑할 수 있습니다.예를 들어 (The Tutor Language, Sherwood, 1974년판)의 X-11페이지에서):
공통 1000 스토리지 75 stload vc1001, 1, 75
이 예에서는,nc1
로.nc1000
공유된 이름 없는 공통 블록으로서nc1001
로.nc1075
개인 저장소입니다.
심볼 이름 정의
튜터define
명령어는 C와 매우 유사합니다. #define
preprocessor 디렉티브.이것이 니모닉 이름을 변수에 관련짓는 유일한 방법이었다.메모리를 정적으로 할당하고 변수에 이름을 할당하는 것은 프로그래머의 몫이었다.TUTOR User's Memo -- Introduction to TUTOR, 1973"의 17페이지부터 이 예를 생각해 보십시오.
my names first=v1, second=v2 result=v3를 정의합니다.
그러면 다음과 같은 이름의 정의 세트가 생성됩니다.mynames
3개의 부동소수점 변수를 정의합니다.사용자는 다음과 같이 조언받았습니다. "레슨에는 명령문 자체 외에는 v3 또는 v26이 없어야 합니다.사용하고 있는 변수를 참조할 수 있는 레슨 첫머리에 모든 정의를 기재합니다.(원본, 셔우드, TUTOR Language, 1974년판 IV-5페이지에서 밑줄 긋기)
함수는 다음과 같이 매크로 대체 의미론을 사용하여 정의할 수 있다(The TUTOER Language, Sherwood, 1974년 페이지 IX-2 참조).
cotan(a)=cos(a)/sin(a)을 정의합니다.
C와 달리 TUTOR의 원래 범위 규칙은 로컬 정의에 대한 규정이 없는 순수한 "사용 전 정의"였다.따라서 형식 매개변수는a
위에서 사용한 에는 이전 정의가 없어야 합니다.
TUTOR의 개발의 후반부에서, 복수의 명명된 정의의 집합의 도입과 함께, 프로그래머는 현재 유효한 정의 집합에 대한 명시적인 제어가 주어졌다.예를들면,define purge, setname
는 명명된 [16]집합의 모든 정의를 삭제합니다.
어레이, 패킹 어레이 및 텍스트 조작
텍스트 조작을 위한 원래 TUTOR 도구는 다음과 같은 특정 텍스트 작업을 위한 명령을 기반으로 했습니다.pack
패킹된 문자열을 메모리의 연속 변수에 배치합니다.search
다른 문자열 내에서 검색하기 위해 사용합니다.move
문자열을 [17]메모리에서 메모리로 이동합니다.1975년에는 정수 배열과 패킹 배열에 대한 보다 일반적인 도구가 추가되었습니다.PLATO User's Memo -- TUTOER 명령 및 시스템 변수 요약, Avner, 1975 페이지에는 다음이 나와 있습니다.
세그먼트 정의, 이름=시작 변수, 바이트당 비트 수, s 배열, name(size)=시작 변수 배열, 이름(num 행, num 열)=시작 변수
세그먼트 배열, 키워드로 정의segment
Pascal의 패킹 어레이에 필적합니다.바이트 크기 및 배열 요소를 서명된 것으로 처리할지 또는 서명되지 않은 것으로 처리할지 여부는 전적으로 사용자의 제어 하에 있었습니다.임의의 텍스트 조작은 바이트 크기를 머신 바이트 크기로 설정하고 디스플레이 코드를 사용한 구현에서는 6비트, 이후 ASCII 및 확장 ASCII 구현에서는 8비트를 설정합니다.세그먼트 어레이의 어레이 치수 사양은 없습니다.
매개 변수 전달
일반적인 파라미터 전달 메커니즘은 PLATO IV 시대 초기에 TUTOER에 추가되었다. 셔우드의 TUTOER Language, 1974년 페이지 IV-10은 다음과 같은 예를 제시한다.
define radius=v1,x=v2,y=v3 unit various do halfcirc(100,150,300) * unit halfcirc(50,x,y) 원 반지름, x,y,0,180 그리기 x-circ, y;x+circirc, y
인수목록에 기재되어 있는 형식 파라미터는unit
명령어는 단순히 정적으로 할당된 글로벌 변수의 정의된 이름입니다.매개 변수 전달의 의미는 두 번째와 같이 실제 매개 변수가 생략된 경우, 대상 장치에 대한 제어 전송 시 할당과 동등하게 주어졌습니다.do
위의 명령어는 대응하는 형식 파라미터의 이전 값을 변경하지 않고 그대로 두었습니다.
로컬 변수
1980년경 TUTOR에 지역 변수가 추가되었습니다.지역 변수를 사용하고자 하는 레슨 작성자는 다음을 사용해야 했습니다.lvars
명령어를 사용하여 로컬 변수에 사용되는 버퍼의 크기를 선언합니다(최대 128 단어).[18]이렇게 하면 로컬 변수를 사용하는 단위는 다음과 같이 시작할 수 있다(튜터 명령 및 시스템 변수 요약 C2페이지, Avner, 1981).
유닛 Someu NAME1, NAME2, NAME3(SIZE) NAME4=Unit Someu NAME4: 플로팅:NAME5, NAME6, NAME7(SIZE) 정수, NUM BITS:NAME8, NAME9 정수, NUM BITS, 서명:NAME10 정수:이름11
의 연속선unit
위에 제시된 명령어는 암묵적인 행으로 간주됩니다.define
명령어를 로컬스코프와 함께 사용합니다.다음과 같은 학생 변수의 관점에서 일반적인 정의n150
그런 지역에서 사용될 수 있다define
단, 여기서 나타내는 폼은 모두 에 의해 할당된 메모리 블록 내의 위치에 자동으로 이름을 바인드합니다.lvars
명령어를 입력합니다.사용 가능한 TUTOR 문서에서는 로컬 변수의 할당 방법에 대해 설명하지 않습니다.
기타 구현
TUTOR 관련 언어는 상당히 많이 있으며, 각각 원래의 TUTOR 언어와 비슷하지만 차이가 있습니다.특히 TUTOR는 특정 CDC 메인프레임 하드웨어에서 실행되는 시스템(PLATO 컴퓨터 기반 교육 시스템)의 구성요소였습니다.효율성을 위해 TUTOR에는 하드웨어 고유의 요소가 몇 가지 있었습니다(예를 들어 60비트의 배열 또는 10개의 6비트 문자로 사용할 수 있는 60비트 단어 등).또한 TUTOR는 윈도우 지향 그래픽 사용자 인터페이스(GUI)가 등장하기 전에 설계되었습니다.
microTutor 언어는 UIUC의 PLATO 프로젝트에서 개발되어 메인프레임에서 실행되는 TUTOR 코드에 대한 연결을 통해 마이크로컴퓨터를 포함하는 단말기에서 레슨 일부를 실행할 수 있게 되었습니다.microTutor 방언은 UIUC에서 개발되어 일본에서 TDK에 라이선스된 클러스터 시스템의 프로그래밍 언어이기도 합니다.클러스터 시스템은 저장 및 컴파일을 제공하는 미니컴퓨터에 연결된 작은 터미널 그룹으로 구성되어 있습니다.Tencore Language Authoring System은 Paul Tenczar가 PC용으로 개발하고 Computer Teaching Corporation이 판매하는 TUTOR 및 microTutor의 파생 모델로 Windows, Mac 및 Unix/Linux 시스템에서 프로그램을 변경하지 않고 실행할 수 있습니다.
레퍼런스
- ^ 1974년, 브루스 셔우드의 튜터 언어 4페이지에서.
- ^ "Cyber1 PLATO Computer System". Retrieved 2020-06-06.
- ^ Curtin, Constance; Clayton, Douglas; Finch, Cheryl; Moor, David; Woodruff, Lois (1972). "Teaching the Translation of Russian by Computer". The Modern Language Journal. 56 (6): 354–60. doi:10.2307/324788. ISSN 1540-4781. JSTOR 324788.
- ^ 2000년 4월 9일 Python IDLE-dev Archives에서 Bruce Sherwood의 완전한 역호환성을 통해 전진 진행
- ^ Douglas W. Jones, 1976년, 소형 컴퓨터 시스템의 튜터 언어에 대한 런타임 지원 섹션 7.2
- ^ 예를 들어 Control Data Corporation, 1981년 PLATO 사용 설명서 4-56페이지를 참조하십시오.
- ^ Tenzar and Golden, 철자법, 단어 및 개념 인식, 컴퓨터 기반 교육 연구 연구소 X-35, 일리노이 대학교 at Urbana, 1972.
- ^ 잭 스티플의 플라톤 4세 학생 터미널, 1974년 11월
- ^ 1974년 브루스 셔우드가 쓴 튜터 언어 II-11페이지에 수록되어 있습니다.
- ^ 1974년 Bruce Sherwood의 TUTOER Language II-9페이지를 참조하십시오.
- ^ 1974년 Bruce Sherwood의 TUTOER Language II-3페이지에서
- ^ Sherwood의 TUTOER Language IX-3 페이지 참조, 1974년
- ^ Douglas W. Jones의 소형 컴퓨터 시스템에서 튜터 언어의 런타임 지원을 참조하십시오.
- ^ The Tutor Language, Sherwood, 1974년, IV-2 및 IX-17 페이지 참조
- ^ The Tutor Language, Sherwood, 1974년, X-1에서 X-3 및 X-6 페이지 참조
- ^ PLATO 사용자 메모 15페이지 참조 -- 튜터 명령 및 시스템 변수 요약, Avner, 1975
- ^ 셔우드 튜터 언어 VII-52 ~ VII-55 페이지, 1974년
- ^ 튜터 명령 및 시스템 변수 요약 C3페이지, Avner, 1981
외부 링크
- 1981년 4월 개정판 CDC Corporation 플라톤 사용자 가이드
- 튜터 사용자의 메모. 1973년 3월 일리노이 대학교 어바나 샴페인 컴퓨터 기반 교육 연구실 튜터 소개
- PLATO 사용자 메모, No.1: 튜터 명령과 시스템 변수의 요약. 제3판, 1975년 11월, 일리노이 대학교 어바나 샴페인 컴퓨터 기반 교육 연구실, 일레인 에이브너 지음.
- Urbana Champaign 일리노이 대학교 컴퓨터 기반 교육 연구실, Elaine Avner의 TUTOER 명령 및 시스템 변수 요약(10번째 판) 1981년 11월.
- 플라톤 시스템의 개인적인 평가 bu Stewart A.Denberg, ACM SIGCUE Outlook, 12, 2(1978년 4월) 3-10페이지.
- Douglas W. Jones, 1976년, 소형 컴퓨터 시스템의 튜터 언어 실행 지원.
- The Tutor Language by Bruce Sherwood, 일리노이 대학교 Urbana Champaign 컴퓨터 기반 교육 연구실, 1974년 6월.
- The Tutor Language, by Bruce Sherwood, Control Data Education Company, 1977.
- 잭 스티플의 플라톤 4세 학생 터미널
- Carnegie Mellon University의 교육 컴퓨팅 디자인 센터의 cT 프로그래밍 언어(TUTOR에서 파생)는 David Andersen, Bruce Sherwood, Judith Sherwood 및 Kevin Whitley에 의해 작성되었습니다.