ALGOL编程范型 | 过程式, 指令式, 结构化 |
---|
設計者 | Bauer, Bottenbruch, Rutishauser, Samelson, Backus, Katz, Perlis, Wegstein, Naur, Vauquois, van Wijngaarden, Woodger, J. Green, McCarthy |
---|
发行时间 | 1958年,67年前(1958) |
---|
当前版本 | - ALGOL 58(1958)
- ALGOL 60(1960)
- ALGOL 68(1968)
|
---|
|
许多后来的命令式语言(被称作ALGOL-like语言) e.g. Simula, C, CPL, Pascal, Ada 受ALGOL影响的函数式语言:Scheme |
ALGOL,名稱源自演算法語言(英語:ALGOrithmic Language)的縮寫[1],是一族指令式編程語言,發展於1950年代中期,對許多其它程式語言產生了重大影響。计算机协会在教科書及學術文章採用此語言做為描述演算法的標準語法超過三十年。[2]
由大多數近代程式語言皆使用類似ALGOL的語法來看[3],ALGOL可與差不多同時期的FORTRAN、LISP及COBOL並列為四大最有影響力的高階語言[4]。ALGOL被設計用來避免FORTRAN中一些已知的問題,最終引領了許多其它程式語言的興起,包括PL/I、Simula、BCPL、B、Pascal及C。
ALGOL引入了代码块,並用begin
⋯end
來分隔。它是第一個利用詞法作用域實作巢狀函式的語言,也是第一個注重形式語言定義的語言,並在ALGOL 60報告中引入了巴科斯範式來作為設計語言形式文法的原則。
ALGOL主要有三種規格,以初次發表的年份命名:
尼克勞斯·維爾特在發展Pascal之前,在ALGOL 60的基礎下建立了ALGOL W。ALGOL W本是下一代ALGOL的提議,但ALGOL委員會決定採用更先進複雜的設計,而不是一個簡潔化ALGOL 60。
- ^ 有人大小寫混用(Algol 60 (页面存档备份,存于互联网档案馆)),有人用全大寫 (ALGOL68 (页面存档备份,存于互联网档案馆)),本文採用全大寫ALGOL。
- ^ Collected Algorithms of the ACM (页面存档备份,存于互联网档案馆) Compressed archives of the algorithms. ACM
- ^ O'Hearn, P. W.; Tennent, R. D. Algol-like languages, Introduction. September 1996 [2017-11-08]. (原始内容存档于2011-11-14).
- ^ "The ALGOL Programming Language" (页面存档备份,存于互联网档案馆), University of Michigan-Dearborn
- ^ 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. Naur, Peter , 编. Report on the Algorithmic Language ALGOL 60. Copenhagen. May 1960. ISSN 0001-0782. doi:10.1145/367236.367262.
- ^ Revised Report on the Algorithmic Language Algol 60. 1963 [8 June 2007]. (原始内容存档于2007-06-25).
- ^ Revised Report on the Algorithmic Language ALGOL 68 (PDF). 1973 [13 September 2014]. (原始内容存档 (PDF)于2016-10-07).