前言
上边是程序编码这一部分的导图,视频信息量很大,很多都是我们没有接触过的知识,全部吸收是不可能的,全部总结一下也很困难,但是对于自己感兴趣的或者说现阶段的自己感觉有用的知识,小小总结一下,还是可以的,下面我找几个点总结一下,若有错误,请大家指正,谢谢
一,程序设计语言
1、第一代语言-机器语言:机器语言由二进制的1、0指令代码组成的字符串构成,属于低级语言。
优点:二进制代码不需翻译,占用内存少,执行效率高
缺点:语言不直观,难编写,难修改,需要用户直接对存储控件进行分配,编程效率极低,而且移植性差。
2、第二代语言-汇编语言:又称符号语言,它把计算机所能识别的机器指令用符号表示出来。
优点:直观,方便阅读和排错,比机器语言易理解,易记忆。
缺点:难掌握,容易出错,维护困难。
3、第三代语言-高级语言:也称算法语言,较前两代语言有显著进步,接近人类的自然语言,运算符和运算表达式也与数学中的形式差不多。
优点:容易掌握和理解,通用性强,可以在不同的机器上运行,便于维护,效率和可靠性较高。
缺点:过程化语言,编码时,要详细描述问题求解的过程,告诉计算机每一步应该怎么做,所以程序员编码繁重。
4、第四代语言-4GL语言:第四代语言是面向应用的,只需说明做什么就可以,不用关系怎么做。有一下几种类型:查询语言,程序生成器,其他4
GL(判定支持语言,原型语言等)
优点:更类似自然语言,删除了很多第三代语言中出现的严格的语法规则,将程序员从繁重的编码中解放了出来。
5、第五代语言-面向对象语言:面向对象的语言的形成借鉴了很多程序语言的特点,例如c++,VB,vb.NET,Java等。
二、程序设计质量评价
1、正确性
1>程序中没有语法错误
2>程序运行时没有发现明确的运行错误
3>程序中没有不适当的语句
4>用有效的测试数据,得到程序的正确结果
5>用无效的测试数据,得到程序的正确结果
6>用任何可能的数据,使程序在运行时得到正确的结果
2、结构清晰性
1>是否用三种结构化格式表示程序的控制逻辑
2>是否有一个入口,一个出口
3>是否严格控制GOTO语句
3、易修改性
4、易读性
5、简单性
下边附一副鱼骨刺图,集合了各阶段,各个部分的错误。
三、程序复杂性度量
1、代码行度量法:统计程序的源代码行数。
两前提:程序复杂性随着程序规模的增加不均衡的增长
控制程序规模的方法最好是采用化繁为简,分而治之的办法,将一个大程序分解成若干个简单的可理解的程序段。
方法:统计一个程序模块的源代码行目数,并以源代码行数作为程序复杂性的度量。
出错率:程序出错率的估算范围是从0.04%-7%之间,即每100行源程序中可能存在0.04-7个错误。
2、McCabe度量法:
解释:又称环路复杂性度量,是一种基于成语控制流的复杂性度量方法。
3、HalStead方法:Halstead软件科学研究确定计算机软件开发中的一些定量规律,它采用(程序长度,实际Halstead长度,程序的词汇表)等基本的度量值,这些度量值通常在程序产生之后得出,或者在设计完成后估算出。
四、小结
McCabe方法和Halstead方法很不理解,但是觉得挺有用。但是相信在后续的学习中还会碰到,暂时先做一个基本的了解,理解后再来完善。另外,希望大家在评论中多多指点,谢谢喽。