原书叫《计算机科学导论》
作者:美国,J.格伦·布鲁克希尔,丹尼斯·布里罗
第5章 算法
定序是按给定语句的顺序应用每个算法步骤。
原语(primitive):建立一组定义明确的构建块,利用它们来构造和执行算法的表示。
可以消除歧义,不会引起误解,就像咱们传统的自然语言(用英语来沟通交流)。
程序设计语言(programming language):原语的集合以及说明如何组合这些原语来表示比较复杂的想法的规则集合。
用程序设计语言描述的算法可以在计算机上执行。
每个原语都有自己的语法和语义,语法指的是原语的符号表示,语义是指该原语的含义。
伪代码:用户开发过程中非正式表达想法的符号系统。
用自然语言和伪代码描述算法是为了让人可以理解它们。
迭代(iteration):只要某个条件仍然为真就重复执行一条语句或一组语句。
递归:把每一阶段的重复当做前一阶段的子任务。
第6章 程序设计语言
机器语言:现代计算机的程序由采用数字编码的指令序列组成。
调试(debugging):机器语言编写程序繁琐,经常出差,完成工作前,必须把错误找出来并更正。
用助记符代替数字形式:
- LD,加载
- ADDI,相加
- ST,存储
- HLT,停止
Price,ShippingCharge和TotalCost分别指代0x6C,0x6D,0x6E的内存单元。
标识符(identifier):这些描述性名称经常被称为程序变量。
汇编器(assembler):将助记符表达式转换为机器语言指令。
汇编语言(assembly language):表示程序的助记符系统。
称为二代程序设计语言,第一代是机器语言本身。
汇编语言的不足:
- 汇编语言本质上依赖于机器,程序中的指令都遵循特定的机器特性来表达。
- 汇编语言不能简单的移植到另一种机器设计上,必须重写才能遵循新计算机的寄存器配置和指令集。
- 仍然不得不从机器语言角度来进行思考。
第三代程序设计语言,标识一组高级原语,软件用这些原语开发,每个原语都能够实现一个机器语言可用的低级原语序列。
翻译器(translator)