【问题标题】:What is the meaning of compile time abstraction?编译时抽象是什么意思?
【发布时间】:2012-02-26 17:05:02
【问题描述】:

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

就像在一门语言中,试图优化/做可以在编译时完成的事情,只为只能在运行时完成的事情留出空间,

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

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

【问题讨论】:

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


【解决方案1】:

您似乎对“编译时抽象”感到困惑

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

(引用您在评论中链接到的论文“Static Typing Where possible, Dynamic Typing When Needed”)

如果将“抽象”一词替换为“近似”,您会觉得更有意义吗?

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

【讨论】:

    猜你喜欢
    • 2011-06-13
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2014-10-17
    • 1970-01-01
    相关资源
    最近更新 更多