第一部分 程序和机器
什么是计算?这个词对于不同人来说意思不同,但是每个人都会赞同这样一种理解:在一台计算机读取程序、运行程序、读入一些输入,并且最后产生一些输出的时候,肯定发生了某种计算。因此我们可以这样认为:计算就是指计算机所做的事情。
为了创造一个环境让这种熟悉的计算发生,需要三个基本要素:
· 一台机器,能够执行计算;
· 一种语言,用来编写这台机器能够理解的指令;
· 一个程序,用这种语言编写,描述机器应该具体执行哪些计算。
这部分内容就是关于机器、语言和程序的:它们是什么,行为如何,我们如何对其建模并展开研究,以及如何利用它们完成实际工作。通过研究这三要素,我们将对计算的含义以及它是如何发生的有更好的理解。
在第 2 章,我们将设计和实现一种简单的编程语言,并用几种不同的方法来研究这种语言的含义。理解了一种语言的含义,就可以把一段没有生命的源代码和一个动态的、正在执行的进程联系起来。每一种方法都能带给我们一个把程序运行起来的特定策略,而我们最终将用几种不同的方式来实现同一语言。
我们会发现编程是一门把一个准确定义的结构组装起来的艺术,这个结构能拆卸、分析,并最终被一台机器解释执行从而完成一次计算。更重要的是,我们还会发现实现编程语言既简单又有趣:尽管语法分析、解释和编译看起来很吓人,但实际摆弄起来其实会感觉简单又愉快。
如果没有机器来运行,程序本身没有多大用处。所以在第 3 章里,我们会设计非常简单的机器,以便执行基本的、硬编码的任务。有了这个简单的基础,我们在第 4 章会向更复杂的机器努力前进,并在第 5 章介绍如何设计能被软件控制的通用计算装置。
到第二部分的时候,我们将了解拥有计算能力的机器的全景:一些机器拥有非常有限的能力,一些机器用处更大但仍然令人沮丧地有一些限制,最后还有一些机器是我们知道如何构建的最强大的机器。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论