다트머스 알골 30
Dartmouth ALGOL 30패러다임 | 다중 패러다임: 절차적, 필수적, 구조적 |
---|---|
가족 | 알골 |
설계자 | 스티븐 J. 갈런드 로버트F 하그레이브스 앤서니 W. 크냅 토머스 커츠 |
개발자 | 다트머스 대학교 |
첫 등장 | 1961; | 전 (
구현 언어 | 조립 |
플랫폼 | LGP-30 |
OS | 없음 |
영향을 받은 | |
알골 58, 알골 60 | |
영향받은 | |
LGP-30용 두피 다트머스 시간 공유 시스템용 알골 60 |
다트머스 알골 30은 1960년대 시행된 것으로, 처음에는 알골 58 프로그래밍 언어, 그 다음에는 알골 60을 사용하였다. 그것은 그것이 실행된 컴퓨터의 이름을 따서 명명되었다: Librascope General Precision (LGP-30) 책상 크기의 컴퓨터 1959년에 다트머스 칼리지가 획득했다.
LGP-30(4K 30비트 단어)의 제한된 크기 때문에 ALGOL 60의 완전한 구현이 불가능했기 때문에, 특정 기능(값, 자체 배열, 문자열, 가변 배열 한계, 재귀로 호출되는 광선)은 생략되었지만 구현에는 Thunks와 정수 라벨을 사용하여 이름으로 호출되는 파라미터가 포함되었다.[1][2][3]
ALGOL 30은 4명의 학부생들에 의해 시행되었다. Stephen J. Garland는 2학년 때 복합 문장과 블록이 Samelson과 Bauer 번역 알고리즘에 포함될 수 있다는 것을 발견하면서 컴파일러를 썼다.[4] 이 간단한 사실은 몇 년이 지나서야 데이비드 그리스에 의해 발표되었다.[5] 로버트F 하그레이브스, 호르헤 레이서, 앤서니 W. 크냅은 런타임 시스템을 개발했는데, 여기에는 부동 소수점 산술(LGP-30의 제한된 명령 집합에서 지원되지 않음)[6]을 위한 통역이 포함되어 있었다.
ALGOL 30은 투패스 시스템이었다. 첫 번째 패스는 사용자가 입력한 컴파일러와 처리된 소스 코드를 로딩하여 다시 연결 가능한 바이너리와 유사한 중간 코드를 생성하여 종이 테이프에 펀칭했다. 두 번째 패스는 런타임 시스템과 중간 코드를 모두 로딩했다. 컴파일은 "배팅"될 수 있지만, 소스 코드 테이프 입력과 컴파일된 프로그램 실행 사이의 지연이 너무 커서 학생들이 널리 사용할 수 없었다.[7]
갈랜드와 Knapp는 광범위한 사용을 가능하게 하기 위해 ALGOL 60의 더 작은 부분집합(부울 변수나 연산자, 블록, 절차, 자체 또는 동적 배열, 조건식, 단계식 등은 문장에 사용할 때까지 허용하지 않음)을 위해 자체 포함 ALGOL 프로세서인 "두피"로 알려진 시스템을 개발했다. 두피는 LGP 메모리의 3분의 1을 컴파일러에, 3분의 1은 런타임 시스템에, 3분의 1은 플로팅 포인트 인터프리터, 3분의 1은 컴파일된 사용자 코드에 할애했다. 학생들은 오프라인에서 소스 코드를 준비하여 Friden flexowriter로 종이 테이프에 주먹으로 쳤다. 편집은 테이프를 읽을 수 있을 만큼 빨리 일어났다. 이를 통해 3분 안에 학생 작업을 완료할 수 있었다. 1965년 다트머스 시간공유시스템에서 베이직(BASIC)이 보급되기 전 수백 명의 학생들이 두피를 이용했다.[8][9]
ALGOL 30은 1965년 다트머스 시간 공유 시스템에 ALGOL 60을 구현한 기초였다. 몇 년 후, 시드니 마샬은 ALGOL 68의 구현을 생산했다.[10]
참조
- ^ P. Z. Ingerman, "Thunks: 절차 선언에 대한 일부 코멘트로 절차문을 컴파일하는 방법", ACM 4:1, 1961년 1월 Communications of ACM, 55-58페이지.
- ^ E. T. 아이언스와 W. Feurzeig, "Algol-60에서의 재귀적 절차와 블록의 구현에 관한 설명", ACM 4:11, 1961년 1월, 65-69페이지
- ^ Thomas E. Kurtz, "Basic", 프로그래밍 언어의 역사, 컴퓨터 기계 협회, 1978년 6월 516페이지.
- ^ K. Samelson과 F. L. Bauer, "순차 공식 번역", Communications of ACM 3:2, 1960년 2월, 76–83페이지.
- ^ (David Gries, "편집에 전환 매트릭스의 사용", ACM 11:1 통신, 1968년 1월 26~34페이지)
- ^ LGP-30의 ALGOL, 비교", 1962년 2월 16일 다트머스 대학의 연산 센터.
- ^ 커츠, 로크 씨티
- ^ 커츠, 수술실 517페이지
- ^ 1964년 1월 1일 다트머스 칼리지의 General Precision LGP-30, CCM-7A, Computing Center의 자체 포함 알골 프로세서로서의 두피 설명서.
- ^ 시드니 마샬, 1969년 12월 1일 다트머스 대학의 키위트 연산 센터 ALGOL 68 구현에 관한 예비 보고서.
외부 링크
- 다트머스 대학교 도서관의 스티븐 J. 갈랜드의 논문
- ALGOL 30 및 MUPHI 1962-1964에 관한 기술 암기의 개요(및 링크)