03 Below Your Program
如 word 或数据库这样的应用软件,数百万行代码,但是硬件只能执行非常有限的、简单的指令。这中间有很多很多的层次,这就是抽象的力量。这些层次大致由上至下分成三层: * 应用软件 * 系统软件 * 硬件
系统软件(systems software
)鉴于两者之间,承上启下,其中最重要的系统软件有两个:
一是操作系统(operating system
),主要作用有
* 处理输入输出
* 分配管理内存
* 隔离保护同时运行的多个应用
二是编译器(compiler
),将高级语言转化成低级指令。下面简单描述一下。
From a High-Level Language to the Language of Hardware
最简单的电信号就是开和关,用一个比特(binary digit
, bit
)表示。计算机的指令(instruction
)和数据一样,都是一系列比特。比如
使用二进制操控计算机是很无趣的事情,人们发明了一些符号辅助,最早是人工把这些符号翻译成二进制,很快又发明了汇编器(assembler
),其作用就是把程序员写的代码
assembly language
),后者是机器语言(machine language
)。
虽然方便了许多,但是程序员仍旧需要像计算机一样思考,于是又发明了高级编程语言(high-level programming language
)。通过编译器将高级编程语言
高级编程语言的优势有 * 可以使用更自然的语言思考;针对目的来设计编程语言; * 提高程序员的生产力; * 平台无关