编译时和运行时之间的差异就是尖头理论家所说的一个例子相区别。它是最难学习的概念之一,特别是对于没有太多编程语言背景的人来说。为了解决这个问题,我发现询问很有帮助
- 程序满足什么不变量?
- 这个阶段可能会出现什么问题?
- 如果该阶段成功,后置条件是什么(我们知道什么)?
- 如果有的话,输入和输出是什么?
编译时间
- 该程序不需要满足任何不变量。事实上,它根本不需要是一个格式良好的程序。你可以将这个 HTML 提供给编译器并观察它的吐...
- What can go wrong at compile time:
- If the compiler succeeds, what do we know?
- 该程序结构良好——无论用什么语言,都是一个有意义的程序。
- 可以开始运行该程序了。 (程序可能会立即失败,但至少我们可以尝试。)
- What are the inputs and outputs?
- 输入是正在编译的程序,以及它需要的任何头文件、接口、库或其他巫毒。import为了得到编译。
- 输出希望是汇编代码或可重定位目标代码,甚至是可执行程序。或者如果出现问题,输出是一堆错误消息。
Run time
- 我们对程序的不变量一无所知——它们是程序员输入的任何内容。运行时不变量很少由编译器单独强制执行;它需要程序员的帮助。
-
可能出错的是运行时错误:
此外,程序本身也可能检测到错误:
- 试图打开不存在的文件
- 尝试查找网页并发现所称 URL 格式不正确
- 如果运行时成功,程序就会完成(或继续运行)而不会崩溃。
- 输入和输出完全取决于程序员。文件、屏幕上的窗口、网络数据包、发送到打印机的作业等等。如果程序发射导弹,那就是输出,并且仅在运行时发生:-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)