1. 数据模型。数据特征的抽象,用来描述问题。咱们已经提到了两种模型:逻辑和图,而在本书中还会看到不少其余的模型。算法
2.数据结构。用来表示数据模型的编程语言结构。例如,C语言提供了内置的抽象,好比结构和指针,使咱们可以构建数据结构,表示像图这类的复杂抽象。编程
3.算法。操做用数据模型抽象、数据结构等形式表示的数据,从而获取解决方案的技术。数据结构
4.编程语言
咱们在两种状况下会提到数据模型。像本章开头讨论的图这样的数据模型,是经常使用于协助
造成问题解决方案的抽象。spa
数据模型还与编程语言及计算机相关。好比,C语言的数据模型就包含诸如字符、多种长
度的整数以及浮点数这类的抽象。命令行
5.指针
当手头问题的数据模型不能直接用编程语言内置的数据模型表示时,咱们就必须使用该语
言所支持的抽象来表示所需的数据模型。为此,咱们研究了数据结构,将编程语言中没有显式
包含的抽象,以该语言的数据模型表示出来。不一样的编程语言可能有着大不相同的数据模型。
例如,与C语言不一样,Lisp语言直接支持树,而Prolog语言则内置了逻辑数据模型。对象
6.进程
算法是对可机械执行的一系列步骤精准而明确的规范。用来表示算法的能够是任何一种可
被常人理解的语言,不过在计算机科学领域,算法多用编程语言正式地表现为计算机程序,或
用编程语言混合英语语句的非正式风格来表示。数学
7.
算法的其余方面也很重要,特别是简易性。理想状况下,算法应该易于理解,并易于转变
成可运转的程序。并且,懂得相应知识的人在阅读了实现该算法的代码后,应该能理解由该算
法转变而来的程序。不过快速和简易每每是不能两全的,因此咱们必需要明智地选择算法。
8.
任何数学概念均可称为数据模型。 而在计算机科学领域, 数据模型一般包含如下两个方面。
(1) 对象能够采用的值。例如,不少数据模型包含具备整数值的对象。数据模型的这个方面
是静态的,它告诉咱们对象能接受哪些值。编程语言数据模型的这一静态部分一般被称为类型
系统。
(2) 数据的运算。 例如, 咱们经常会对整数执行加法这样的运算。 模型的这一方面是动态的,
它告诉咱们改变值和建立新值的方式。
9.
进程是指程序的独立执行。进程接受流做为输入,并产生流做为输出。在UNIX系统中,
进程能够经过管道链接,让一个进程的输出做为下一个进程的输入。这种进程组合可看做有着
本身输入输出的独立进程。
10.
想一想以下UNIX命令行。
bc|word|speak
符号|表示管道,该操做使符号左边进程的输出成为符号右边进程的输入。程序bc是桌面
计算器,接受算术表达式(例如2+3)做为输入,并生成答案5做为输出。程序word用来将数字
转换成单词,而speak则将单词转换成音素序列,接着经过扬声器将语音合成器合成的声音播
放出来。 这三个程序经过管道链接起来, 使这条UNIX命令行成为了一个进程, 并表现为一个 “会
说话的”桌面计算器。它接受算术表达式做为输入,并产生说出来的答案做为输出。本示例还
能够说明,将复杂的任务处理成多个简单功能的组合,实现起来可能会更加简单。
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.