Skip to Main Content
计算机科学导论:跨学科方法
book

计算机科学导论:跨学科方法

by 罗伯特 塞奇威克, 凯文 韦恩
August 2021
Beginner to intermediate content levelBeginner to intermediate
450 pages
19h
Chinese
Pearson
Content preview from 计算机科学导论:跨学科方法

6.3 机器语言编程

在本节中,我们将继续描述如何在TOY中实现我们在本书前面所学习的Java语言机制,并完成一些TOY计算机上有趣的编程任务。我们的主要目标是让你相信,TOY编程与Java编程一样有趣、令人满意,TOY比想象的要强大得多。

具体来说,我们会学习如何在TOY的程序中实现函数、数组、标准输入输出和链接结构,也就是我们前面学过的编程的基本构建块。理论上,这些结构表明可以开发与我们编写的任何Java程序相对应的机器语言程序。事实上也确实是这样的,因为Java编译器就是这样做的。

当然,在资源方面可能会存在限制。我们真的能用4096位的内存完成实际的计算任务吗?本节的目标之一就是说服你,我们当然可以。不过,技术的进步已经使这种限制变得很小。在6.4节中,我们将讨论TOY的扩展,使它在这方面看起来更像是一个现代计算机,但不会改变编程模型。在这样的机器上,你当然可以编写TOY程序来执行任何计算任务,就像你编写Java程序在你的计算机上执行的计算一样。

在实践层面上,你会发现用机器语言实现各种任务都是切实可行的。实际上,许多早期的应用程序就是这样实现的,而且这种状况维持了很多年,因为当时使用高级语言的性能损失太大了。事实上,大多数这样的代码是用汇编语言(assembly language)编写的,汇编语言类似于机器语言,只是它允许操作码、寄存器和内存位置使用特定的符号名称(见练习6.4.13)来表示。在20世纪70年代,用汇编语言写就的、可以扩展到数以万行计的代码并不罕见。所以我们也是在回顾历史,但即使是现在,人们也会为性能关键的应用程序编写这样的代码。

最重要的是,我们的目标是让你了解计算机在运行程序时具体做了什么。

函数 在条件和循环之后,我们在第2章中学习的下一个控制流结构就是函数(function)。TOY的跳转指令是为此目的而设计的。实现函数的方式有很多种,由于我们的主要目标是展示这个概念,所以我们选择其中最简单的一种方法来进行。要实现一个函数,我们必须: ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

数据科学之编程技术:使用R进行数据清理、分析与可视化

数据科学之编程技术:使用R进行数据清理、分析与可视化

迈克尔 弗里曼, 乔尔 罗斯
C语言核心技术(原书第2版)

C语言核心技术(原书第2版)

Peter Prinz, Tony Crawford

Publisher Resources

ISBN: 9787111641414