인식하다
ALGOL![]() 1965년 ALGOL-20 매뉴얼 | |
패러다임 | 절차, 필수, 구조화 |
---|---|
가족 | 인식하다 |
설계자 | Bauer, Bottenbruch, Rutishauser, Samelson, Backus, Katz, Perlis, Wegstein, Naur, Vauquois, van Wijngaarden, Woodger, Green, McCarthy |
처음 등장한 | 전 |
타이핑 분야 | 정적, 강력 |
범위 | 어휘 |
영향받은 | |
후속 명령어(일명 ALGOL과 유사한 언어 포함) 예: PL/I, Simula, Pascal, C 및 Scheme |
ALGOL(/ˈelɒl, -ɡːl/; "알고리즘 언어"[1]의 줄임말)은 1958년에 개발된 명령형 컴퓨터 프로그래밍 언어입니다.ALGOL은 다른 많은 언어에 큰 영향을 미쳤으며, ACM(Association for Computing Machine)이 30년 [2]이상 교재 및 학술 자료에서 사용한 알고리즘 기술 표준 방식이었다.
대부분의 현대 언어의 구문이 "알골어"[3]와 비슷하다는 점에서, 그것은 거의 동시대적인 세 개의 다른 고급 프로그래밍 언어인 FORTRAN, Lisp,[4] COBOL보다 더 영향력이 있었다.이는 FORTRAN에서 인식되는 문제를 피하기 위해 설계되었으며, 결국 PL/I, Simula, BCPL, B, Pascal, C를 포함한 많은 다른 프로그래밍 언어를 만들어냈습니다.
ALGOL은 코드 블록과begin
...end
구분하기 위한 쌍입니다.또한 어휘 범위와 함께 중첩된 함수 정의를 구현한 최초의 언어이기도 하다.게다가, 그것은 공식 언어 정의에 세심한 주의를 기울인 최초의 프로그래밍 언어였고, 알골 60 보고서를 통해 언어 설계의 주요 공식 문법 표기법인 백커스-나우르 형식을 도입했다.
세 가지 주요 사양이 있으며, 처음 발행된 해의 이름을 따서 명명되었습니다.
- ALGOL 58 – 원래는 국제 대수 언어를 위해 IAL로 불릴 것을 제안했습니다.
- ALGOL 60 – 1961년에 X1 ALGOL 60으로 처음 구현되었습니다.1963년 [5][6][7]개정.
- ALGOL 68 – 유연한 어레이, 슬라이스, 병렬 처리, 오퍼레이터 식별 등의 새로운 요소가 도입되었습니다.1973년 [8]개정.
ALGOL 68은 ALGOL 60과 실질적으로 다르고 잘 받아들여지지 않았기 때문에 일반적으로 "Algol"은 ALGOL 60과 그 방언을 의미합니다.
역사
ALGOL은 1958년 취리히에 있는 스위스 연방 공과대학에서 열린 회의에서 유럽과 미국의 컴퓨터 과학자들에 의해 공동 개발되었습니다.ALGOL 58).여기에는 참조 구문, 발행 구문 및 구현 구문의 세 가지 구문이 지정되었습니다.구문이 다르기 때문에 언어마다 소수점(쉼표와 마침표)에 다른 키워드 이름과 표기법을 사용할 수 있습니다.
ALGOL은 주로 미국과 유럽의 연구 컴퓨터 과학자들에 의해 사용되었다.상용 어플리케이션에서의 사용은 설명에 표준 입출력 설비가 없고 Burroughs Corporation 이외의 대형 컴퓨터 벤더가 언어에 대한 관심이 부족했기 때문에 방해되었습니다.그러나 ALGOL 60은 알고리즘 출판의 표준이 되었고 미래의 언어 발달에 지대한 영향을 미쳤다.
John Backus는 특별히 ALGOL 58을 위해 프로그래밍 언어를 기술하는 Backus 정규형 방식을 개발했습니다.이것은 피터 나우르에 의해 ALGOL 60용으로 수정되고 확장되었으며, 도널드 크누스의 제안에 따라 바커스-나우르 [9]형태로 개명되었다.
Peter Naur: "ALGOL Bulletin의 편집자로서 저는 ALGOL Bulletin의 국제적인 토론에 참여했고 1959년 11월에 유럽 언어 디자인 그룹의 멤버로 선정되었습니다.저는 1960년 [10]1월 파리에서 열린 ALGOL 60 회의의 결과로 작성된 ALGOL 60 보고서의 편집자였습니다."
파리 회의(1월 1일~16일)에는 다음 사람이 참석했다.
- Friedrich L. Bauer, Peter Naur, Heinz Rutishauser, Klaus Samelson, Bernard Vauquois, Adrian van Wijgaarden, Michael Woodger(유럽 출신)
- John W. Backus, Julien Green, Charles Katz, John McCarthy, Alan J. Perlis, Joseph Henry Wegstein (미국 출신)
Alan Perlis는 그 회의에 대해 생생하게 묘사했다: "회의는 지치고, 끝이 없고, 흥분되었다.자신의 좋은 아이디어가 다른 사람의 나쁜 아이디어와 함께 버림받았을 때 사람들은 화가 났다.그럼에도 불구하고, 근면은 전체 기간 동안 지속되었다.13명의 궁합은 훌륭했다.
ALGOL 60은 그 뒤를 잇는 많은 언어에 영감을 주었습니다.토니 호어는 다음과 같이 말했다. "이 언어는 그 시대에 너무 앞서서 이전 언어뿐만 아니라 거의 모든 [11]후속 언어들에 대한 개선이었다."스킴 프로그래밍 언어([12]Scheme programming language)는 ALGOL에 경의를 표하여 표준 문서에 "알고리즘 언어 체계에 관한 개정 보고서"라는 문구를 채택했다.
ALGOL 및 프로그래밍 언어 연구
Peter Landin이 지적했듯이, ALGOL은 (이름별 호출) 람다 미적분과 매끄럽게 명령적 효과를 결합한 최초의 언어였다.아마도 그 언어의 가장 우아한 표현은 존 C 덕분일 것이다. 레이놀즈, 그리고 통사적, 의미적 순수성을 가장 잘 나타내죠.레이놀즈의 이상화된 ALGOL은 또한 ML과 같은 가치별 호출 언어에 의해 사용되는 글로벌 효과와는 대조적으로, 이름별 언어의 맥락에서의 로컬 효과의 적합성에 대한 설득력 있는 방법론적인 주장을 만들었다. 언어의 개념적 무결성은 Progra와 함께 의미 연구의 주요 대상 중 하나가 되었다.계산 가능 함수(PCF)와 [13]ML을 결합합니다.
IAL 구현 일정
지금까지 알골 [14]60의 증가, 확장, 파생 및 하위 언어들이 최소 70건 있었다.
이름. | 연도 | 작가. | 나라 | 묘사 | 타깃 CPU |
---|---|---|---|---|---|
ZMMD 구현 | 1958 | 프리드리히 L. 바우어, 하인츠 루티샤우저, 클라우스 사멜슨, 헤르만 보텐브루흐 | 독일. | ALGOL 58의 실장 | Z22 (나중에 Zuse의 Z23은 Algol 60 [15]컴파일러와 함께 제공되었습니다.) |
X1 ALGOL 60 | 1960년 8월[16] | 에드저 W. 다이크스트라와 야프 A. 조네벨드 | 네덜란드 | ALGOL[17] 60의 최초 구현 | 일렉트로지카 X1 |
엘리엇 알골 | 1960년대 | C. A. R. 호어 | 영국 | 1980년[18] 튜링 강의 주제 | 엘리엇 803, 엘리엇 503, 엘리엇 4100 시리즈 |
즐겁다 | 1960 | 쥘 슈워츠 | 미국 | Ada 이전의 DOD HOL | 각종(기사 참조) |
버로스 알골 (몇 가지 종류) | 1961 | Burroughs Corporation (Hoare, Dijkstra 등 참여) | 미국 | Burroughs(현재는 Unisys MCP 기반) 컴퓨터의 기반 | 대규모 시스템과 미드레인지 시스템도 버로우합니다. |
케이스 ALGOL | 1961 | 케이스 인스티튜트[19] | 미국 | Simula는 원래 케이스 ALGOL의 시뮬레이션 확장으로 계약되었다. | 유니백 1107 |
고골 | 1961 | 윌리엄 M.맥키먼 | 미국 | ODIN 시분할[20] 시스템용 | PDP-1 |
RegneCentralen | 1961 | 피터 나우르, 예른 젠슨 | 덴마크 | 완전한 Algol 60 구현 | 레지센트랄의 DASK |
다트머스 알골 30 | 1962 | 토마스 유진 커츠 외 | 미국 | LGP-30 | |
USS 90 알골 | 1962 | L. 페트론 | 이탈리아 | ||
알골 번역기 | 1962 | G. van der Mey와 W.L. van der Poel | 네덜란드 | Staatsbedrijf der Posterijen, Telegrafie en Telefonie | 얼룩말 |
키즈그로브 알골 | 1963 | F. G. 던컨 | 영국 | 영국 전기 회사 KDF9 | |
밸브 | 1963 | 발 쇼레 | 미국 | META II 컴파일러 테스트 | |
숫돌 | 1964 | 브라이언 랜델과 L. J. 러셀 | 영국 | 영국 전기 회사의 원자력 부문Ferranti Pegasus, 국립 물리 연구소 ACE 및 English Electric DEUCE 구현의 선구자. | 영국 전기 회사 KDF9 |
알골 | 1965 | 노르웨이 | 유니백 | ||
알헤크 | 1965 | 구소련 | ALGOL-60 및 COBOL 지원 기반 경제 태스크용 аа ,а 。 | 민스크-22 | |
알골 W | 1966 | 니클라우스 워스 | 미국 | ALGOL 60의 후계자 제안 | IBM 시스템/360 |
말골 | 1966 | publ. A.Viil, M Kotli & M. Rakhendi, | 에스토니아, 소련 | 민스크-22 | |
알감스 | 1967 | GAMS group (ГАМС, группа автоматизации программирования для машин среднего класса), cooperation of Comecon Academies of Science | 코메콘 | Minsk-22, 이후 ES EVM, BESM | |
알골/잠 | 1967 | 폴란드 | 폴란드 ZAM 컴퓨터 | ||
시뮬라 67 | 1967 | 올레 조한 달과 크리스틴 니고르 | 노르웨이 | 알골 60(클래스 포함) | 유니백 1107 |
트리플렉스-ALGOL 카를스루에 | 1967/1968 | 카를스루에, 독일 | ALGOL 60(1963) (구간 산술용 트리플x 번호 포함) | [21] | |
중국 알골 | 1972 | 중국 | 기호 체계로 표현되는 한자 | ||
DG/L | 1972 | 미국 | DG Eclipse 컴퓨터 제품군 | ||
S알골 | 1979 | 론 모리슨 | 영국 | 교육 언어로 사용하려는 직교 데이터 유형 추가 | Java VM에 후속 구현을 수반하는 PDP-11 |
버로즈 방언은 ESPOL과 NEWP와 같은 특별한 부트스트랩 사투리를 포함했다.후자는 Unisys MCP 시스템소프트웨어에서도 사용됩니다.
특성.
공식적으로 정의된 ALGOL 60에는 I/O 설비가 없습니다. 구현은 서로 거의 호환되지 않는 방식으로 자체 정의되었습니다.반면, ALGOL 68은 광범위한 전송량(입출력) 기능을 제공했습니다.
ALGOL 60에서는 파라미터 전달에 대해 공통의 값별 콜과 이름별 콜의 두 가지 평가 전략이 허용됩니다.이름에 의한 콜은 참조에 의한 콜과는 대조적으로 일정한 효과가 있습니다.예를 들어 매개 변수를 값 또는 참조로 지정하지 않으면 전달되는 실제 매개 변수가 정수 변수와 동일한 정수 [22]변수에 의해 인덱싱된 배열인 경우 두 매개 변수의 값을 스왑하는 절차를 개발할 수 없습니다.(i, A[i])를 함수에 스왑하기 위한 포인터를 전달한다고 합니다.이제 스왑이 참조될 때마다 재평가됩니다.i := 1 및 A [i] := 2라고 하면 스왑이 참조될 때마다 값의 다른 조합([1,2], [2,1], [1,2] 등)이 반환됩니다.랜덤 함수가 실제 인수로 전달되는 경우에도 유사한 상황이 발생합니다.
Call-by-name은 많은 컴파일러 설계자에 의해 구현에 사용되는 흥미로운 "Thunks"로 알려져 있습니다.Donald Knuth는 "재귀 참조와 로컬 참조가 아닌 참조"를 올바르게 구현한 컴파일러를 분리하기 위해 "인간 또는 소년 테스트"를 고안했습니다.이 테스트에서는 이름에 의한 콜의 예를 나타냅니다.
ALGOL 68은 Adrian van Vijngaarden에 의해 발명되고 그의 이름을 딴 2단계 문법 형식을 사용하여 정의되었습니다.Van Wijngaarden 문법은 특정 ALGOL 68 프로그램을 인식하는 무한한 제작 세트를 생성하기 위해 문맥 없는 문법을 사용합니다; 특히, 그들은 많은 다른 프로그래밍 언어 표준에서 "세만틱스"로 라벨이 붙여지고 모호하기 쉬운 자연 언어 산문으로 표현되어야 하는 일종의 요구 사항을 표현할 수 있습니다.그 후 컴파일러에서 정식 언어 파서에 부가된 애드혹코드로 구현됩니다.
예와 휴대성 문제
코드 샘플 비교
알골 60
(굵은 글씨를 쓰는 방법은 구현에 따라 다릅니다.예를 들어, 정수의 따옴표(인테그먼트 마크 포함)가 있습니다.이것은 스트로핑이라고 불립니다).
절차 Absmax(a) 크기:(n, m) 결과:(y) 첨자:(i, k); 값 n, m; 배열 a; 정수 n, m, i, k; real y; 주석 행렬 a의 절대 최대 요소는 y로 전송되고, 이 요소의 첨자는 i 및 k: p= 0으로 시작됩니다.복근(a[p, q]) > y의 경우 m까지 1:= 복근(a[p, q]), i:= p; k:= q end Absmax
다음은 엘리엇 803 ALGOL을 [23]사용하여 테이블을 생성하는 방법의 예입니다.
부동 소수점 알골 테스트' A:= 0.0 D단계에 대해 실제 A,B,C,D' 읽기 D' 시작 6.3 인쇄 펀치(3)를 시작할 때까지? B:= SIN(A)'C' COS(A)', SAMLINE(3)', 인쇄 펀치(3)
PUNCH(3)는 테이프 펀치가 아닌 텔레프린터에 출력을 송신합니다.
SAMELINE은 인수 사이에 통상적으로 인쇄되는 캐리지 리턴 + 줄바꿈을 억제합니다.
ALIGNED(1,6)는 소수점 이전 1자리 및 소수점 이후 6자리로 출력 형식을 제어합니다.
알골 68
다음 코드 샘플은 위의 ALGOL 60 코드 샘플의 ALGOL 68 버전입니다.
ALGOL 68 구현에서는 스트로핑에 대한 ALGOL 60의 접근 방식을 사용했습니다.ALGOL 68의 경우 굵은 글씨의 토큰은 예약된 단어, 유형(모드) 또는 연산자입니다.
만약 a[p, q]을 abs Proc 복근 max)([,]real,ref 실제는 y,ref intik)real:2⌈a에 의해 매트릭스의 크기 ⌈a의 절대적 위대한 요소가, 논평하 y 수 있으며, 이 요소의 나는이고, k에 아래 첨자, 논평 진정한 y:=0으로 시작하고, 나는:=⌊a, k:=2⌊a, ⌊a p에에서 ⌈a니 2⌊a 2⌈a에서 q을 합니다. y 다음 y:)복근 a[p, q]전달된다.;i : = p ; k : = q fi od ; y end # 복근 최대 #
주의: 어레이의 하한(θ)과 상한(θ) 및 어레이 슬라이싱은 프로그래머가 직접 사용할 수 있습니다.
부동소수점 algol68 test: ( real a, b, c, d; # printf : 출력은 파일 out으로 송신됩니다.# printf440p$; – 새 페이지 # printf(($pg$,"Enter d:"); read(d), a:=step*d; a <= 2*pi do printf440l$; # $l$) - 새 행을 선택합니다.# b : = sin ( a ) ; c : = cos ( a ) ; printf ( ( ( $z - d.6d$ , a , b , c ) )# 출력은 소수점 앞자리1 자리 및 소수점 뒤6 자리수로 포맷됩니다.# od )
일정:안녕 세계
어떤 구현에서 다른 구현으로의 프로그램 변화 및 이식성 부족은 고전적인 hello 월드 프로그램에서 쉽게 확인할 수 있습니다.
ALGOL 58(IAL
ALGOL 58에는 I/O 설비가 없었습니다.
ALGOL 60 패밀리
ALGOL 60에는 I/O 설비가 없었기 때문에, ALGOL에는 휴대용 hello world 프로그램이 없습니다.다음 세 가지 예는 Burroughs Extended Algol에 있습니다.처음 2개의 다이렉트 출력은 인터랙티브 단말기에서 실행됩니다.첫 번째는 C와 같은 문자 배열을 사용합니다.언어를 사용하면 어레이 식별자를 어레이에 대한 포인터로 사용할 수 있으므로 REPLACE 문에서 사용할 수 있습니다.
시작한다. 파일 F(친절한=원격의); EBCDIC 어레이 E[0:11]; 교체하다 E 타고 "HELLO WORLD!"; 기입하다(F, *, E); 끝..
인라인 형식을 사용하는 보다 단순한 프로그램:
시작한다. 파일 F(친절한=원격의); 기입하다(F, < >"HELLO WORLD!">); 끝..
Display 문을 사용하여 더욱 심플한 프로그램.출력은 시스템콘솔('SPO')에 도달합니다.
시작한다. 디스플레이("HELLO WORLD!") 끝..
Elliott Algol I/O를 사용하는 다른 예는 다음과 같습니다.엘리엇 알골은 "열린 문자열 따옴표"와 "닫힌 문자열 따옴표"에 다른 문자를 사용했습니다. ' 및 ' 입니다.
프로그램. 하이폴크스; 시작한다. 인쇄물 ‘안녕 세계’ 끝.;
아래는 엘리엇 803 알골(A104)의 버전입니다.표준 엘리엇 803은 5홀 종이 테이프를 사용했기 때문에 대문자만 사용되었습니다.코드에는 따옴표 문자가 없기 때문에 £(영국 파운드 기호)는 따옴표로, ?(물음표)는 따옴표로 사용되었습니다.특별한 시퀀스는 큰따옴표로 묶었다(예: £L?)텔레프린터에 새로운 라인을 작성했습니다).
HIFOLKS의 BEGINT 프린트 helloHELLO WORLD l?끝'
ICT 1900 시리즈 Algol I/O 버전에서는 종이 테이프 또는 펀치 카드로부터의 입력이 가능했습니다.용지 테이프의 「풀」모드로 소문자를 사용할 수 있습니다.출력은 라인 프린터.열기 및 닫기 따옴표 문자는 '(' 및 ')'와 공백을 사용하여 %[24]로 표현되었습니다.
'시작' 텍스트(''HELLO%WORLD''), '종료'
알골 68
ALGOL 68 코드는 일반적으로 소문자로 예약되어 있지만 굵은 글씨 또는 밑줄이 쳐져 있습니다.
begin printf($gl$, Hello, world!) end
「Algol 68 Report」에서는, 입출력 설비를 통칭해 「트랜스풋」이라고 부르고 있습니다.
ALGOL 특수문자 연표
ALGOL은 문자 집합이 다양하고 빠르게 진화하던 시기에 고안되었습니다.또한 ALGOL은 대문자가 필요하도록 정의되었습니다.
1960: IFIP – Algol 60 언어 및 보고서에는 현대 컴퓨터 및 운영 체제에서 사용할 수 있는 몇 가지 수학 기호가 포함되어 있었습니다.그러나 유감스럽게도 당시 대부분의 컴퓨터 시스템에서는 지원되지 않았습니다.예를 들어 ×, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ⏨, ⏨ 등이다.
1961년 9월: ASCII – ASCII 문자 집합은 개발 초기에 ALGOL의 부울 연산자 /\ 및 \/[25]를 지원하기 위해 \(백슬래시) 문자를 추가했습니다.
1962: ALCOR – 이 문자 집합에는 곱셈을 위한 특이한 "᛭" 룬[26] 십자 문자와 부동 소수점 [28][29][30]표기법을 위한 """ 십진 지수[27] 기호가 포함되어 있습니다.
1964: GOST – 1964 소련 표준 GOST 10859에서는 4비트, 5비트, 6비트 및 7비트 문자를 [31]ALGOL로 인코딩할 수 있었습니다.
1968: "Algol 68 Report" – 현존하는 ALGOL 문자를 사용했으며, IBM 2741 키보드에서 볼(또는 골프공) 인쇄 헤드가 삽입된 →, ↑, □, □, ,, charact 및 charact 문자를 추가로 채택했습니다.이것들은 1960년대 중반 ALGOL 68의 초안이 작성되고 있을 때 사용할 수 있게 되었다.보고서는 러시아어, 독일어, 프랑스어 및 불가리아어로 번역되었으며, 예를 들어 소련의 BESM-4의 키릴 문자 집합과 같이 더 큰 문자 집합을 가진 언어로 프로그래밍할 수 있습니다. 또한 모든 ALGOL의 문자는 유니코드 표준의 일부이며 대부분의 글꼴을 사용할 수 있습니다.
2009년 10월:Unicode –⏨
(10진수 지수 기호)는 과거의 부란 프로그램 ALGOL [32]소프트웨어와의 하위 호환성을 위해 유니코드 5.2에 추가되었습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ 이 언어 패밀리의 이름은 대소문자가 혼재되어 있는 경우가 있습니다(Algol 60 Archived 2007년 6월 25일 Wayback Machine에서) 또는 모두 대문자로 표시되는 경우가 있습니다(ALGOL68 Archived 2014년 9월 13일 Wayback Machine에서).알기 쉽게 하기 위해 이 문서에서는 ALGOL을 사용합니다.
- ^ 2011년 10월 17일 Wikiwix 압축된 알고리즘 아카이브에서 ACM 아카이브 알고리즘 수집.ACM.
- ^ O'Hearn, P. W.; Tennent, R. D. (September 1996). "Algol-like languages, Introduction". Archived from the original on 14 November 2011.
- ^ "The ALGOL Programming Language" 2016년 10월 6일 미시간 대학교 디어본 웨이백 머신에 보관
- ^ Backus, J. W.; Bauer, F. L.; Green, J.; Katz, C.; McCarthy, J.; Perlis, A. J.; Rutishauser, H.; Samelson, K.; Vauquois, B.; Wegstein, J. H.; van Wijngaarden, A.; Woodger, M. (May 1960). Naur, Peter (ed.). "Report on the Algorithmic Language ALGOL 60". Communications of the ACM. Copenhagen. 3 (5): 299–314. doi:10.1145/367236.367262. ISSN 0001-0782. S2CID 278290.
- ^ "Revised Report on the Algorithmic Language Algol 60". 1963. Archived from the original on 25 June 2007. Retrieved 8 June 2007.
- ^ "An ALGOL 60 Translator for the X1" (PDF). 1961. Retrieved 7 January 2021.
- ^ "Revised Report on the Algorithmic Language ALGOL 68" (PDF). 1973. Archived (PDF) from the original on 13 September 2014. Retrieved 13 September 2014.
- ^ Knuth, Donald E. (1964). "Backus Normal Form vs Backus Naur Form". Communications of the ACM. 7 (12): 735–736. doi:10.1145/355588.365140. S2CID 47537431.
- ^ ACM상 표창: Peter Naur, Archive-It, 2005년 4월 2일 아카이브
- ^ "프로그래밍 언어 설계에 관한 힌트" 2009년 9월 15일 Wayback Machine, C.A.R. Hoare, 1973년 12월 아카이브.페이지 27. (이 문장은 최초의 ALGOL 60 컴파일러 구현에도 관여하고 있는 Edsger W. Dijkstra에 의해 잘못 해석되는 경우가 있습니다.)
- ^ Dybvig, R. K.; et al. Rees, Jonathan; Clinger, William; Abelson, Hal (eds.). "Revised(3) Report on the Algorithmic Language Scheme, (Dedicated to the Memory of ALGOL 60)". Archived from the original on 14 January 2010. Retrieved 20 October 2009.
- ^ O'Hearn, Peter; Tennent, Robert D. (1997). Algol-Like Languages. Cambridge, Massachusetts, United States: Birkhauser Boston. doi:10.1007/978-1-4612-4118-8. ISBN 978-0-8176-3880-1. S2CID 6273486.
- ^ "The Encyclopedia of Computer Languages". Archived from the original on 27 September 2011. Retrieved 20 January 2012.
- ^ 2010년 8월 20일 미국 캘리포니아 마운틴뷰의 컴퓨터 박물관 역사 센터를 위해 Hünfeld의 Konrad Zuse Schule에 의해 복원된 Historical Zuse-Computer Z23 웨이백 머신에서 컴퓨터 박물관 역사 아카이브
- ^ Daylight, E. G. (2011). "Dijkstra's Rallying Cry for Generalization: the Advent of the Recursive Procedure, late 1950s – early 1960s". The Computer Journal. 54 (11): 1756–1772. CiteSeerX 10.1.1.366.3916. doi:10.1093/comjnl/bxr002. Archived from the original on 12 March 2013.
- ^ Kruseman Aretz, F.E.J. (30 June 2003). "The Dijkstra-Zonneveld ALGOL 60 compiler for the Electrologica X1". Software Engineering (PDF). History of Computer Science. Amsterdam: Centrum Wiskunde & Informatica. Archived (PDF) from the original on 4 March 2016.
- ^ Hoare, Antony (1980). "The Emperor's Old Clothes". Communications of the ACM. 24 (2): 75–83. doi:10.1145/358549.358561. Archived from the original on 13 September 2017.
- ^ Koffman, Eliot. "All I Really Need to KnowI Learned in CS1" (PDF). Archived from the original (PDF) on 12 October 2012. Retrieved 20 May 2012.
- ^ "GOGOL – PDP-1 Algol 60 (Computer Language)". Online Historical Encyclopaedia of Programming Languages. Archived from the original on 2 February 2018. Retrieved 1 February 2018.
- ^ Wippermann, Hans-Wilm (1968) [1967-06-15, 1966]. "Definition von Schrankenzahlen in Triplex-ALGOL". Computing (in German). Karlsruhe, Germany: Springer. 3 (2): 99–109. doi:10.1007/BF02277452. ISSN 0010-485X. S2CID 36685400. (11페이지)
- ^ Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey D. (1986). Compilers: Principles, Techniques, and Tools (1st ed.). Addison-Wesley. ISBN 0-201-10194-7., 섹션 7.5 및 참조사항
- ^ "803 ALGOL" 2010년 5월 29일 Wayback Machine에 보관, 엘리엇 803 ALGOL 매뉴얼
- ^ "ICL 1900 series: Algol Language". ICL Technical Publication 3340. 1965.
- ^ ASCII가 2014년 7월 11일 Wayback Machine에서 백슬래시를 아카이브한 방법, Bob Bemer
- ^ 철/루닉 크로스
- ^ 소수점 지수 기호
- ^ Baumann, R. (October 1961). "ALGOL Manual of the ALCOR Group, Part 1" [ALGOL Manual of the ALCOR Group]. Elektronische Rechenanlagen (in German): 206–212.
- ^ Baumann, R. (December 1961). "ALGOL Manual of the ALCOR Group, Part 2" [ALGOL Manual of the ALCOR Group]. Elektronische Rechenanlagen (in German). 6: 259–265.
- ^ Baumann, R. (April 1962). "ALGOL Manual of the ALCOR Group, Part 3" [ALGOL Manual of the ALCOR Group]. Elektronische Rechenanlagen (in German). 2.
- ^ "GOST 10859 standard". Archived from the original on 16 June 2007. Retrieved 5 June 2007.
- ^ Broukhis, Leonid (22 January 2008). "Revised proposal to encode the decimal exponent symbol" (PDF). www.unicode.org. ISO/IEC JTC 1/SC 2/WG 2. Archived (PDF) from the original on 31 July 2015. Retrieved 24 January 2016.
This means that the need to transcode GOST-based software and documentation can still arise: legacy numerical algorithms (some of which may be of interest,e.g. for the automatic landing of the Buran shuttle ...) optimized for the non-IEEE floating point representation of BESM-6 cannot be simply recompiled and be expected to work reliably, and some human intervention may be necessary.
추가 정보
- F.L. 바우어, R. 바우만, M.펠리치아노, K. Samelson, 알골 소개프렌티스 홀, 1964년, ISBN 0-13-477828-6
- Brian Randell 및 L. J. Russell, ALGOL 60 구현: 컴퓨터상의 ALGOL 60 프로그램의 번역과 사용. 학술 출판사, 1964년. Whetstone 컴파일러의 설계입니다.컴파일러 구현에 대한 초기 공개 설명 중 하나입니다.관련 문서를 참조하십시오.Whetstone Algol Revisited와 The Whetstone KDF9 Algol Translator by Brian Randell
- Dijkstra, E. W (1961), Algol 60 translation: an algol 60 translator for the x1 and making a translator for algol 60 (PDF), report MR 35/61, Amsterdam: Mathematisch Centrum
- Kruseman Aretz, Frans E.J., The Dijkstra–Zonneveld ALGOL 60 compiler for the Electrologica X1 (PDF), Historical note SEN, 2, Amsterdam: Centrum voor Wiskunde en Informatica
- Peter Naur 등의 Algorithmic Language Algol 60 개정 보고서ALGOL 정의
- 피터 나우르의 "ALGOL 60 개발의 마지막 단계의 유럽측"