第 6章 编码
6.1 程序设计语言一、程序设计语言的分类
1,机器语言 ( Machine Language)
机器语言,是一种用二进制代码表示的低级语言,是计算机直接使用的指令代码 。
机器语言没有通用性,不能移植,因机器而异,因为处理机不同指令系统就不同 。
用机器语言编写程序,都采用二进制代码形式,且所有的地址分配都以绝对地址的形式处理,存储空间的安排,寄存器,变址的使用也都由程序员自己计划 。
第 6章 编码
2,汇编语言 ( Assemble Language)
汇编语言,是一种使用助记符表示的低级语言 。 某一种汇编语言也是专门为某种特定的计算机系统而设计的 。 用汇编语言写成的程序,需经汇编程序翻译成机器语言程序才能执行 。
汇编语言中的每条符号指令都与相应的机器指令有对应关系,同时又增加了一些诸如宏,符号地址等功能 。 虽然这种语言的命令比机器语言好记,但它并没有改变机器语言功能弱,指令少,繁琐,易出错,不能移植等的缺点 。
第 6章 编码
3,高级语言 ( High level Language)
高级语言是面向用户的,基本上独立于计算机种类和结构的语言 。 高级语言最大的优点是:形式上接近于算术语言和自然语言,概念上又接近于人们通常使用的概念 。 高级语言的一个命令可以代替几条,
几十条甚至几百条汇编语言的指令,因此,
高级语言易学易用,通用性强且应用广泛 。
第 6章 编码
4,第 四 代 语 言 ( Fourth Generation
language,简称 4GL)
第四代语言 ( 4GL) 的出现,将语言的抽象层次又提高到一个新的高度 。 第四代语言虽然也用不同的文法表示程序结构和数据结构,但第四代语言是在更高一级抽象的层次上表示这些结构 。 用第四代语言编码时只需说明,做什么,,而不需描述算法细节 。
第 6章 编码二,程序设计语言的特点
1.名字说明
2.类型说明
3.初始化
4.程序对象的局部性
5.程序模块
6.循环控制结构
7.分支控制给构
8.异常处理
9.独立编译第 6章 编码三,程序设计语言的选择程序设计语言的选择常从以下几个方面考虑:
( 1)项目的应用领域
( 2)算法与计算的复杂性
( 3)数据结构的复杂性
( 4)效率
( 5)可移植性
( 6)程序设计人员的水平
( 7)构造系统的模式第 6章 编码
6.2 编码风格编码风格实际上是一种编码原则 。 从
20世纪 70年代以来,编码的目标从强调效率转变到强调清晰 。 与此相应,编码风格也从追求,聪明,和,技巧,,变为提倡
,简明,和,直接,。 人们逐渐认识到,
良好的编码风格能在一定程度上弥补程序设计语言存在的缺点 。 反之,如果不注意编码风格,即使使用了结构化的现代语言,
也很难写出高质量的程序 。
第 6章 编码一、代码文档化:指编码时适当选择标识符的名字、
适当安排注释和注重程序的整个组织形式。
二,数据说明:程序或模块在其可执行部分的前面都集中了一些说明语句,出于阅读理解和维护的要求,最好使其规范化,使说明的先后次序固定 。
三、语句构造,每条语句都应当简单而直接,同时也不应为了追求运行效率而使代码复杂化,这样会减低程序的可读性。
四,输入 /输出:源程序的输入输出风格必须满足运行工程学的需要。
第 6章 编码
6.3 程序效率尽管效率是值得追求的目标,但不应为了非必需的效率提高而牺牲代码的清晰性,可读性和正确性 。 应记住下面三条准则 。
( 1) 效率是一种性能需求,目标值应当在需求分析阶段给出 。 软件效率应以需求为准,不应以人力所及为准 。
( 2) 好的设计可以提高效率 。
( 3) 代码效率与代码的简单性相关 。
第 6章 编码一、代码效率
( 1)应先简化算术和逻辑的表达式。
( 2)仔细研究嵌套的循环,以确定是否有语句可以从内层往外移。
( 3)尽量避免使用多维数组。
( 4)尽量避免使用指针和复杂的列表。
( 5)使用执行时间短的算术运算。
( 6)即使语言允许,一般也不要采用混合数据类型。
( 7)尽量使用整数表达式和布尔表达式。
第 6章 编码二、存储器效率采用结构化程序设计,将程序功能合理分块,使每个模块或一组密切相关模块的程序体积大小与每页的容量相匹配,可减少页面调度,减少内外存交换,提高存储器效率 。
在微型计算机系统中,存储器的容量对软件设计和编码的制约比较大 。 因此要选择可生成较短目标代码且存储压缩性能优良的编译程序,有时需要采用汇编语言编程 。
第 6章 编码三、输入 /输出的效率
( 1)所有输入 /输出都应该有缓冲,以减少过多的通信次数。
( 2)对辅存(如磁盘),应选用最简单的访问方法。
( 3)辅存的输入 /输出,应该以块为单位进行。
( 4)终端和打印机的输入 /输出,应当考虑设备的特性,以提高输入 /输出的质量和速度。
( 5)不应当采用不能被人们所理解的超高效的输入 /输出。