알골 60
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
알골 60(ALGOL 60)은 1960년에 발표된 프로그래밍 언어이다. 존 배커스가 개발한 바쿠스 표기법을 페테르 나우르가 개선하고 도널드 커누스의 제안에 따라 바쿠스-나우르 표기법으로 명칭이 변경되었다. 알골 60은 재귀를 포함하며, 이후 많은 프로그래밍 언어에 영감을 주었다. 다양한 컴퓨터 시스템에서 구현되었으며, 입출력 기능 부재로 인해 이식성에 문제가 있었다.
더 읽어볼만한 페이지
- 알골 프로그래밍 언어 계열 - 알골 (프로그래밍 언어)
알골은 1950년대 후반 유럽 학자들이 개발한 명령형 프로그래밍 언어로서, BNF 표기법으로 문법이 기술되고 구조화된 프로그래밍 형태를 갖추어 이후 여러 언어에 영향을 주었으며, 특히 알골 60은 재귀 호출 지원으로 소프트웨어 모듈화와 컴퓨터 범용화에 기여하고 프로그래밍 개념 표준 용어 제공에 중요한 역할을 했다. - 알골 프로그래밍 언어 계열 - C++
C++는 비야네 스트롭스트룹이 개발한 다중 패러다임 프로그래밍 언어로, C를 기반으로 객체 지향 프로그래밍과 제네릭 프로그래밍을 지원하며 다양한 분야에 사용되고, 꾸준한 표준 업데이트를 통해 기능이 확장되었지만 복잡한 문법으로 높은 학습 곡선을 가진다. - 구조적 프로그래밍 언어 - CPL (프로그래밍 언어)
CPL은 1960년대에 개발된 프로그래밍 언어로, ALGOL 60의 영향을 받아 과학 및 상업 프로그래밍을 아우르는 넓은 응용 분야를 지향했으나 복잡성으로 인해 널리 보급되지는 못했고, BCPL, B, C 언어에 영향을 주어 현대 프로그래밍 언어 발전에 기여했다. - 구조적 프로그래밍 언어 - 베릴로그
베릴로그는 디지털 시스템 모델링 및 설계를 위한 하드웨어 기술 언어로서, IEEE 표준으로 발전해 왔으며, 모듈 계층 구조, 동시성, 순차적 구문, 다양한 연산자, 4치 논리 등의 특징과 C 언어와 유사한 문법 구조를 갖는다. - 시스템 프로그래밍 언어 - C (프로그래밍 언어)
C는 하드웨어 제어와 이식성이 뛰어난 고급 절차적 프로그래밍 언어로서, 다양한 분야에서 사용되며 후속 언어에 영향을 주었고, 성능과 효율성이 높지만 안전성 문제 개선이 필요한 언어이다. - 시스템 프로그래밍 언어 - 스위프트 (프로그래밍 언어)
2014년 애플 세계 개발자 컨퍼런스에서 처음 공개된 스위프트는 크리스 래트너가 개발한 애플의 범용 프로그래밍 언어로서, Objective-C를 대체하며 다양한 플랫폼 지원, 모던 문법, 안정성, 인터랙티브한 개발 환경, SwiftUI 등의 특징을 가진다.
| 알골 60 - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 언어 정보 | |
| 종류 | ALGOL 계열 프로그래밍 언어 |
| 패러다임 | 절차적, 명령형, 구조적 |
| 발표 연도 | 1960년 |
| 설계자 | 배커스, Bauer, Green, Katz, 매카시, 나우르, 펄리스, Rutishauser, Samelson, van Wijngaarden, Vauquois, Wegstein, Woodger |
| 타입 시스템 | 정적, 강한 |
| 스코프 | 어휘적 |
| 영향을 받은 언어 | 알골 58 |
| 영향을 준 언어 | 이후에 나온 대부분의 명령형 언어 (이른바 알골 계열 언어). 예: PL/I, 시뮬라, CPL, 파스칼, 에이다, C |
2. 역사
존 배커스는 알골 58(ALGOL 58)을 기술하기 위해 바쿠스 표기법을 개발했다. 이후 페테르 나우르는 이를 알골 60(ALGOL 60)에 맞게 개선하고 확장했으며, 도널드 커누스의 제안으로 바쿠스-나우르 표기법이라는 이름이 붙여졌다.[25][1]
알골 60의 명세는 1960년 1월 11일부터 16일까지 파리에서 열린 회의에서 미국과 유럽의 컴퓨터 과학자 13명으로 구성된 위원회에 의해 만들어졌다.[2] 회의 참석자는 다음과 같다.
| 지역 | 참석자 |
|---|---|
| 유럽 | 프리드리히 루드비히 바우어, 피터 나우어, 하인츠 루티샤우저, 클라우스 삼멜슨, 베르나르 바코아, 아드리안 반 위잉가르덴, 마이클 우드거 |
| 미국 | 존 워너 배커스, 줄리앙 그린, 찰스 카츠, 존 매카시, 앨런 제이 펄리스, 조셉 헨리 웨그스타인 |
앨런 제이 펄리스는 이 회의를 "지치고, 끝없이 이어졌지만, 흥미진진했다"고 회고하며, 참석자들 간의 열띤 토론 속에서도 협력이 이루어졌다고 묘사했다. 페테르 나우르는 이 회의의 결과물인 알골 60 보고서의 편집자 역할을 맡았다.[2]
알골 60은 원래 재귀를 포함하지 않았으나, 일부 위원들의 반대에도 불구하고 마지막 순간에 명세서에 추가되었다.[3] 또한, 코볼(COBOL)과 함께 표준화를 추구한 최초의 언어 중 하나였다.
알골 60은 주로 미국과 유럽의 연구자들 사이에서 사용되었으며, 알고리즘을 기술하고 발표하는 표준적인 방법으로 자리 잡았다. 그러나 표준 입출력 기능의 부재와 당시 주요 컴퓨터 제조사들의 관심 부족으로 인해 상업적인 응용 분야에서는 널리 사용되지 못하는 한계를 보였다. 그럼에도 불구하고, 알골 60은 이후 등장하는 수많은 프로그래밍 언어 설계에 큰 영향을 미쳤다.
2. 1. 구현 연표
알골 60은 이후에 등장한 많은 언어에 영감을 주었다. 토니 호어는 "이 언어는 시대를 너무 앞서가서, 이전의 언어뿐만 아니라 거의 모든 후속 언어보다 개선되었다."라고 평가했다.[4][5] 현재까지 ALGOL 60의 증강, 확장, 파생 및 하위 언어는 최소 70개 이상 존재한다.[6]| 이름 | 연도 | 저자 | 국가 | 설명 | 대상 CPU |
|---|---|---|---|---|---|
| X1 ALGOL 60 | 1960년 8월[7] | 에츠허르 데이크스트라, 야프 A. 존네펠트 | 네덜란드 | ALGOL 60의 첫 번째 구현[8] | 일렉트로로지카 X1 |
| Algol | 1960년[9] | 에드가 T. 아이언스 | 미국 | ALGOL 60 | CDC 1604 |
| 버로스 알골 (여러 변형) | 1961년 | 버로스사 (토니 호어, 에츠허르 데이크스트라 등 참여) | 미국 | 버로스사 (현재는 유니시스 MCP 기반) 컴퓨터의 기반 | 버로스 대형 시스템 및 중형 시스템 |
| 케이스 알골 | 1961년 | 미국 | 시뮬라는 원래 케이스 알골의 시뮬레이션 확장으로 계약됨. | 유니백 1107 | |
| GOGOL | 1961년 | 윌리엄 M. 맥키먼 | 미국 | ODIN 시분할 시스템용 | PDP-1 |
| DASK ALGOL | 1961년 | 피터 나우어, 요른 옌센 | 덴마크 | ALGOL 60 | Regnecentralen의 DASK |
| SMIL ALGOL | 1962년 | 토르길 에크만, 칼-에릭 프로베르그 | 스웨덴 | ALGOL 60 | 룬드 대학교의 SMIL |
| GIER ALGOL | 1962년 | 피터 나우어, 요른 옌센 | 덴마크 | ALGOL 60 | Regnecentralen의 GIER |
| 다트머스 ALGOL 30[10] | 1962년 | 토머스 유진 커츠, 스티븐 J. 갈랜드, 로버트 F. 하그레이브스, 앤서니 W. 냅, 호르헤 라세르 | 미국 | ALGOL 60 | LGP-30 |
| 알코어 마인츠 2002 | 1962년 | 우르줄라 힐-삼엘손, 한스 랑마크 | 독일 | 지멘스 2002 | |
| ALCOR-일리노이 7090 | 1962년 [11][12] | 만프레트 파울, 한스 루디거 비엘레, 데이비드 그리스, 루돌프 바이어 | 미국, 서독 | ALGOL 60 일리노이 대학교 어배너-섐페인 및 뮌헨 공과대학교에서 1962-1964년에 구현 | IBM 7090 |
| USS 90 알골 | 1962년 | L. 페트론 | 이탈리아 | ||
| 엘리엇 ALGOL | 1962년 | C. A. R. 호어 | 영국 | 1980년 튜링상 강연에서 논의 | 엘리엇 803 및 엘리엇 503 |
| ALGOL 60 | 1962년 | 롤랜드 스트로벨[13] | 동독 | 독일 과학 아카데미 응용 수학 연구소에서 구현 | 자이스-레헨아우토마텐 ZRA 1 |
| ALGOL 60 | 1962년 | 베르나르 보코아, 루이 볼리에[14] | 프랑스 | 그르노블 정보 및 응용 수학 연구소(IMAG) 및 콤파니 데 마신 불 | 불 감마 60 |
| 알골 번역기 | 1962년 | G. 반 데르 메이 및 빌럼 판 데르 풀 | 네덜란드 | Staatsbedrijf der Posterijen, Telegrafie en Telefonie | ZEBRA |
| 키즈그로브 알골 | 1963년 | F. G. 던컨 | 영국 | 잉글리쉬 일렉트릭 KDF9 | |
| SCALP[15] | 1963년 | 스티븐 J. 갈랜드, 앤서니 W. 냅, 토머스 유진 커츠 | 미국 | ALGOL 60의 하위 집합을 위한 자체 포함 알골 프로세서 | LGP-30 |
| VALGOL | 1963년 | 발 쇼레 | 미국 | META II 컴파일러 컴파일러 테스트 | |
| FP6000 알골 | 1963년 | 로저 무어 | 캐나다 | 서스캐처원 전력 공사용으로 작성 | FP6000 |
| 웻스톤 | 1964년 | 브라이언 런들 및 로퍼드 존 러셀 | 영국 | 잉글리쉬 일렉트릭 회사의 원자력 부서. 페란티 페가수스, 국립 물리 연구소 ACE 및 잉글리쉬 일렉트릭 DEUCE 구현의 전신 | KDF9 |
| ALGOL 60 | 1964년 | 장-클로드 부사르[16] | 프랑스 | 그르노블 정보 및 응용 수학 연구소 | IBM 7090 |
| ALGOL-GENIUS | 1964년 | 보르제 랑게포르스 | 스웨덴 | COBOL에서 영감을 받은 데이터 레코드 및 I/O 추가 | 데이터사브 D-21 |
| ALGOL 60 | 1965년 | 클로드 페어[17] | 프랑스 | 낭시 과학 학부 계산 센터 | IBM 1620 |
| 다트머스 알골 | 1965년 | 스티븐 J. 갈랜드, 사르 블룸슨, 론 마틴 | 미국 | ALGOL 60 | GE 235용 다트머스 시분할 시스템 |
| NU ALGOL | 1965년 | 노르웨이 | 유니백 | ||
| ALGOL 60 | 1965년[18] | F.E.J. 크루세만 아레츠 | 네덜란드 | EL-X8용 MC 컴파일러 | 일렉트로로지카 X8 |
| ALGEK | 1965년 | 소련 | 민스크-22 | АЛГЭК, ALGOL 60 및 COBOL 지원 기반, 경제적 작업을 위해 | |
| MALGOL | 1966년 | publ. A. Viil, M Kotli & M. Rakhendi | 에스토니아 SSR | 민스크-22 | |
| ALGAMS | 1967년 | GAMS 그룹(ГАМС, группа автоматизации программирования для машин среднего класса), Comecon 과학 아카데미 협력 | 코메콘 | 민스크-22, 후 ES EVM, BESM | |
| ALGOL/ZAM | 1967년 | 폴란드 | 폴란드 ZAM 컴퓨터 | ||
| 중국 알골 | 1972년 | 중국 | 중국어 문자, 기호 시스템을 통해 표현 | ||
| DG/L | 1972년 | 미국 | DG Eclipse 컴퓨터 제품군 | ||
| NASE | 1990년 | 에릭 쇤펠더 | 독일 | 인터프리터 | 리눅스 및 MS 윈도우 |
| MARST | 2000년 | 앤드류 마호린 | 러시아 | ALGOL 60 to C 번역기 | GNU 컴파일러 컬렉션에서 지원하는 모든 CPU; MARST는 GNU 프로젝트의 일부 |
공식적으로 정의된 알골 60은 입출력 기능을 갖지 않았으며, 구현체들은 서로 호환되지 않는 방식으로 자체적으로 정의했다. 이는 구현체 간 호환성 문제를 일으켰다.
버로스 방언에는 ESPOL 및 NEWP와 같은 특수 시스템 프로그래밍 방언이 포함되었다.
3. 특징
알골 60은 평가 전략에 대해 두 가지 매개변수 전달 방식을 제공했다: 일반적인 값 호출(call by value)과 이름 호출(call by name)이다. 프로시저 선언 시 각 형식 매개변수에 대해 사용할 방식을 지정했는데, `value` 키워드는 값 호출을 의미하며, 생략하면 이름 호출이 적용되었다.
이름 호출은 참조 호출과는 다른 특정 효과를 가진다. 예를 들어, 매개변수를 `value`나 `reference`로 지정하지 않고 이름 호출을 사용하면, 정수 변수와 해당 변수로 인덱싱된 배열 요소를 교환하는 프로시저(예: `swap(i, A[i])`)를 작성하기 어려울 수 있다. 이는 이름 호출 시 매개변수가 참조될 때마다 다시 평가되기 때문이다.[19] 이름 호출은 이를 구현하는 데 사용되는 "썽크(thunk)"라는 기법 때문에 컴파일러 설계자들에게 잘 알려져 있다. 도널드 커누스는 재귀 및 비지역 참조를 올바르게 구현하는 컴파일러를 구분하기 위해 "남자 또는 소년 테스트"를 고안했는데, 이 테스트에는 이름 호출의 예가 포함되어 있다.
원래 알골 60 명세에는 재귀가 포함되지 않았으나, 일부 위원들의 반대에도 불구하고 마지막 순간에 추가되었다.[3]
알골 60은 이후 등장한 많은 언어에 영감을 주었다. 토니 호어는 "이 언어는 시대를 너무 앞서가서, 이전의 언어뿐만 아니라 거의 모든 후속 언어보다 개선되었다"고 평가했다.[4][5]
3. 1. 예약어 및 식별자
표준 버로스 대형 시스템(Burroughs Large Systems) 하위 언어에는 35개의 예약어가 있다.
ALPHA | ARRAY | BEGIN | BOOLEAN | COMMENT | CONTINUE | DIRECT |
DO | DOUBLE | ELSE | END | EVENT | FALSE | FILE |
FOR | FORMAT | GO | IF | INTEGER | LABEL | LIST |
LONG | OWN | POINTER | PROCEDURE | REAL | STEP | SWITCH |
TASK | THEN | TRUE | UNTIL | VALUE | WHILE | ZIP |
표준 버로스 대형 시스템 하위 언어에는 71개의 제한된 식별자가 있다.
ACCEPT | ENABLE | LEQ | OR | SCAN |
AND | EQL | LIBERATE | OUT | SEEK |
ATTACH | EQV | LINE | PICTURE | SET |
BY | EXCHANGE | LOCK | PROCESS | SKIP |
CALL | EXTERNAL | LSS | PROCURE | SORT |
CASE | FILL | MERGE | PROGRAMDUMP | SPACE |
CAUSE | FORWARD | MOD | RB | SWAP |
CLOSE | GEQ | MONITOR | READ | THRU |
DEALLOCATE | GTR | MUX | RELEASE | TIMES |
DEFINE | IMP | NEQ | REPLACE | TO |
DETACH | IN | NO | RESET | WAIT |
DISABLE | INTERRUPT | NOT | RESIZE | WHEN |
DISPLAY | IS | ON | REWIND | WITH |
DIV | LB | OPEN | RUN | WRITE |
DUMP |
그리고 모든 내장 함수 이름도 포함한다.
3. 2. 표준 연산자
알골 60은 다양한 연산자를 제공하며, 연산자 간의 우선순위가 정의되어 있다. 연산자는 크게 산술 연산자, 비교 연산자, 논리 연산자로 나눌 수 있으며, 우선순위는 다음과 같다.| 우선순위 | 연산자 | |
|---|---|---|
| 첫 번째 (산술) | 첫 번째 | ↑ (거듭제곱) |
| 두 번째 | ×, / (실수 나눗셈), ÷ (정수 나눗셈) | |
| 세 번째 | +, - | |
| 두 번째 (비교) | <, ≤, =, ≥, >, ≠ | |
| 세 번째 (논리) | ¬ (not) | |
| 네 번째 (논리) | ∧ (and) | |
| 다섯 번째 (논리) | ∨ (or) | |
| 여섯 번째 (논리) | ⊃ (함의) | |
| 일곱 번째 (논리) | ≡ (동치) | |
4. 코드 예제 및 이식성 문제
알골 60 언어 표준에는 입출력(I/O) 기능이 포함되어 있지 않았다.[21] 이 때문에 프로그램을 서로 다른 컴퓨터 시스템이나 환경에서 동일하게 실행하기 어려운 이식성 문제가 발생했다. 가장 기본적인 예시인 '헬로 월드' 프로그램조차 표준화된 방법이 없어, 사용하는 알골 구현체(컴파일러 및 라이브러리)에 따라 코드를 다르게 작성해야만 했다.[22]
예를 들어, 유니시스 메인프레임 환경, 엘리엇 컴퓨터 환경 (엘리엇 알골, 엘리엇 803 알골), ICT 1900 시리즈 환경 등 각각의 시스템은 고유한 방식으로 입출력을 처리했다. 이는 문자열 표기 방식 (따옴표 사용 등),[24] 입출력 장치 지정 방식 (종이 테이프, 천공 카드, 라인 프린터 등),[24] 심지어 사용 가능한 문자 집합(대소문자 구분 등)에서도 차이를 보였다. 이러한 차이점들은 알골 60 프로그램의 이식성을 크게 저해하는 요인이 되었다. 각 구현 환경별 코드 예시는 하위 섹션에서 자세히 다룬다.
4. 1. 코드 샘플 비교
알골 60에는 입출력(I/O) 기능이 내장되어 있지 않아, 모든 구현에서 동일하게 동작하는 이식성 있는 '헬로 월드' 프로그램은 존재하지 않는다. 따라서 각 시스템 환경에 맞춰 입출력 방식을 구현해야 했다.아래는 다양한 알골 구현 환경에서의 코드 예시이다.
표준 알골 60 절차 예시 (`Absmax`)다음은 행렬에서 절대값이 가장 큰 원소를 찾는 알골 60 절차(procedure)의 예시이다.
procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k);
value n, m; array a; integer n, m, i, k; real y;
comment n x m 크기의 행렬 a에서 절대값이 가장 큰 원소를 찾아 y에 저장하고, 해당 원소의 인덱스를 i와 k에 저장함;
begin integer p, q;
y := 0; i := k := 1;
for p := 1 step 1 until n do for q := 1 step 1 until m do if abs(a[p, q]) > y then begin y := abs(a[p, q]);
i := p; k := q
end;
end Absmax
구현에 따라 키워드를 표현하는 방식이 달랐다. 예를 들어, 위 코드의 `integer`와 같은 굵은 글씨 키워드 대신, 일부 구현에서는 `'INTEGER'`처럼 따옴표로 감싸 스트로핑하여 일반 식별자와 구분해야 했다.
유니시스 A-시리즈 알골다음은 유니시스 A-시리즈 메인프레임용 알골 구현에서 사용된 '헬로 월드' 프로그램 예시이다. 이 코드는 미시간 대학교의 자료를 단순화한 것이다.[21][22]
BEGIN
FILE F(KIND=REMOTE);
EBCDIC ARRAY E[0:11];
REPLACE E BY "HELLO WORLD!";
WRITE(F, *, E);
END.
여기서 `*`는 포트란처럼 형식 지정자를 나타낸다.[23]
인라인 형식을 사용하면 더 간결하게 작성할 수 있다.
BEGIN
FILE F(KIND=REMOTE);
WRITE(F, <"HELLO WORLD!">);
END.
`DISPLAY` 문을 사용한 더 간단한 예시는 다음과 같다.
BEGIN
DISPLAY("HELLO WORLD!")
END.
엘리엇 알골엘리엇 알골은 문자열을 표기할 때 열린 따옴표(`‘`)와 닫힌 따옴표(`’`)에 서로 다른 문자를 사용했다.
program HiFolks;
begin
print ‘Hello world’
end;
엘리엇 803 알골엘리엇 803 알골은 5홀 종이 테이프를 사용했기 때문에 대문자만 지원했다. 따옴표 문자가 없어, 파운드 기호(`£`)를 열린 따옴표로, 물음표(`?`)를 닫힌 따옴표로 사용했다. `£L??`와 같은 특수 시퀀스는 텔레프린터에서 새 줄(개행)을 의미했다.
HIFOLKS'
BEGIN
PRINT £HELLO WORLD£L??'
END'
다음은 엘리엇 803 알골을 사용하여 부동 소수점 계산 결과를 표 형식으로 출력하는 예시이다.[20]
FLOATING POINT ALGOL TEST'
BEGIN REAL A,B,C,D'
READ D'
FOR A:= 0.0 STEP D UNTIL 6.3 DO
BEGIN
PRINT PUNCH(3),££L??' (PUNCH(3): 텔레타이프라이터로 출력)
B := SIN(A)'
C := COS(A)'
PRINT PUNCH(3),SAMELINE,ALIGNED(1,6),A,B,C' (SAMELINE: 줄 바꿈 억제, ALIGNED(1,6): 소수점 앞 1자리, 뒤 6자리 형식)
END'
END'
ICT 1900 시리즈 알골ICT 1900 시리즈 알골은 종이 테이프나 천공 카드로 입력을 받았고, 출력은 라인 프린터로 이루어졌다. 종이 테이프 '전체' 모드에서는 소문자 입력도 가능했다. 코드에서 괄호 `(`와 `)`를 문자열 따옴표로 사용하고, 공백 문자를 `%`로 표기한 점이 특징이다.[24]
'PROGRAM' (HELLO)
'BEGIN'
'COMMENT' 열린 따옴표는 '(', 닫힌 따옴표는 ')', 출력 가능한 공백은 %로 써야 함 (일반 공백은 무시됨);
WRITE TEXT('('HELLO%WORLD')');
'END'
'FINISH'
5. LEAP
LEAP는 알골 60 프로그래밍 언어의 확장으로, 삼중 연결 기억 장치를 제공한다. 이 삼중 연결 기억 장치의 세 가지 항목은 객체의 속성이 특정 값을 갖는다는 연관 관계를 나타낸다. LEAP는 1967년 캘리포니아 대학교 버클리의 제롬 펠드먼(Jerome Feldman)과 MIT 링컨 연구소의 폴 로브너(Paul Rovner)에 의해 개발되었다. LEAP는 SAIL에서도 구현되었다.
6. 표준화
알골 60은 코볼과 함께 표준화를 추구한 최초의 언어 중 하나였다.
- ISO 1538:1984 프로그래밍 언어 - 알골 60 (안정화)
- ISO/TR 1672:1977 알골 기본 기호의 하드웨어 표현 (현재 철회됨)
참조
[1]
논문
Backus normal Form vs Backus Naur Form
1964-12
[2]
웹사이트
ACM Award Citation / Peter Naur
http://awards.acm.or[...]
ACM
2005
[3]
웹사이트
How recursion got into programming: a tale of intrigue, betrayal, and advanced programming-language semantics
https://vanemden.wor[...]
2014
[4]
웹사이트
Hints on Programming Language Design
http://www.eecs.umic[...]
1973-12
[5]
웹사이트
Revised(3) Report on the Algorithmic Language Scheme (Dedicated to the Memory of ALGOL 60)
http://groups.csail.[...]
2009-10-20
[6]
웹사이트
The Encyclopedia of Computer Languages
http://hopl.murdoch.[...]
[7]
논문
Dijkstra's Rallying Cry for Generalization: the Advent of the Recursive Procedure, late 1950s – early 1960s
http://www.dijkstras[...]
[8]
서적
Software Engineering
Centrum Wiskunde & Informatica
2003-06-30
[9]
간행물
A syntax directed compiler for ALGOL 60
1961-01
[10]
서적
History of programming languages
[11]
논문
Some techniques used in the ALCOR Illinois 7090
https://doi.org/10.1[...]
[12]
논문
The ALCOR Illinois 7090/7094 post mortem dump
[13]
웹사이트
Rechenautomaten mit Trommelspeicher
http://www.fv-tsd.de[...]
Förderverein der Technischen Sammlung Dresden
[14]
논문
Algol in France: From Universal Project to Embedded Culture
https://www.academia[...]
2014
[15]
인용
Kurtz, ''op. cit.'', page 517.
[16]
학위논문
Etude et réalisation d'un compilateur Algol60 sur calculateur éléctronique du type IBM 7090/94 et 7040/44
https://tel.archives[...]
Université Joseph-Fourier - Grenoble I
1964-06
[17]
학회
Description d'un compilateur ALGOL
IBM
1965-04-27
[18]
서적
An Algol 60 compiler in Algol 60
Mathematisch Centrum
1973
[19]
서적
Compilers: Principles, Techniques, and Tools
Addison-Wesley
[20]
웹사이트
"803 ALGOL"
http://www.billp.org[...]
the manual for [[Elliott 803]] ALGOL
[21]
웹사이트
The ALGOL Programming Language
http://www.engin.umd[...]
2022-01-11
[22]
웹사이트
Hello world! Example Program
http://www.engin.umd[...]
2022-01-11
[23]
문서
Fortran#"Hello, World!" example
[24]
웹사이트
ICL 1900 series: Algol Language
http://www.icl1900.c[...]
ICL Technical Publication 3340
[25]
간행물
Backus Normal Form vs Backus Naur Form
1964
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com