前言
大家还记得自己初次接触计算机时的情形吗?想必多数读者使用的都是Windows系统,应该也有不少读者使用Visual Studio和Java等集成开发环境(IDE, Integrated Development Environment,即集成了编程所需的各种工具的开发软件)开发过程序。Windows的图形化操作界面,大大提高了计算机操作的便利性,而利用集成开发环境开发程序,就像用绘图软件画图一样简单。由此可见,这是一个便利的时代。
然而,现实却不容乐观,我们在享受这些方便的同时也付出了代价。虽然拥有一定的编程能力,却无法进一步提高自身技能;知识应用能力的不足导致无法编写源程序。越来越多的程序员正为这些问题而烦恼。个中原因在于,大家不了解程序运行的根本机制。
“双击程序图标,程序开始运行”,作为一名程序员,对程序的了解仅仅停留在这一表层是不行的。我们还应该了解更深层的机制:加载到内存中的机器语言程序,由CPU进行解析和运行,进而计算机系统整体的控制和数据运算也开始运行。了解了程序的运行机制后,就能找到编写源程序的方法。
本书以通俗易懂的方式来解析程序的运行机制,适合想要学习编程的读者,迫切希望提升技能的初级程序员,以及对计算机较为熟悉的中级用户阅读。为了便于说明,书中涉及了不少计算机硬件知识,不过本书的主题依然是编程,也就是软件。
《日经Software》杂志上连载过名为“程序是怎样跑起来的”的文章,而本书就是在整合以上内容的基础上创作的。2001年10月,本书第1版出版后,受到了众多读者的欢迎,我们也收到了很多反馈信息。大部分读者表示“了解了CPU的寄存器和内存的运行方式,也知道了自己编写的程序的运行机制,收获颇丰”。不过也有编程经验较少的读者表示“内容有点难”。
值此第2版出版之际,我再次核对了全文,大幅增加了寄存器和栈等内容的相关说明,并作了详细的注释。实例程序的代码也由原来的Visual BASIC语言,换成了更便于说明程序运行机制的C语言,并在书的末尾添加了一个辅助章节,对 C语言进行了简单的介绍。通过这样的改动,相信即便是觉得第1版有点难的读者,也会感到满意。
无论任何事情,了解其本质非常重要。只有了解了本质才能提高利用效率。这样一来,即使有新技术出现,也能很容易地理解并掌握。接下来,就让我们一起在本书中探索程序的奥秘,寻求程序的本质吧。
矢沢久雄