编译时抽象是什么意思?

时间:2012-02-26 17:05:02

标签: oop compiler-construction programming-languages language-design typechecking

我遇到了句子“编译运行时行为的时间抽象”,这里的编译时抽象是什么?我的猜测是,

就像在一种语言中一样,尝试优化/做可以在编译时完成的事情,并且只为那些只能在运​​行时完成的事情留出空间,

例如。            int a;            a = 5; // 5只能在编译时分配给一个(除非它是一个const),因为用户可能已经创建了程序,在那里他从命令行,stdin,fin等获取输入

其中as,int //可以在编译时完成,因为你马上就知道了类型......

1 个答案:

答案 0 :(得分:2)

似乎您对

中的“编译时抽象”感到困惑
  

静态类型检查是程序运行时行为的编译时抽象,...

(引自你在评论中链接到的“可能的静态打字,需要动态打字”一文)

如果“抽象”一词被“近似”取代,那对你来说会更有意义吗?

给定类型为T的表达式E,我们可以说T在编译时近似于在运行时计算的值的类型(在评估E时)。例如,假设您有一个[2 + 2 * 3]类型为[整数] - 您可以说“此表达式将计算为整数”。