一、程序设计语言
- 机器语言、汇编:第一第二代计算机用
- 高级语言:同一个问题,高级语言编码可比汇编少3~7倍,按软件工程的分类,语言的发展大致分为4代、3阶段
1、语言的选择
1 领域
2系统用户要求:最熟悉的语言,操作方式
3可以使用的编译程序:有现成的编译就选择现成的
3程序员的经验和知识:熟悉程度
4软件可移植性要求
5当工程规模很大时,同时又没有完全合适的语言,可编一个专用的语言
6算法与计算复杂性,软件的可靠性
7数据结构的复杂性,软件的可维护性
8效率(处理器, 存储,输入和输出)
9了解语言的发展前景
2、原则
- 最少工作量原则
- 最少技巧性原则
- 最少错误原则
- 最少维护原则
- 减少记忆原则
3、总原则
- 先求正确后求快
- 先求清晰后求快
- 求快不忘保持程序正确
- 保持程序整洁以求快
- 不要因效率而牺牲清晰
4、好程序的标准
- 易于测试和调试
- 易于维护
- 易于修改
- 设计简单
- 高效率
二、程序化程序设计
- 使用几种基本控制结构
- 由粗到细,自顶向下,逐步细化原则
1、原则
- 使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑
- 选用的控制结构只准许有一个入口和一个出口
- 复杂结构应该用基本控制结构进行组合嵌套来实现
三、程序设计风格
1、源程序文档化
- 标识符的命名
- 安排注释
- 程序的视觉组织
2、数据说明
- 规范化(有利测试、拍错,便于查找和维护)
- 有序化(输入参数在前,输出在后,整型参数在前,实型参数在后,其他参数在后)
- 注释说明复杂的数据结构(固有特点)
3、语句结构
- 简单、直接
- 先求正确后求快
- 避免设定中间变量
- 尽可能使用库函数,优化
- 避免转移,保持可读性,则不必用GO TO语句
- 尽量减少使用“否定”条件
- 模块化,利用信息隐蔽保证每个模块独立性
- 大程序,要分块编写测试,然后在集成
- 不要修补不好的程序,要重新编写
4、输入/输出方法
- 输入格式力求简单一致,自由格式输入
- 输出加必要说明,给出提示在线帮助,发生错误时,能迅速恢复正常
四、程序复杂性度量
1、代码行度量法:
统计一个程序模块的源代码行数目,并以源代码行数作为程序复杂性的度量
2、McCabe度量法:
基于程序控制流的复杂性度量方法