Atlas 자동 코드

Atlas Autocode
Atlas 자동 코드
패러다임절차, 필수, 구조화
가족인식하다
설계자토니 브루커, 데릭 모리스
개발자맨체스터 대학교
처음 등장한1965년; 57년(연방)
타이핑 분야정적, 강력
범위어휘
구현 언어알골 60
플랫폼지도책
영국 전기 KDF9
OS감독관
주요 구현
에든버러 IMP
영향을 받다
알골 60

아틀라스 오토코드(Atlas Autocode, AA)[1][2]는 1965년경 맨체스터 대학교에서 개발된 프로그래밍 언어입니다.ALGOL 언어의 변형으로, Tony Brooker와 Derrick Morris가 Atlas 컴퓨터를 위해 개발했습니다.

오토코드라는 단어는 기본적으로 프로그래밍 언어의 초기 용어였다.오토코드에 따라 크게 다를 수 있습니다.

특징들

AA는 명시적으로 입력된 변수, 서브루틴, 함수를 특징으로 한다.이름별 매개 변수 전달과 같은 일부 ALGOL 기능은 생략되었습니다. ALGOL 60에서는 짧은 서브루틴의 메모리 주소를 전달하여 참조될 때마다 매개 변수를 재계산하는 것을 의미합니다.

AA 컴파일러는 어레이 액세스를 위한 범위 검사를 생성하였고, 어레이가 런타임에 결정되는 치수를 가질 수 있도록 하였다. 즉, 어레이는 다음과 같이 선언될 수 있었다.integer array Thing (i:j),어디에i그리고.j계산된 값입니다.

AA의 높은 수준의 루틴은 기계 코드를 포함할 수 있으며, 내부 루프를 더 효율적으로 만들거나 그렇지 않으면 [1]쉽게 수행될 수 없는 일부 작업에 영향을 미칠 수 있다.

AA에는 다음이 포함됩니다.complex복소수가 교류 동작을 나타내기 위해 사용되기 때문에 부분적으로 전기 공학 부서의 압력 때문에 복소수를 나타내는 데이터 유형입니다[1].-1의 가상 단위 제곱근은 다음과 같이 표현되었다.i이 값은 고정 복합 상수 = i로 처리되었습니다.

complex데이터 유형은 Atlas Autocode가 나중에 Edinburgh IMP라는 언어로 진화하면서 삭제되었습니다. IMP는 AA의 확장자였으며 EMAS(Edinburgh Multiple Access System) 운영 체제를 작성하는 데 사용되었습니다.

(IMP와 EMAS의 창시자 이후) AA의 두 번째로 큰 명성은 그것이 원래의 컴파일러의 많은 특징들을 가지고 있다는 것이다.AA 컴파일러의 변형은 하향식 재귀 하강 파서를 위한 런타임 지원을 포함했다.컴파일러에 사용된 파서의 스타일은 60년대부터 거의 2000년까지 에딘버러에서 계속 사용되었습니다.

다른 오토코드들타이탄 컴퓨터, 캠브리지의 아틀라스 2 프로토타입, 페란티 머큐리용으로 개발되었다.

구문

Atlas Autocode의 구문은 ALGOL과 거의 비슷하지만 저자가 사용할 수 있는 출력 장치인 Friden Flexowriter의 영향을 받았습니다.그래서, 그것은 다음과 같은 기호를 허용했다.½위해서.52의 거듭제곱에 대한 윗첨자.Flexowriter는 오버스트라이킹을 지원하였고, 따라서 AA도 지원하였다: 최대 3개의 문자가 하나의 기호로 오버스트라이킹될 수 있었다.예를 들어, 문자 집합에는기호, 그래서 지수화는 과잉 공격이었다. 그리고.*앞서 말한 예약어(키워드)의 밑줄도 오버스트라이핑을 사용하여 할 수 있다.언어는 Atlas 자동 코드 참조 [1]설명서에 자세히 설명되어 있습니다.

