对于编程背景经验较少的人,很难去理解编译时和运行时的概念。
为了帮助我们更好地理解这些概念,我们可以借助一些问题:
1.程序满足了什么样的不变性?
2.在该阶段会报什么错?
3.如果当前阶段成功,我们可以知道些什么?
4.他们的输入输出是什么?
编译时:
1.不需要满足任何不变性。事实上,你都不需要良好的编程。
2.在编译时会报什么错:
a.语法错误
b.类型检查错误
c.编译器崩溃(罕见)
3.如果编译成功,我们可以知道什么?
a.程序已经编译成形
b.我们可以启动程序
4.输入,输出是什么?
a.输入是指,程序在 成功编译后,被添加的头文件,接口,库,这些都是在编译时需要被添加进去的。
b.输出可以指需要装配的代码,也可以是一个能够执行的程序。如果编译失败,那输出就是一串串错误信息。
运行时:
1.我们对程序的不变性一无所知。它们是程序调入的任何值。
2.在运行时可对出现的错误:
a.除以0;
b.引用一个空指针
c.内存溢出。
3.如果在运行时能成功,那么程序能正常执行且不会异常退出。
4.输入,输出完全取决于程序员。它可以是文件的获取,屏幕上的窗口,网络数据包,文件的打印。