第四章 程序设计语言与编码
- 程序编码阶段的任务:为每个模块编写程序,将详细设计的结果转换为源程序代码。
- 从如何提高软件的质量和可维护性的角度,讨论在编码阶段所要解决的主要问题
- 程序设计语言的特性及选择的原则
- 程序设计风格
- 软件设计风格
4.1 程序设计语言的选择
一、程序设计语言的分类
- 低级语言:机器语言和汇编语言
表示成二进制形式的机器基本指令集,依赖于特定的机器,复杂繁琐且易出错 - 高级语言:比低级语言更接近于待解的问题,易学易用易维护,提高软件生产效率
- 按应用范围分:
- 通用语言:PASCAL、C、C++、Java等
- 专用语言:APT等
- 用户要求分:过程式语言和非过程式语言
- 使用方式分:交互式语言和非交互式语言
- 语言的内在特点分:系统实现语言 静态高级语言 高级语言 块结构高级语言
- 按应用范围分:
二、程序设计语言选择准则
- 项目的应用领域
- 算法和计算复杂性
- 软件的执行环境
- 性能因素
- 数据结构的复杂性:要根据不同语言构造数据结构类型的能力选取
- 软件开发人员的知识水平以及心理因素
三、高级语言的内在特性
1.传统的高级语言
- 具有代表性有:BASIC、FORTRAN、ALOGOL
2.通用的结构化程序设计语言
-
具有代表性的有: PASCAL、PL/1、C、Ada等它们都是从ALOGOL语言派生出来的。
PL/1是第一个真正广泛适用于多种不同的应用领域的语言,故又称大型公共汽车语言。支持多任务处理和复杂的I/O功能,表处理等。
Ada语言一种用于嵌入式实时计算机设计的标准语言。提供了一组丰富的实时特性,包括多任务处理,中断处理任务间的同步通信等。提供了Ada程序包及辅助软件开发的环境。
3.面向对象的程序设计语言
- Smalltalk语言
- C++程序设计语言
- Java语言:是一种简单的面向对象的分布式的语言
- C#语言
- 面向对象的可视化语言
4.第四代语言(4GL)
- 其特点是:**不需要规定算法细节,**在更高层次上用不同文法来表示程序结构和数据结构。常见的有:查询语言、程序生成器和其它4GL语言,如:判断支持语言、原型语言、形式化规格说明语言等。
4.2 结构化程序设计
- 结构化程序设计方法 (Structured Program),即SP法是结构化开发方法的重要组成部分。其基本思想是自顶向下、逐步求精。它的基本原则是功能的分解与抽象。
一、结构化程序设计特点
- 1.自顶向下、逐步求精:先全局,后局部、先抽象后具体的方法
- 单入口和单出口的控制结构:结构化的程序是由且仅由顺序、选择、循环三种基本控制结构组成
二、结构化程序设计的步骤
三、优化设计
-
结构的优化,功能的优化,算法的优化和时间、效率的优化等等
-
介绍对时间起决定性作用的软件的优化方法:
⑴不考虑时间因素的前提下开发并精简软件结构。
⑵寻求软件设计结构中的 “关键路径” 和 “关键事件”。仔细的设计该模块的实现算法。
⑶选择合适的高级编程语言,提高程序的编译效率。
⑷在效率和实现功能之间寻求平衡点。所谓的平衡点指的是,不要求为了一些不必要的功能而耗费大量的时间,从而降低效率,以致得不偿失。
4.3 程序设计风格
- 力图从编码原则的角度来探讨提高程序的可读性、改善程序质量的方法和途径。
1.代码文件
- 符号命名:尽量用与实际意义相同或接近的标识符命名
- 源程序中的注释:注释可分为序言性注释和解释性注释。错误的注释宁可不要
- 注意源程序的书写格式
2.语句构造方法
- 语句构造应采用直接、清晰的构造方式,而不要为了提高效率或者显示技巧而降低程序的清晰性和可读性。(尤其是流程控制语句的构造技术,直接影响到程序的可读性及效率)
3.数据说明方法
- 为使程序中的数据说明更易于理解和维护,数据说明的次序应当规范化:
- 可按**说明类型(**常量,简单变量类型,复杂类型)
- 一个语句说明多个变量时,按字母顺序排列。
- 复杂的数据结构,要加注释。
4.输入输出技术
- 输入和输出格式应尽可能统一。
- 输出信息中应该反映输入的数据。
- 输入和输出应尽可能集中安排。
4.4 算法与程序效率
- 设计逻辑结构清晰、高效的算法,是提高程序效率的关键
- 影响程序效率的因素
- 算法对效率的影响:eg.顺序法和二分法的区别
- 存储效率:操作系统的存储管理方式,直接影响到程序的存储效率
- 输入输出效率:提高输入/输出速度,减少出错率
4.5 软件代码审查
-
为保证代码开发的质量,在编码完成后,进行代码审查或称Review。
审查内容:
1.程序的版式
2.文件结构
3.命名规则
4.表达式与基本语句
第四章完