程序终止 - read
第十二课 《程序设计方法学》复习课 第一讲 程序设计方法学绪论 1.程序设计方法学的产生 2.《程序设计方法学》、《程序设计语言学》、《软件工程》、《程序设计算法和数据结构》的区别。 3.“优秀”程序的八个要素。 4.程序设计方法学的知识体系 程序设计方法学的产生 软件危机的产生 软件危机的内涵 软件开发成本和进度的估计常常很不准确 用户对“已完成的”软件系统不满意的现象经常发生 软件常常是不可维护的 软件常常是不可管理的 软件在计算机系统总成本中所占的比例逐年上升 软件开发生产率提高的速度远远跟不上计算机应用迅速及深入普及的速度 学科之间的区别 软件工程(管理) 数据结构与算法(实现) 程序设计语言学(运行) 程序设计技巧(技巧) 程序设计方法学: 程序的性质以及程序设计的理论、方法和技术的科学 优秀”程序的八个要素 正确性;结构化;模式化 可维护;可变化;可管理;可测试 性能均衡 1.理解程序的正确性的含义 2.能够分析流程图区分结构化和非结构化程序 3.理解模式化的含义 4.给一个程序,能够对程序的正确性、结构化等性质进行判断 程序设计方法学的知识体系 第二讲 结构化定理 1.结构化程序设计程序设计方法学 2.基本程序结构 3.结构化定理 结构化程序设计思想的产生 1968.3 Dijkstra在ACM通信关于“GOTO是有害的”信件 1968.7 Dijkstra在ACM操作系统会议上关于“自顶向下”、”逐步求精”的设计思想 1969 Dijkstra在一份技术报告中首次提出“Structured Programming” 1972年25次ACM会议的“GOTO论战” IBM的超级程序员科研项目和BLISS语言 1976年 Williams关于结构化定理的论文 70年代纽约时报信息库管理系统 1983年 Williams和Lem关于SP概念、公理、定理的系统论述 关于GOTO语句 1.GOTO是否有害? 2.掌握从程序中去除GOTO语句的方法 结构化定理 1.明确流程图程序、正规程序、基本程序、 结构化程序,以及程序函数的概念 2.给定一个流程图,判别该流程图程序是否是正规程序、基本程序和结构化程序 3.能够利用结构化定理将流程图程序转化为结构化程序 第三、四讲 程序正确性证明 1. 程序正确性的有关概念 2. 程序部分正确性证明 3. 程序终止性证明 部分正确:若对于每个使得Q(i)为真,并且程序S计算终止的输入信息i,R(i,S(i))都为真,则称程序S关于Q和R是部分正确的。 程序终止:若对于每个使得Q(i)为真的输入i,程序S的计算都终止,则称程序S关于Q是终止的。 完全正确:若对于每个使得Q(i)为真,并且程序S的计算都将终止的输入信息i,R(i,S(i))都为真,则称程序S关于Q和R是完全正确的。 一个程序的完全正确,等价于该程序是部分正确,同时又是终止的。 不变式断言法证明程序部分正确性 证明步骤: 1、建立断言:建立程序的输入、输出断言,如果程序中有循环出现的话,在循环中选取一个断点,在断点处建立一个循环不变式断言 2、建立检验条件,将程序分解为不同的通路,为每一个通路建立一个检验条件,该检验条件为如下形式: I ∧ R = O,其中I为输入断言,R为进入通路的条件,O为输出断言 3、证明检验条件:运用数学工具证明步骤2得到的所有检验条件,如果每一条通路检验条件都为真,则该程序为部分正确的。 良序集方法证明程序终止性 基本概念: 1。偏序集 2。良序集 要求:给定集合W,以及定义在W上的二元关系,能判断是否属于良序集 证明思路: A. 选取良序集合(W,); B. 选取割点集,割断循环; C. 在割点上寻找函数u,使u∈W; D. 证明每次循环,u依次递减。 由于良序集合(W,)不存在无穷递减序列,因此,循环必然终止。 * 关于考试的通知 时间:6月11日 下午2:00-4:00 地点:教9-108 方式:开卷 题型:简答题、证明题、设计题 管理学和工程学角度——软件工程 划分阶段;加强审计;质量控制; 过程改进; 方法学和语言学角度——程序设计方法 标准的程序设计;结构化;设计模式;设计风格;设计技巧 介绍和发展历程 结构化程序设计方法 模块化程序设计方法 面向对象程序设计方法 函数型程序设计方法 逻辑程序设计方法 程序设计方法发展趋势 程序正确性证明技术 程序形式推导技术 程序变换技术 程序调试技术 抽象数据类型 代数规范理论 程序设计实例 替换GOTO的方法 While;do-while;loop-until子句 布尔变量替换法 开型结构 7种基本程序结构 If-then -else While
原创力文档

文档评论(0)