为什么静态语言如此复杂?

作者 | hirrolot译者 | 弯月
出品 | CSDN(ID:CSDNnews)
编程语言设计人员都在努力让自己的语言变得更加出色 , 拥有强类型系统 , 通过避免软件中的代码重复来减轻开发人员的工作量 。然而 , 随着编程语言越来越出色 , 语言中渗透的重复性也越来越多 。
我称之为“静态与动态二元性”:编程语言中引入的每一个新抽象 , 有可能是静态级别 , 也有可能是动态级别 , 甚至是二者兼具 。在前两种情况下 , 抽象仅位于一个特定级别 , 语言中就会出现不一致;而在最后一种情况下 , 语言将不可避免地引入特征二元性 。
【为什么静态语言如此复杂?】在这里 , “静态级别”指的是编译时的语言机制;而“动态级别”指的是在运行时执行代码 。因此 , 常见的控制流运算符 , 例如if/while/for/return、数据结构和过程都是动态的 , 而静态类型系统的功能和语法宏则都是静态的 。本质上 , 大多数静态语言抽象在动态空间中都有相对应的抽象 , 反之亦然:

    推荐阅读