欢迎来到天天文库
浏览记录
ID:39157967
大小:832.50 KB
页数:56页
时间:2019-06-26
《《软件编码》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章软件编码6.1程序设计语言6.2编码风格及软件效率6.3程序复杂度的概念及度量方法6.4小结6.1程序设计语言6.1.1程序设计语言的分类随着计算机技术的发展,目前已经出现了数百种程序设计语言,但被广泛应用的只有几十种。由于不同种类的语言适用于不同的问题域和系统环境,因此了解程序设计语言的分类可以帮助我们选择出合适的语言。通常可将程序设计语言分为面向机器语言和高级语言两大类。1.面向机器语言面向机器语言包括机器语言(MachineLanguage)和汇编语言(AssembleLanguage)两种。机器语言是计算机系统可以直接识别
2、的程序设计语言。机器语言程序中的每一条语句实际上就是一条二进制形式的指令代码,由操作码和操作数两部分组成。由于机器语言难以记忆和使用,通常不用机器语言编写程序。汇编语言是一种符号语言,它采用了一定的助记符来替代机器语言中的指令和数据。汇编语言程序必须通过汇编系统翻译成机器语言程序,才能在计算机上运行。汇编语言与计算机硬件密切相关,其指令系统因机器型号的不同而不同。由于汇编语言生产效率低且可维护性差,所以目前软件开发中很少使用汇编语言。2.高级语言高级语言中的语句标识符与人类的自然语言(英文)较为接近,并且采用了人们十分熟悉的十进制数据表
3、示形式,利于学习和掌握。高级语言的抽象级别较高,不依赖于实现它的计算机硬件,且编码效率较高,往往一条高级语言的语句对应着若干条机器语言或汇编语言的指令。高级语言程序需要经过编译或解释之后,才能生成可在计算机上执行的机器语言程序。高级语言按其应用特点的不同,可分为通用语言和专用语言两大类。1)通用语言通用语言是指可用于解决各类问题、可广泛应用于各个领域的程序设计语言。从较早出现的基础语言Basic、FORTRAN等,到后来出现的结构化语言P、C等,再到现在被广泛使用的面向对象语言VisualC、Java等都属于通用语言的范畴。2)专用语言
4、专用语言是为了解决某类特殊领域的问题而专门设计的具有独特语法形式的程序设计语言。如专用于解决数组和向量计算问题的APL语言;专用于开发编译程序和操作系统程序的BLISS语言;专用于处理人工智能领域问题的LISP语言和PROLOG语言等。这些语言的共同特点是可高效地解决本领域的各种问题,但难以应用于其他领域。6.1.2程序设计语言的特性由于程序设计语言是实现人机通信的基本工具,编程者只有通过程序才能指挥计算机按照要求完成特定的任务,因此,程序设计语言所具有的特性往往会不可避免地对编程者处理问题的思路、编写程序的方式和质量产生影响。总的来说
5、,程序设计语言具有心理、工程和技术三大特性。1.心理特性程序体现的是编程者解决问题的思路,不同的人有不同的解题思路,同一个人在不同心理状态下的解题思路往往也会有所不同。所谓程序设计语言的心理特性,就是指能够影响编程者心理的语言性能。这种影响主要表现在以下几个方面。1)歧义性歧义性指程序设计语言中的某些语法形式使不同的人产生不同的理解。如FORTRAN语言中的表达式x**y**z有人理解为(x**y)**z,有人却理解为x**(y**z)。当然,这只是由于某些人对语言中某些语法规则的不了解所导致的,对于语言编译系统来说只有确定的一种解释。
6、2)简洁性简洁性指编程者要使用该语言所必须记住的各种语法规则(包括语句格式、数据类型、运算符、函数定义形式等)的信息量。需记忆的信息量越大,简洁性越差,人们掌握起来也就越难。但若程序设计语言的语法成分太少,过于简洁,又会给阅读程序带来麻烦,不利于人的理解。因此对于一个好的程序设计语言来说,既应具有一定的简洁性,又要具有较高的可理解性。3)局部性和顺序性局部性是指语言的联想性,即相关内容的相对集中性。在编程过程中,我们将实现某一功能的语句集中书写在一个模块中,由模块组装成完整的程序,并要求模块具有高内聚、低耦合的特点,其目的就是希望加强程
7、序的局部性。顺序性指语言的线性特征。例如对于顺序结构的程序人们很容易理解,而如果程序中存在大量的分支结构和循环结构,人们理解起来就比较困难了。语言的局部性和顺序性是由人类习惯于用联想的方式及按逻辑上的线性序列记忆事物的特性所决定的,局部性和顺序性的加强可提高程序的可理解性。2.工程特性语言是人们在软件工程活动中的编码阶段所使用的工具,因此有必要从软件工程的观点考虑为了满足软件开发项目的需要,程序设计语言所应具备的工程特性。语言的工程特性主要体现在以下几个方面。1)可移植性可移植性反映了程序在不同机器环境下的通用性和适应性。不同机器环境包
8、括不同的机型、不同的操作系统版本及不同的应用软件包。若一个程序可不加修改或稍加修改就可以应用于不同的机型、运行于高版本的操作系统或集成到不同的应用软件包中,则称这个程序具有较高的可移植性。2)语言编译器的实
此文档下载收益归作者所有