0

背景: Eldridge 让我解释在编写和部署代码时不同阶段之间的区别。

他想知道:

  • 1)有什么区别:1)设计时间;2)编译时间;3)运行时间?
  • 2) 程序员无法硬连线到他的代码中并且直到运行时才知道的具体示例是什么?
  • 3)对于需要更多“运行时”灵活性的人来说,具有许多运行时“技巧”的脚本语言是否更好(除了个人偏好原因)?

问题:

尽管我根据自己的编程观点对 Eldrige 有答案,但获得不同的观点似乎是个好主意,以免给出“有偏见”的答案。......那么,你能给出什么公正的答案来解释这些事情(假设任何语言[s])。

4

2 回答 2

2

好的,由于没有其他人尝试过,我将对此进行破解。

设计时间是创建源文件所花费的时间。文本文件、表单定义等中的代码

编译时间是编译的各个阶段所花费的时间。预处理、词法分析/解析、AST 创建和优化、代码生成和链接。

运行时间是从加载可执行文件到释放用于文本页面的内存所花费的时间。

程序员可以硬连线他们喜欢的任何东西,但它对某些事情毫无意义:

  • 用户的主目录
  • 外部数据库资源的位置
  • 运行可执行文件的机器的预期硬件配置
  • 等等

静态和动态语言(我个人讨厌“脚本语言”的描述)在计算中都有一席之地。没有什么动态语言可以做静态语言做不到的;唯一的区别在于实现该功能所需的代码量。

于 2010-02-17T02:12:07.923 回答
1

设计时——我想说的是当你使用自动化工具和图形设计师来生成你的源代码时。可以在“设计时”确定控件属性的有效值之类的东西

Compile-Time - 是编译器在编译时可以确定的东西,例如编译器可以确定以下表达式将始终包含常量值'86400'。

const int SecsInDay = 60 * 60 * 24; 

运行时- 用于只能在程序运行时确定的事情(例如由 VM)。这包括任何用户输入、动态配置设置等。

脚本语言在创建变异逻辑方面更加灵活,因为它可以绕过编译并在运行时根据输入和逻辑创建新行为,例如,Java Script 的 eval() 语句可以执行用户输入或通过返回的任意 javascript网络服务等

于 2010-02-17T02:23:43.000 回答