Loading AI tools
来自维基百科,自由的百科全书
ALGOL,名稱源自演算法語言(英語:ALGOrithmic Language)的縮寫[1],是一族指令式編程語言,發展於1950年代中期,對許多其它程式語言產生了重大影響。计算机协会在教科書及學術文章採用此語言做為描述演算法的標準語法超過三十年。[2]
![]() | 此條目可参照英語維基百科相應條目来扩充。 |
编程范型 | 过程式, 指令式, 结构化 |
---|---|
設計者 | Bauer, Bottenbruch, Rutishauser, Samelson, Backus, Katz, Perlis, Wegstein, Naur, Vauquois, van Wijngaarden, Woodger, Green, McCarthy |
发行时间 | 1958年 |
当前版本 |
|
影響語言 | |
许多后来的命令式语言(被称作ALGOL-like语言) e.g. Simula, C, CPL, Pascal, Ada 受ALGOL影响的函数式语言:Scheme |
由大多數近代程式語言皆使用類似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 58沒有I/O機制。
1960年,在巴黎举行的讨论会上,来自欧洲的诺尔、Bauer、Rutishauser、Samelson、Vauquois、van Wijngaarden、Woodger,与来自美国的佩利、巴科斯、麦卡锡、Katz、Wegstein和J. Green,共同发表了《算法语言ALGOL 60报告》[8]。戴克斯特拉实现了ALGOL 60语言的第一个编译器。在1962年罗马会议上,ALGOL 60报告得到了修订,并于1963年出版[9]。
Algol 60引进了许多新的概念如:代码块、词法作用域、递归、巴科斯-诺尔范式(BNF)等等。
Algol 60是程序设计语言发展史上的一个里程碑,它标志着程序设计语言成为一门独立的科学学科,并为后来软件自动化及软件可靠性的发展奠定了基础。
ALGOL 68的“Hello, World”
begin printf(($gl$,"Hello, world!")) end
Algol W:1966年,IFIP吸收尼克劳斯·维尔特参加对Algol语言进行完善与扩充的工作小组。沃思参加进去以后,提交了一份建议书并由東尼·霍爾等人修改、完善以后形成Algol W。同时还催生了一个新的语言PL360。