奇思妙想 · 2024年 4月 7日 0

Algol语言发展的重要时刻

74 次浏览

发展中重要的功能

  • 最早命名为IAL(国际代数语言,International Algebraic Language), 后来改为ALGOL 58.
    • 复合语句概念(仅用于控制流)。
    • 赋值用:=, 相等用=.
    • 数组下标概念。
    • 嵌套过程声明。
    • 数字语句label.
    • switch标志。
    • 变量声明可以在程序任意位置,不必一定在procedure开始。
  • ALGOL 60引入了:
    • void类型。
    • 代码块(扩展了ALGOL 58的复合语句),使用BEGIN和END(后期改为小写begin和end).
    • 修改变量声明只能在procedure开始。
    • 它依然没有输入输出功能,原因是标准委员会意见不统一,标准输入输出留给编译器和使用者决定。这对于语言普及有很大影响。
    • BNF范式作为语言设计的文法规则,对后续编程语言影响甚远。
    • 词法作用域。
    • 函数定义嵌套。
    • 递归概念。
    • 圆括号()表达式求值,安排运算优先级。
    • 控制流程if/goto/for.
    • 过程procedure.
    • 过程参数传递方式:按值传递和按名字传递。
  • ALGOL 68标准相当庞大复杂,有很多学院理论气息,也能看到这些大师的功底,不少是现代编程语言才有的特性,不过编译器和实现极为困难,但C和Pascal深受它影响。
    • WHILE、CASE语句。
    • 切片(没错,就是Python的切片)。
    • 并行处理(你没听错,真的是并行同步控制的语句)。
    • 讨论是否引入”匿名函数”。
    • 共用体union.
    • 引用。