GORGE(프로그래밍 언어)

GEORGE (programming language)

GORGE(General Order Generator)는 1957년 [1][2][3][4]찰스 레오나드 햄블린이 개발프로그래밍 언어입니다.

산술 연산을 위해 푸시다운 팝업 스택을 중심으로 설계되었으며 폴란드어[5]표기법을 사용했습니다.

언어에는 루프, 서브루틴, 조건, 벡터행렬포함되어 있습니다.

대수식은 역폴란드 표기법으로 작성되었으며, 따라서+ b(\ a 작성되었다.a b +뺄셈, 곱셈, 나눗셈의 다른 산술 연산도 마찬가지입니다.

a x + x +c { + + c }가 되었습니다.a x dup × × b x × + c +, 여기서 'dup'는 '값 변경'을 의미합니다.

폴란드어 역양식에 따라 y 2 + + {\ y 평가하는 할당문이 다음과 같이 작성되었다.a x dup × × b x × + c + (y).

컴퓨터는 다음과 같은 식을 평가했습니다.a,그리고나서x어큐뮬레이터 스택의 상부에 푸시되었습니다.dup'로 인해 최상위 값의 복사본이 생성되었습니다(x)를 어큐뮬레이터 스택의 상부에 푸시합니다.멀티플라이(×)는 상위 2개의 값의 원인이 됩니다.즉,x그리고.x제품을 어큐뮬레이터 스택의 맨 위로 되돌리는 제거(배수) 및 곱셈.두 번째 곱셈(×다음으로 스택의 상위2개의 값(예:a그리고.x**2)를 팝업 및 곱셈하여 제품(a×x**2)를 어큐뮬레이터 스택의 상부에 밀어 넣습니다.표현의 나머지 구성 요소도 마찬가지입니다.최종 작업, 즉 ()y)는 어큐뮬레이터 스택의 상태를 변경하지 않고 식 값을 스토리지로 반환합니다.

어큐뮬레이터 스택의 상부에 있는 값이 즉시 필요하지 않은 경우 연산자를 사용하여 삭제(클리어)됩니다.;).

다음 프로그램은 8개의 값을 읽어 합계를 형성합니다.

0, 1, 8 rep (j) R + ] (P)
첫 번째 줄은 값 0을 누름으로써 합계를 초기화합니다.
두 번째 행은 루프를 도입하여 "j에 대해 1~8회 반복"으로 발음되며 각 괄호로 끝납니다.
세 번째 줄에서 R은 하나의 숫자를 읽어내어 어큐뮬레이터 스택의 맨 위에 밀어넣습니다.또한 플러스 기호(+)는 그 값이 (부분)합에 추가되어 어큐뮬레이터 스택의 맨 위에 부분합만 남습니다.
루프가 종료되면 (P)에 의해 최종 합계가 카드에 펀치됩니다.

벡터 및 행렬을 조작하려면 첨자 표기법이 필요합니다.GORGE에서 첨자는 벡터 또는 행렬 이름 앞에 있습니다.A(j)는 다음과 같이 기술되었다.j A다음 프로그램은 10개의 값의 벡터 a를 읽고 그 값의 제곱을 형성하여 최종적으로 그 값을 출력합니다.

1, 10 R1 (a) 1, 10 rep (j) j a dup * j (a) ; ]1, 10 P1 (a)
프로그램에서 첫 번째 행은 10개의 값을 a(1)~a(10)로 읽는 벡터 읽기이다.
두 번째 행은 j의 10가지 값을 통과하는 루프를 도입합니다.
세 번째 줄은 a(j)를 가져와 복제하고 제곱을 제공하는 두 값을 곱한 다음 a(j)에 저장합니다.세미콜론(;)에 주목해 주세요.이 세미콜론은 누적기 스택의 맨 위 엔트리를 클리어(또는 취소)합니다.이렇게 하지 않으면 축전지에는 값의 제곱이 점차 채워집니다.
마지막 줄은 10개의 정사각형을 쓰기 위한 벡터 펀치(즉, 인쇄)입니다.
GEGORGE 부호화[6]
1 2 3 4 5 6 7 8 15
0 / 0 16 a q (a) (q) 로그. R
1 , // 1 17 b r (b) (r) exp (P)
2 ; ~ 2 18 c s (c) (s) 전원
3 * & 3 19 d t (d) (t) 기억하다
4 4 20 e u (e) (u) sqrt
5 + ] 5 21 f v (f) (v)
6 - 6 22 g w (g) (w) 왜냐하면
7 × 7 23 h x (h) (x)
8 ÷ 대표자 8 24 i y (i) (y) R1
9 부정하다 I 9 25 j z (j) (z) P1
10 모드 10 26 k α (k) (α) R11
11 맥스. 11 27 l β (l) (β) P11
12 이중 12 28 m γ (m) (표준)
13 리비전 13 29 n λ (n) (표준)
14 = 14 30 Θ μ (θ) (μ)
15 > 15 31 p ω (p) (표준)

