자동 코드

Autocode

오토코드(Autocode)는 1950년대와 1960년대에 맨체스터 대학, 케임브리지 대학 및 런던의 디지털 컴퓨터를 위해 고안된 "간소화된 코딩 시스템" 계열의 이름입니다.자동 코드는 일반 용어였습니다. 예를 들어, 서로 다른 버전의 Fortran과 같이 서로 다른 기계에 대한 자동 코드가 반드시 밀접하게 관련되어 있는 것은 아닙니다.

오늘날 이 용어는 맨체스터 마크 1 오토코더 시스템에서 유래한 초기 언어군을 가리키는 데 사용되며, 이는 일반적으로 유사하다.1960년대에 오토코더라는 용어는 [1]컴파일러를 사용하는 고급 프로그래밍 언어를 지칭하기 위해 더 일반적으로 사용되었습니다.자동 코드라고 불리는 언어의 예로는 COBOL과 [2]Fortran있습니다.

글레니의 오토코드

최초의 오토코드와 그 컴파일러는 1952년 Alick Glennie에 의해 맨체스터 대학의 Mark 1 컴퓨터를 위해 개발되었으며, 일부 사람들에 의해 최초의 컴파일된 프로그래밍 언어로 여겨진다.그의 주된 목표는 특히 난해한 기계 코드로 알려진 Mark 1 기계 프로그래밍의 이해도를 높이는 것이었다.결과 언어는 기계 코드보다 훨씬 명확했지만 여전히 기계에 [3]매우 의존했습니다.

아래는 공식 f( ) + t { f) ={ t을 계산하는 글레니의 자동 코드 함수의 예입니다.이 예제에서는 정수를 변수에 배치하는 데 필요한 척도 지정 명령을 생략하고 곱셈 결과가 더 낮은 축적기에 적합하다고 가정합니다.

c@VA t@IC x@subrouteC y@RC z@NC INTENSURE +5 →c # 5를 c →t # 하위 누산기 번호에서 변수 t +t TESTA Z # 하위 누산기에 t를 넣습니다 - T ENTY Z SUBROUTINE 6 →z # 하위 누산기 # 실행 제곱근 서브루트 ##tor 값 #을 z +tt →y →x #에 결과를 넣고 t^3을 계산하여 x +sq →y →x +z+cx CLOSE WRITE 1 # z + (c * x)를 # 하위 누적기 #에 넣고 반환합니다.

Glennie의 Autocode 컴파일러 사용자 매뉴얼에는 "효율성 손실은 10% [4]이하"라고 언급되어 있습니다.

글래니의 오토코드가 맨체스터의 다른 사용자들의 프로그래밍 습관에 미치는 영향은 무시할만했다.1958년 브루커의 논문인 "맨체스터 대학 컴퓨터용으로 개발된 오토코드 프로그램"에는 언급조차 되지 않았다.

마크 1 자동 코드

마크 1의 두 번째 오토코드는 1954년에 R. A. 브루커에 의해 개발되었고 1955년에 "마크 1 오토코드"라고 불렸다.이 언어는 기계와 거의 독립적이었고 첫 번째 언어와는 달리 부동 소수점 산술이 있었다.한편, 1행당 1개의 조작만을 허가해, 니모닉한 이름을 거의 제공하지 않고, 유저 서브루틴을 [5]정의할 방법도 없었습니다.

입력에서 11 사이즈의 부동소수점 숫자 배열을 로드하는 코드 예는 다음과 같습니다.

n1 = 1 1 vn1 = v[n [ 1 ]n1 = n1 + 1 j1,11 ≥n1 ≥n1 이 n1 이 n1 이 n1 이 n1 이 n [ 1 ] 11 11 인 경우 1 로 점프합니다.

Brooker's Autocode는 Mark 1 프로그래머의 두 가지 주요 어려움인 2단계 스토리지의 확장과 관리를 제거했습니다.전작과 달리 그것은 [6]많이 사용되었다.

나중에 자동 코드

브루커는 또한 1950년대에 맨체스터 대학과 협력하여 페란티 머큐리용 오토코드를 개발했다.머큐리 오토코드는 변수 a-z와 a'-z'의 제한된 레퍼토리를 가지고 있었고, 어떤 면에서는 후기 다트머스 베이직 언어의 초기 버전과 비슷했다.스택 개념이 없기 때문에 재귀 또는 동적으로 할당된 어레이가 없기 때문에 ALGOL을 미리 작성했습니다.수성에서는 비교적 작은 매장 규모를 극복하기 위해 대형 프로그램을 각각 오버레이를 구성하는 별도의 "Chapter"로 작성했습니다.챕터 간의 시간 소모적인 통제권 이전을 최소화하기 위해 어느 정도의 기술이 필요했습니다. 오버레이 개념은 이후 컴퓨터에서 가상 메모리를 사용할 수 있게 될 까지 일반적으로 사용자 제어 하에 드럼에서 사용되었습니다.Ferranti Atlas(후기의 Atlas Autocode와 구별됨) 및 ICT 1300 및 1900 범위에 대해 약간 다른 Mercury Autocode 사투리가 구현되었습니다.

EDSAC 2의 버전은 1961년 케임브리지 대학 수학 연구소의 데이비드 하틀리에 의해 고안되었다.EDSAC 2 Autocode로 알려진 이 제품은 현지 환경에 적합한 Mercury Autocode에서 직접 개발한 것으로, 그 당시에 발전된 객체 코드 최적화와 소스 언어 진단으로 유명했다.후속작인 타이탄(Atlas 2 원형 컴퓨터)을 위한 버전이 임시 임시 임시방편으로 개발되었으며 CPL로 알려진 보다 실질적인 고급 언어가 개발되었습니다.CPL은 완료되지 않았지만 BCPL(M사에서 개발)이 발생하였습니다.Richards)는 B로 이어졌고 결국 C이어졌다.Atlas Autocode는 맨체스터 대학 Atlas 1 기계용으로 개발되었습니다.

레퍼런스

  1. ^ London, Keith (1968). "4, Programming". Introduction to Computers (1st ed.). London: Faber and Faber Limited. p. 184. SBN 571085938. The 'high' level programming languages are often called autocodes and the processor program, a compiler.
  2. ^ London, Keith (1968). "4, Programming". Introduction to Computers (1st ed.). London: Faber and Faber Limited. p. 186. SBN 571085938. Two high level programming languages which can be used here as examples to illustrate the structure and purpose of autocodes are COBOL (Common Business Oriented Language) and FORTRAN (Formular Translation).
  3. ^ 크누스, 페이지 42-43
  4. ^ 크누스, 48페이지
  5. ^ 크누스, 63-64페이지
  6. ^ 크누스, 65페이지

원천

  • Campbell-Kelly, Martin (1980). "Programming the Mark 1: Early Programming Activity at the University of Manchester". Annals of the History of Computing. IEEE. 2 (2): 130–167. doi:10.1109/MAHC.1980.10018.
  • Garcia Camarero, Ernesto (1961). AUTOCODE un sistema simplificado de codificacion para la computadora MERCURY (in Spanish). Universidad de Buenos Aires. p. 70.
  • London, Keith (1968). Introduction to Computers. p. 261.
  • Knuth, Donald E.; Pardo, Luis Trabb(1976)."프로그래밍 언어 조기 발달"스탠포드 대학교 컴퓨터 공학부입니다.

추가 정보