《代码大全》代码生成

  • 内容来自:<>计算机实用软件技术系列丛书

代码生成

链接程序

一个标准的链接程序,能链接一个或几个由源代码文件生成的目标文件,以生成一个可执行程序,许多功能强大的链接程序能链接用几种语言写成的模块。允许你选择最合适的语言而不管那些集成的细节问题。有些利用共用存储区的链接程序,能帮助你节省内存空间。这种链接程序生成的执行代码文件能一次只向内存装载部代码,而把其余部分保留在磁盘中。

代码库

在短时间内写成高质量代码的方法是,一次不全部都写出来,其中部分可以借用已有程序。至少下面这些部分你是可买得到的高质量的代码库:

  • 键盘和鼠标输入
  • 用户界面窗口的生成
  • 屏幕和打印机输出
  • 复杂的图形函数
  • 多媒体应用生成
  • 数据文件操作(包括常用数据库操作)
  • 通讯
  • 网络
  • 文本编辑和字处理
  • 数学运算
  • 排序
  • 数据压缩
  • 构造编译程序
  • 依赖平台的图形工具集

只要在 Microsoft Windows.OS/2 Presentation Manager,Apple Macintosh 和 X Window System 中把你写的代码重写编译一次就可运行。

代码生成程序

如果你买不到你所要的代码,让别人去写怎么样?你无需到处找人,你可买些工具回来,让它帮你写所需要的代码,代码生成工具着意于数据库应用,它包含了许多用途。普通的代码生成程序写些数据库、用户界面、编译程序方面的代码。这些代码当然不如人写的那样好,但许多应用场合用不着人工来编码。对许多用户来说,能得 10 个应用代码总比只能得到一个好代码强.。 代码生成程序也能生成代码原型,利用代码生成程序你可在短时间内描绘出一个用户界面的原型,你也可尝试用几种不同的设计方法。要做同样的工作靠手工可能要花上几个星期,你又为何不用最便宜的方法呢?

宏预处理程序

如果你用 C 来编程而用到了宏预处理程序,你可能觉得没有预处理程序来编程是很困难的。 宏允许你几乎不花什么时间就能产生一个简单的有名字的常量,比如用 MAX_EMPS 替代 5000,那么预处理程序就会在代码编译时用 5000 来替代 MAX_EMPS。 宏预处理程序也允许你生成一些复杂的函数,以便在程序中简单使用,它仅在编译时被替换回来而不花什么时间。这种方法使你的程序可读而易维护。因为你在宏中给出了一个好名字,所以你的程序更好读;又因为你把所有的名字放在一个地方,因而修改起来极其方便。 预处理程序功能对调试也很有好处。因为它很容易在改进程序时进行移植。在改进一个程序时,如果你想在每个子程序开头检查一下各内存段,那么你可以在每个子程序开头用一个宏。 在修改以后,你可能不想把这些检查留在最后的代码中,这时你可重新定义这些宏使它不产生任何代码。同样的原因若你要面向不同的编译环境。如 MS-DOS 和 UNIX,宏预处理程序是很好的选择。 如果所用语言控制结构不好,比如 Fortran 和汇编,你可以写一个控制流预处理程序用来模仿 if-then-else 和 while 循环的结构化结构。 如果所用语言不支持预处理程序,你自已可写一个。这可参考(《Software Tools 》(Kernighan 和 Plauger 1976)中的第八章或《softwareTools in Pascal》(Kernlghan 和Plauger 1981)《SoftwareTools》 中也有如何在 Fortran 中编写控制流的方法,也可用到汇编中去。

调试

这种工具在调试中有如下作用:

  • 编译程序警告信息
  • 给出程序框架
  • 文件比较程序(比较源代码文件的不同版本)
  • 执行显示程序
  • 交互调试程序,软件和硬件的

下面讨论的测试工具与调试工具有关。

测试

用下面这些性能和工具能有效地帮助你测试:

  • 给出程序框架
  • 结果比较(比较数据文件、监视输出及屏幕图像)
  • 自动测试生成程序
  • 记录测试条件及重复功能
  • 区域监视器(逻辑分析及执行显示器)
  • 符号调试程序
  • 系统扰乱程序(内存填充、存储器扰乱、有选择地让存储器出错,存储器存取性检查)
  • 缺陷数据库

代码调整

这种工具帮助调整代码。

执行显示程序

执行显示程序在程序执行时显示代码运行情况,并且告诉你每条程序语句执行了多少次或花了多少时间。在程序执行时,显示代码犹如一个医生把听筒放在你胸前而让你咳嗽一样。它让你清楚地知道程序执行时的内部情况,告诉你哪是关键,哪个地方是你要重点调整的目标。

汇编列表和反汇编

有时你想看看由高级语言产生的汇编语言。有些高级语言编译程序能生成汇编列表;另一些则不能,所以你得用反汇编从机器码生成汇编语言。看着编译程序生成的汇编语言,它表明你的编译程序把高级语言转化成机器码的效率。它也告诉你为何高级语言看起来应当很快而实际上却运行很慢。在第二十九章的代码调整技巧中,几个标准检查程序的结果是不直观的。当用标准检查程序检查代码时,用汇编列表能更好地理解结构而高级语言却不能这样。 如果你觉得汇编语言很不舒服需要介绍,那最好的方法是把你用高级语言写的语句与编译程序产生的相应的汇编指令作个比较。可能你第一眼看到汇编时会感到不知所措,编译程序生成的代码你可能再也不喜欢看这类东西了。

你可能感兴趣的:(基础知识)