위의 GORGE 코딩 테이블은 펀치카드에 프로그램을 변환하는 데 도움이 되었습니다.

조건부 연산은 다음과 같이 점프로 기록되었습니다.a > 0이 5로 가는 경우(a가 0보다 큰 경우 라벨5로 전송됨)

0 a > 5 ↑

라벨 5는 프로그램의 다른 부분에 *5를 포함하여 표시되었습니다.무조건 이체 5 ↑

서브루틴 콜은 아래쪽 화살표를 사용하여 이루어졌습니다.예를 들어, 17이라고 라벨이 붙은 서브루틴을 호출하고, 17↓을 씁니다.여기서 라벨 17은 위의 표의 3열을 사용하여 부호화되었습니다.

이력 메모

1957년 5월까지 English Electric DEUCE에서 실행된 첫 번째 버전에서는 모든 값이 16자리 이진수를 가진 32비트 단어로 이진 고정 소수점 형식으로 저장되었습니다.

1958년에 도입된 두 번째 버전에서는 값이 부동소수점 형식으로 유지되었으며, 워드당 하나의 값(수치의 경우 22비트, 지수의 경우 10비트)을 사용했습니다.

그 시대의 인쇄 장비는 알파벳의 26자, 소수점, 플러스 기호, 마이너스 기호, 슬래시만을 제공했기 때문에 어떤 형태의 코딩 표가 필요했다.

레퍼런스

  1. ^ Hamblin, Charles Leonard (May 1957). An Addressless Coding Scheme based on Mathematical Notation (Typescript). New South Wales University of Technology.
  2. ^ Hamblin, Charles Leonard (June 1957). "An addressless coding scheme based on mathematical notation". Proceedings of the First Australian Conference on Computing and Data Processing. Salisbury, South Australia: Weapons Research Establishment.
  3. ^ Hamblin, Charles Leonard (1957). "Computer Languages". The Australian Journal of Science (20?): 135–139; Hamblin, Charles Leonard (November 1985). "Computer Languages". The Australian Computer Journal (Reprint). 17 (4): 195–198.
  4. ^ Hamblin, Charles Leonard (1958). GEORGE IA and II: A semi-translation programming scheme for DEUCE: Programming and Operation Manual (PDF). School of Humanities, University of New South Wales, Kensington, New South Wales. Archived (PDF) from the original on 2020-04-04. Retrieved 2020-07-27.
  5. ^ 비어드, 밥(가을은 1997년)[1996-10-01]."그 KDF9 컴퓨터 30년에 —"(PDF).부활-협회 컴퓨터 보호 협회의.제18.컴퓨터 보호 협회(CCS).를 대신하여 서명함. 7–15.ISSN 0958-7403.그 2020-07-27에 원래에서Archived(PDF).2020-07-27 Retrieved.왜냐하면 그곳은 믿고 첫번째zero-address 명령 형식 컴퓨터(1960년에)발표할 그 KDF9가 주목할 만한[…].이것은 우선 다른 유명한 zero-address 컴퓨터, 버로 B5000 미국에 있는 것에 대해 같은 시간(1963년 초)에 배달되었다.많은 현대적인 포켓 계산기처럼, zero-address 기계, 이 컴파일러 작가들에게 어떤 이점을 제공한다 역 폴란드 한 계산의 사용만을 허용한다.그것은 영어 전기 팀의 관심을 처음zero-address 개념에 조지(일반 명령 발생기) autocode 프로그래밍 시스템은 듀스 컴퓨터 대학 호주 시드니의 1950년대 후반과 접촉을 통해 그려진 것으로 믿어진다.조지, 그리고 KDF9 팀은 이번 전당 대회에서 주 기억 장치에 액세스 하는 최소화에 의해 성능을 향상시키기를 바라는의 실용적인 이유로 끌렸던 폴란드 엎은 사용했다.이것은 더`theoretical'독립적으로 버로우에 의해 찍은 사진과 대조를 이룰 수 있다.하드웨어 둥지를 틀고 가게나 스택-zero-address 컴퓨터의 기본 구조 외에도-KDF9는 그것을 재미 있는 내부 구조를 이루었고 성능 향상을 위한 중앙 등록하는 다른의 그룹이 있다.[…][1](NB다.이것은 1996-10-01년 영국 맨체스터의 과학 산업 박물관에서 노스웨스트 그룹 오브 더 소사이어티 강연의 편집본입니다.)
  6. ^ Programming Course. School of Electrical Engineering, The University of New South Wales. n.d. p. 24.