1.目的
把模块的过程性描述翻译为用选定的程序设计语言书写的源程序(源代码)。
2.依据
编码的主要依据是概要设计和详细设计说明文档。
3.任务
- 理解概要设计和详细设计说明书;
- 遵循编码原则和风格进行翻译,形成源代码。
4.程序设计语言
4.1机器语言
- 1011011000000000:加法
- 1011010100000000:减法
优点
计算机直接识别
缺点
效率低,重用性差
4.2 汇编语言
机器指令助记符
- 机器指令:1000100111011000
- 汇编指令:MOV AX,BX

优点
- 比机器语言易读写、易调试和修改
- 执行速度快、占内存少
- 针对硬件编制
缺点
- 不能编写复杂程序
- 依赖于机型、不通用、不可移植
4.3高级语言
与自然语言相近,面向用户的语言
优点
- 编码效率高
- 通用性强,兼容性好,便于移植
缺点
- 运行效率低
- 对硬件操作不如汇编
4.4语言选择标准
- 系统用户要求:如果开发系统由用户维护,通常要求用熟悉的语言书写
- 可以使用的编译程序:运行目标系统环境可提供编译程序限制可选用语言的范围
- 可以得到的软件工具:有支持程序开发的软件工具可以利用。
- 工程规模:规模庞大,现有语言不适用,设计实现供该工程项目使用程序设计语言
- 程序员知识:如果和其他标准不矛盾,应选择程序员熟悉的语言
- 软件可移植性要求:若目标系统在不同计算机上运行,选择可移植性好的语言
- 软件的应用领域:选择语言时应充分考虑目标系统的应用范围。
5.编码风格
逻辑简明清晰、易读易懂是重要标准,遵循规则以下规则:程序内部的文档、数据说明、语句构造(简单)、输入输出、效率(和存储容量)
5.1程序内部的文档
(1)恰当的描述符
含义鲜明、命名规则一致
、避免过长或过短(建议英文)
、缩写规则一致
(2)适当注释
源程序中有效注解量在20%以上
序言性注解
模块开始,描述模块功能、主要算法、接口特点、重要数据及开发简史(设计者、复审者及时间、修改日期)
中间注解
插在程序中间,解释这段代码的必要性及功能。
(3)良好的视觉组织
空格、空行、缩进
5.2数据说明
- 数据说明次序应标准化(按数据结构或数据类型说明):常量->简单变量->数组->公用数据块->文件整形->实型->字符->逻辑
- 多个变量名在一个语句说明,按字母顺序排列。
- 复杂数据结构用注解说明实现方法和特点。
5.3语句构造
- 避免把多个语句写在同一行;
- 尽量避免复杂条件测试;
- 尽量减少“非”条件测试;(
if not(a>b)->if a<=b
) - 避免大量使用循环嵌套和条件嵌套;
- 利用括号使表达式运算次序清晰直观。
- 尽量少用goto语句
- if、for、do、while、case、switch、default 等语句占一行,且if 、for 、do 、while 等语句的执行语句部分无论多少都要加括号{}
- 不将BOOL值TRUE和FALSE对应1和0编程;多数编程语言:false定义为0,非0值是true
5.4输入输出
- 对所有输入数据都进行检验,保证输入有效;
- 检查输入项重要组合合法性;
- 保持输入格式简单;
- 使用数据结束标记,不要求用户指定数据数目;
- 提示交互式输入请求,如可用选择或边界数值
- 程序设计语言对格式有严格要求时,应保持输入格式一致;
- 设计良好输出报表;
- 给所有输出数据加标志
5.5效率
(1)程序运行时间
- 简化算术和逻辑表达式;
- 嵌套循环,确定是否有语句可从内层往外移;
- 尽量避免使用多维数组;
- 尽量避免使用指针和复杂的表;
- 使用执行时间短的算术运算;
- 不要混合使用不同的数据类型;
- 尽量使用整数运算和布尔表达式
(2)存储器效率
大中型计算机考虑操作系统页式调度特点,将程序功能合理分块,每个模块或一组密切相关程序体积与每页容量相匹配,减少页面调度。
微型计算机关键是程序简单性,选择生成较短目标代码且存储压缩性能优良的编译程序。
(3)输入输出效率
- 所有输入/输出都应有缓冲,减少通信的额外开销;
- 对二级存储器(如磁盘)选用最简单访问方法;
- 辅助存储器的输入/输出以信息组为单位进行;
- 如“超高效”输入/输出很难被理解不采用。