AA에서 사용된 것으로 확인된 다른 Flexowriter 문자는 다음과 같습니다.α부동 소수점 숫자로 표시된다.3.56α-7현대용3.56e-7;β48비트 Atlas 메모리 워드의 후반부를 의미합니다.π수학 상수 파이를 구합니다.

AA가 영국 전기 KDF9 컴퓨터로 이식되었을 때, 문자 집합은 국제 표준화 기구(ISO)로 변경되었고, 그 컴파일러는 에든버러 컴퓨터 역사 프로젝트에 의해 오래된 종이 테이프에서 복구되었고, 아틀라스 오토코의 원본 에든버러 버전의 고품질 스캔인 것처럼 온라인에서 이용할 수 있다.매뉴얼.[2]

AA의 키워드는 밑줄이 그어져 다른 텍스트와 구별이 가능했으며, Flexowriter의 오버스트라이크를 통해 구현되었다(ALGOL의 굵은 글씨와 비교).또한 두 개의 감시 체제도 있었다.첫 번째로 모든 대문자(외부 문자열)가 밑줄 친 소문자로 취급되는 "Uppercased elimiters" 모드가 있었습니다.둘째, 일부 버전(원래 Atlas 버전에서는 제외)에서는 키워드를 스트랩할 수 있습니다.%예를 들어 키워드 등 앞에 서명합니다.endofprogramme라고 타이핑할 수 있다%end %of %programme또는%endofprogramme이것은 키워드 전체를 덮어쓰는 것이 아니라 하나의 문자만 필요하기 때문에 타이핑을 대폭 줄였다.ALGOL과 마찬가지로 키워드는 예약된 문자 시퀀스를 인식하는 것이 아니라 밑줄(또는 스트로핑)을 사용하여 식별되므로 언어에는 예약된 단어가 없습니다.명세서if token=if then result = token, 양쪽 키워드가 있습니다.if라고 하는 변수입니다.if.

ALGOL에서와 같이 AA는 변수 이름에 다음과 같은 공간을 허용했습니다.integer previous value공백은 중요하지 않으며 "라인 재구성"이라고 불리는 간단한 사전 추출 단계에서 구문 분석 전에 제거되었습니다.위의 예에서 컴파일러는 다음과 같이 표시됩니다.iftoken=ifthenresult=token공백은 키워드가 다른 방법으로 구분되기 때문에 가능했고, 또 다른 렉서스 국면 없이 스캐너리스 파싱에 의해 소스가 처리되었기 때문에 어휘 구문이 문맥에 따라 달라질 수 있었습니다.

식 구문을 사용하면 곱셈 연산자를 생략할 수 있습니다. 예를 들어 다음과 같습니다.3a로 취급되었다3*a,그리고.a(i+j)로 취급되었다a*(i+j)한다면a배열이 아닙니다.애매한 용도에서는 예를 들어 가능한 가장 긴 이름을 사용했다(최대 뭉크).ab로 취급되지 않았다a*b유무에 관계없이a그리고.b선언되었습니다.

Atlas 컴퓨터용 오리지널 Atlas Autocode에서는 Atlas 기계 코드 명령이 AA 문 사이에 삽입될 수 있습니다.

레퍼런스

  1. ^ a b c d Brooker, R.A.; Rohl, J.S. (1965). "Atlas Autocode Reference Manual". University of Manchester Computer Science Department. Archived from the original on 21 July 2011. Retrieved 29 April 2020. (원래 스캔Wayback Machine에 보관된 2019-01-16)
  2. ^ a b Schofoeld, P.D.; Osbourne, M.R. (1965). "Programming in Atlas Autocode, Computer Unit Report No. 1" (PDF). University of Edinburgh. Archived from the original (PDF) on 2020-05-15. Retrieved 2006-04-12. (Wayback Machine에서 아카이브된 2011-07-21 원본 스캔)