ALGOL
![]() ALGOLのロゴ | |
パラダイム |
![]() |
---|---|
1958 | |
バウアー、 ルティシュハウザー、 サメルソン、 バッカス、 パリス、 ナウア、 ファン・ワインハールデン、 マッカーシー | |
| |
ALGOL 60、ALGOL 68 | |
FORTRAN ![]() | |
Pascal、C |
ALGOL(アルゴル)は、begin
と end
で
主 なバージョン
[- ALGOL 58
当初 IAL (International Algebraic Language) という名称 で提案 された[5]。- ALGOL 60
- 1960
年 中 ごろに X1 ALGOL 60 として実装 されたのが最初 で、1963年 に改訂 された[4][6]。 - ALGOL 68
- 1968
年 に発表 され、1973年 に改訂 された[7]。可変 配列 、スライス、並列 性 、演算 子 識別 、その他 の拡張 可能 な機能 などが新 たに導入 されている。
IAL (ALGOL 58) は
歴史
[1950
ALGOL 58 は
ジョン・バッカスは ALGOL 58 を
ピーター・ナウアは ALGOL Bulletin という
このパリでの
- ヨーロッパからの
参加 者 - フリードリッヒ・L・バウアー、ピーター・ナウア、ハインツ・ルティシュハウザー、クラウス・サメルソン、Bernard Vauquois、アドリアン・ファン・ワインハールデン、Michael Woodger
- アメリカからの
参加 者 - ジョン・バッカス、Julien Green、Charles Katz、ジョン・マッカーシー、アラン・パリス、Joseph Henry Wegstein
アラン・パリスはこの
ALGOL 60 はその
1968
ALGOLとプログラミング言語 研究
[ピーター・ランディンが
実装 例
[これまでに ALGOL 60 の
ALGOL 60 の
ZMMD-implementation | 1958 |
Bauer, Rutishauser, Samelson, Bottenbruch | ドイツ | ALGOL 58 の |
Z22 ( |
X1 ALGOL 60 | 1960 |
エドガー・ダイクストラ、 Jaap A. Zonneveld | オランダ | ALGOL 60 の |
Electrologica X1 |
Elliott ALGOL | 1960 |
アントニー・ホーア | イギリス | Elliott 803 & Elliott 503 | |
JOVIAL | 1960 |
Jules Schwarz | アメリカ | Ada |
|
Burroughs Algol (いくつか |
1961 |
バロース(ホーアやダイクストラも |
アメリカ | バロースのメインフレーム(およびユニシスの |
バロースの および |
Case ALGOL | 1961 |
ケース・ウェスタン・リザーブ |
アメリカ | Simulaは Case ALGOL のシミュレーション |
UNIVAC 1107 |
GOGOL | 1961 |
Bill McKeeman | アメリカ | ODINタイムシェアリングシステム |
PDP-1 |
RegneCentralen ALGOL | 1961 |
ピーター・ナウア、Jørn Jensen | デンマーク | ALGOL 60 の |
DASK (Regnecentralen) |
Dartmouth ALGOL 30 | 1962 |
トーマス・ユージン・カーツ |
アメリカ | LGP-30 | |
USS 90 Algol | 1962 |
L. Petrone | イタリア | ||
Algol Translator | 1962 |
G. van der Mey, W.L. van der Poel | オランダ | オランダ |
ZEBRA |
Kidsgrove Algol | 1963 |
F. G. Duncan | イギリス | イングリッシュ・エレクトリック KDF9 | |
VALGOL | 1963 |
Val Schorre | アメリカ | META II コンパイラジェネレータのテストとして |
|
Whetstone | 1964 |
Brian Randell, L J Russell | イギリス | イングリッシュ・エレクトリック KDF9 | |
NU ALGOL | 1965 |
ノルウェー | UNIVAC | ||
ALGEK | 1965 |
ソビエト |
ALGOL 60 とCOBOLに |
Minsk-22 | |
MALGOL | 1966 |
publ. A. Viil, M Kotli & M. Rakhendi | エストニア・ソビエト |
Minsk-22 | |
ALGAMS | 1967 |
GAMS( |
コメコン | Minsk-22、 | |
ALGOL/ZAM | 1967 |
ポーランド | ZAM(ポーランド | ||
Simula 67 | 1967 |
オーレ=ヨハン・ダール、クリステン・ニゴール | ノルウェー | ALGOL 60 にオブジェクト |
UNIVAC 1107 |
Chinese Algol | 1972 |
||||
DG/L | 1972 |
データゼネラル | アメリカ | Eclipseファミリ | |
S-algol | 1979 |
Ron Morrison | イギリス | PDP-11( |
特徴
[ALGOL 60 は、
transput
[
ALGOL 60 では
しかし、ALGOLの
ALGOL のBEGIN
/END
(C {
}
)の
BEGIN X := 1 ; IF (X > 0) THEN BEGIN : END END
例 と移植 性 問題
[コード例 の比較
[ALGOL 60
[PROCEDURE Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k) ; VALUE n, m ; ARRAY a ; INTEGER n, m, i, k ; REAL y ; COMMENT The absolute greatest element of the matrix a, of size n by m is transferred to y, and the subscripts of this element to i and 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
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??' B := SIN(A)' C := COS(A)' PRINT PUNCH(3),SAMELINE,ALIGNED(1,6),A,B,C' END' END'
PUNCH(3) は
ALGOL 68
[ALGOL 68 でも ALGOL 60 のストロッピングを
PROC ABS max = ([,]real a, REF real y, REF int i, k)real: COMMENT The absolute greatest element of the matrix a, of size ⌈a by 2⌈a is transferred to y, and the subscripts of this element to i and k; COMMENT BEGIN real y := 0; i := ⌊a; k := 2⌊a; FOR p FROM ⌊a TO ⌈a DO FOR q FROM 2⌊a TO 2⌈a DO IF ABS a[p, q] > y THEN y := ABS a[p, q]; i := p; k := q FI OD OD; y END # abs max #
なお、lower (⌊) と upper (⌈) は
floating point algol68 test: ( real a,b,c,d; printf(($pg$,"Enter d:")); read(d); FOR step FROM 0 WHILE a:=step*d; a <= 2*pi DO printf($l$); b := sin(a); c := cos(a); printf(($z-d.6d$,a,b,c)) OD )
printf はファイル stand out に
Hello world の変遷
[ALGOLの
ALGOL 58 (IAL)
[ALGOL 58 には
ALGOL 60 ファミリ
[ALGOL 60 にも
BEGIN FILE F(KIND=REMOTE); EBCDIC ARRAY E[0:11]; REPLACE E BY "HELLO WORLD!"; WRITE(F, *, E); END.
インラインフォーマットを
BEGIN FILE F(KIND=REMOTE); WRITE(F, <"HELLO WORLD!">); END.
Display
BEGIN DISPLAY("HELLO WORLD!") END.
もう1つの
program HiFolks; begin print ‘Hello world’; end;
HIFOLKS' BEGIN PRINT £HELLO WORLD£L??' END'
ICT 1900シリーズのALGOLでは、
'BEGIN' 'WRITE TEXT'("HELLO WORLD"); 'END'
ALGOL 68
[ALGOL 68 のコードは
BEGIN printf(($gl$,"Hello, world!")) END
"Algol 68 Report" では、
ALGOLの特殊 文字 の変遷
[ALGOLは
1960
1961
1962
1964
1968
2009
脚注
[注釈
[- ^ ファミリー
名 は大文字 /小文字 をまじえて表記 される場合 (Algol 60) と、全 て大文字 で表記 される場合 (ALGOL 68) がある。本 項目 では ALGOL で統一 する。 - ^ ALGOL 68 の
用語 で入出力 を意味 する。 - ^ a b
対応 フォントが少 ない。フリーフォントでは、DejaVu Sans、Quivira、Symbola、和田 研 2004フォントの絵文字 対応 版 、にしき的 フォントなど。JIS X 0208の表記 に置 き換 えるなら「10」のような外見 となる。
出典
[- ^ P.HAYES 1978, p. 38.
- ^ Collected Algorithms of the ACM ACMによるアルゴリズム
集 - ^ “Algol-like languages ,Introduction” (September 1996). 2012
年 1月 17日 閲覧 。 - ^ a b Backus, J. W.; Bauer, F. L.; Green, J.; Katz, C.; McCarthy, J.; Perlis, A. J.; Rutishauser, H.; Samelson, K. et al. (May 1960). Naur, Peter. ed. Report on the Algorithmic Language ALGOL 60. Copenhagen. doi:10.1145/367236.367262. ISSN 0001-0782
- ^ Perlis, A.J.; Samelson, K. (1958), “Preliminary report: international algebraic language”, Communications of the ACM 1 (12): 8-22, doi:10.1145/377924.594925
- ^ “Revised Report on the Algorithmic Language Algol 60” (1963
年 ). 25 June 2007時 点 のオリジナルよりアーカイブ。2007年 6月 8日 閲覧 。 - ^ “Revised Report on the Algorithmic Language ALGOL 68” (1973
年 ). 2010年 8月 25日 閲覧 。 - ^ Knuth, Donald E. (1964). “Backus Normal Form vs Backus Naur Form”. Communications of the ACM 7 (12): 735–736. doi:10.1145/355588.365140.
- ^ ACM Award Citation / Peter Naur, 2005
- ^ "Hints on Programming Language Design", C.A.R. Hoare, December 1973. Page 27. (なお、この
言葉 は間違 ってエドガー・ダイクストラのものとされることがある。ダイクストラも ALGOL 60 コンパイラの実装 に参加 していた) - ^ Jonathan Rees and William Clinger (Editors), Hal Abelson, R. K. Dybvig et al.. “Revised(3) Report on the Algorithmic Language Scheme, (Dedicated to the Memory of ALGOL 60)”. 2009
年 10月 20日 閲覧 。 - ^ Peter O'Hearn and Robert D. Tennent. 1996. Algol-Like Languages. Birkhauser Boston Inc., Cambridge, MA, USA.
- ^ “The Encyclopedia of Computer Languages”. 2012
年 1月 20日 閲覧 。 - ^ Computer Museum History, Historical Zuse-Computer Z23, restored by the Konrad Zuse Schule in Hünfeld, for the Computer Museum History Center in Mountain View (California) USA
- ^ Daylight, E. G. (2011). “Dijkstra's Rallying Cry for Generalization: the Advent of the Recursive Procedure, late 1950s – early 1960s”. The Computer Journal. doi:10.1093/comjnl/bxr002 .
- ^ Kruseman Aretz, F.E.J. (30 June 2003). “The Dijkstra-Zonneveld ALGOL 60 compiler for the Electrologica X1”. Software Engineering. History of Computer Science. Kruislaan 413, 1098 SJ Amsterdam: Centrum Wiskunde & Informatica
- ^ Koffman, Eliot. “All I Really Need to KnowI Learned in CS1”. 2012
年 5月 20日 閲覧 。 - ^ Aho, Alfred V.; Ravi Sethi, Jeffrey D. Ullman (1986). Compilers: Principles, Techniques, and Tools (1st ed.). Addison-Wesley. ISBN 0-201-10194-7, Section 7.5, and references therein
- ^ https://doi.org/10.1145/366573.366599
- ^ "803 ALGOL", the manual for Elliott 803 ALGOL
- ^ Hello world! ALGOL Example Program page
- ^ How ASCII Got Its Backslash, Bob Bemer
- ^ Baumann, R. (October 1961). “ALGOL Manual of the ALCOR Group, Part 1 [ALGOL Manual of the ALCOR Group]” (German). Elektronische Rechenanlagen: 206–212.
- ^ Baumann, R. (December 1961). “ALGOL Manual of the ALCOR Group, Part 2 [ALGOL Manual of the ALCOR Group]” (German). Elektronische Rechenanlagen 6: 259–265.
- ^ Baumann, R. (April 1962). “ALGOL Manual of the ALCOR Group, Part 3 [ALGOL Manual of the ALCOR Group]” (German). Elektronische Rechenanlagen 2.
- ^ “GOST 10859 standard”. 16 June 2007
時 点 のオリジナルよりアーカイブ。2007年 6月 5日 閲覧 。
参考 文献
[- P.HAYES, JOHN (1978), Computer Architecture and Organization, ISBN 0-07-027363-4
- F.L. Bauer, R. Baumann, M. Feliciano, K. Samelson, Introduction to Algol. Prentice Hall, 1964, ISBN 0-13-477828-6
- B. Randell and L.J. Russell, ALGOL 60 Implementation: The Translation and Use of ALGOL 60 Programs on a Computer. Academic Press, 1964. The design of the Whetstone Compiler. コンパイラの
実装 についての初期 の解説 の1つ。関連 する論文 として次 がある。- Whetstone Algol Revisited by B. Randell
- The Whetstone KDF9 Algol Translator by B. Randell
- E. W, Dijkstra, Algol 60 translation: an algol 60 translator for the x1 and making a translator for algol 60, report MR 35/61. Mathematisch Centrum, Amsterdam, 1961. [1]
関連 図書
[森口 繁一 (編 ):「ALGOL入門 」、日本 科学 技術 連盟 、(1962年 10月 1日 )。- Eric Foxley and Henry R. Neave:"A FIRST COURCE IN ALGOL60", Addison-Wesley Pub., (1968).
- エリック フォクスレイ、ヘンリイ R.ニーヴ、
岸田 孝一 (訳 ):「プログラミングALGOL入門 」、日本 生産 性 本部 (1970年 3月 30日 )。
関連 項目
[外部 リンク
[- Algol 68 Genie - GPL
配布 によるフリーのALGOL 68 インタプリタ - Algol60 compiler and interpreter - MS-DOS
上 で動 くフリーのALGOL60コンパイラが配布 されている。 - Revised Report on the Algorithmic Language Algol 60 by Peter Naur, et al. ALGOLの
定義 - Execute ALGOL-68 Script Online ブラウザ
上 でオンラインで ALGOL 68 を実行 by Mohtashim - ALGOL 60 のBNFによる syntax summary
- History of ALGOL at the Computer History Museum
- MARST - フリーなALGOLからCへのトランスレータ (User Guide)
- AN IMPLEMENTATION OF ALGOL 60 FOR THE FP6000
実装 上 の問題 についての議論 がある。 - "The European Side of the Last Phase of the Development of ALGOL 60" by Peter Naur
- エリック・レイモンドの Retrocomputing Museum には、C
言語 で書 かれた NASE Algol-60 インタプリタへのリンクがある。 - STORIES ABOUT THE B5000 AND PEOPLE WHO WERE THERE By Richard Waychoff
- TrueType font containing U+23E8 Decimal Exponent Symbol(ttfファイル)
- ALGOL60 compiler of Jan van Katwijk (GitHub)