gpt4 book ai didi

language-agnostic - 运行时与编译时

转载 作者:行者123 更新时间:2023-12-03 03:58:09 25 4
gpt4 key购买 nike

运行时和编译时有什么区别?

最佳答案

编译时和运行时之间的差异就是尖头理论家所说的 phase distinction 的一个例子。 。它是最难学习的概念之一,特别是对于没有太多编程语言背景的人来说。为了解决这个问题,我发现询问很有帮助

  1. 程序满足哪些不变量?
  2. 此阶段可能会出现什么问题?
  3. 如果该阶段成功,后置条件是什么(我们知道什么)?
  4. 输入和输出是什么(如果有)?

编译时间

  1. 程序不需要满足任何不变量。事实上,它根本不需要是一个格式良好的程序。您可以将此 HTML 提供给编译器并观察它的吐出...
  2. 编译时可能出错的地方:
    • 语法错误
    • 类型检查错误
    • (很少)编译器崩溃
  3. 如果编译器成功,我们知道什么?
    • 该程序结构良好——无论使用何种语言,这都是一个有意义的程序。
    • 可以开始运行程序了。 (程序可能会立即失败,但至少我们可以尝试。)
  4. 输入和输出是什么?
    • 输入是正在编译的程序,以及需要导入以便编译的任何头文件、接口(interface)、库或其他巫术。
    • 输出希望是汇编代码或可重定位目标代码,甚至是可执行程序。或者如果出现问题,输出是一堆错误消息。

运行时间

  1. 我们对程序的不变量一无所知——它们是程序员输入的任何东西。运行时不变量很少由编译器单独强制执行;它需要程序员的帮助。
  2. 可能出错的是运行时错误:

    • 除以零
    • 取消引用空指针
    • 内存不足

    程序本身也可能检测到错误:

    • 尝试打开不存在的文件
    • 尝试查找网页并发现所指控的网址格式不正确
  3. 如果运行时成功,程序就会完成(或继续运行)而不会崩溃。
  4. 输入和输出完全取决于程序员。文件、屏幕上的窗口、网络数据包、发送到打印机的作业等等。如果程序发射导弹,那就是输出,并且仅在运行时发生:-)

关于language-agnostic - 运行时与编译时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/846103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com