我遇到了句子“编译运行时行为的时间抽象”,这里的编译时抽象是什么?我的猜测是,
就像在一种语言中一样,尝试优化/做可以在编译时完成的事情,并且只为那些只能在运行时完成的事情留出空间,
例如。 int a; a = 5; // 5只能在编译时分配给一个(除非它是一个const),因为用户可能已经创建了程序,在那里他从命令行,stdin,fin等获取输入
其中as,int //可以在编译时完成,因为你马上就知道了类型......
答案 0 :(得分:2)
似乎您对
中的“编译时抽象”感到困惑静态类型检查是程序运行时行为的编译时抽象,...
(引自你在评论中链接到的“可能的静态打字,需要动态打字”一文)
如果“抽象”一词被“近似”取代,那对你来说会更有意义吗?
给定类型为T的表达式E,我们可以说T在编译时近似于在运行时计算的值的类型(在评估E时)。例如,假设您有一个[2 + 2 * 3]类型为[整数] - 您可以说“此表达式将计算为整数”。