- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 软件编码 4.1 程序设计语言的特性及选择 4.1.1 程序设计语言特性 1. 心理特性 程序设计语言经常要求程序员改变处理问题的方法,使这种处理方法适合于语言的语法规定。而程序是人设计的,人的因素在设计程序时是至关重要的。语言的心理特性指影响程序员心理的语言性能,许多这类特性是作为程序设计的结果而出现的,虽不能用定量的方法来度量,但可以认识到它在语言中的表现形式如下: (1) 歧义性:指程序设计语言通常是无二义性的,编译程序总是根据语法,按一种固定方法来解释语句的,但有些语法规则容易使人用不同的方式来解释语言,这就产生了心理上的二义性。 如:X=X1/X2·X3,编译系统只有一种解释,但人们却有不同的理解,有人理解为X=(X1/X2)·X3,而另一个人可能理解为X=X1/(X2·X3)。又如 FORTRAN语言中变量的类型有显式定义和隐式定义两种,用REAL K显式说明K是实型变量,但按隐含类型定义,K是整型变量。在程序较长时,不可能每次都查类型定义,容易产生错误。若程序语言具有这些使人心理上容易产生歧义性的特征,则易使编程出错,而且可读性也差。 (2) 简洁性:指人们必须记住的语言成分的数量。人们要掌握一种语言,就要记住语句的种类、各种数据类型、各种运算符、各种内部函数和内部过程,这些成分数量越多, 简洁性越差,人们越难以掌握。但特别简洁也不好,有的语言(如APL)为了简洁,提供功能强但形式简明的运算符,允许用最少的代码去实现很多的算术和逻辑运算。可是这样使程序难以理解,一致性差。所以既要简洁又要易读易理解。 (3) 局部性和顺序性:指人的记忆特性有两方面即联想方式和顺序方式。人的联想力使人能整体地记住和辨别某件事情,如一下子就能识别一个人的面孔,而不是一部分一部分地看过之后才认得出;人的顺序记忆提供了回忆序列中下一个元素的手段,如唱歌,依次一句一句地唱出,而不必思索。人的记忆特性对使用语言的方式有很大的影响。局部性指语言的联想性,在编码过程中,由语句组合成模块,由模块组装成系统结构,并在组装过程中实现模块的高内聚,低耦合,使局部性得到加强,提供异常处理的语言特性,则消弱了局部性。若在程序中多采用顺序序列,则使人易理解,如果存在大量分支或循环,则不利于人们的理解。 (4) 传统性:指人们习惯于已掌握的语种,而传统性容易影响人们学习新语种的积极性,若新语种的结构、形式与原来的类似,还容易接受,若风格根本不同,则难以接受,如习惯用Pascal或C的编程人员,用Lisp和Prolog编程,就要用更多的时间来学习。 2. 工程特性 从软件工程的观点、程序设计语言的特性着重考虑软件开发项目的需要,因此对程序编码有如下要求: (1) 可移植性:指程序从一个计算机环境移植到另一个计算机环境的容易程度,计算机环境是指不同机型、不同的操作系统版本及不同的应用软件包。要增加可移植性,应考虑以下几点:在设计时模块与操作系统特性不应有高度联系;要使用标准的语言,要使用标准的数据库操作,尽量不使用扩充结构;对程序中各种可变信息,均应参数化,以便于修改。 (2) 开发工具的可利用性:指有效的软件开发工具可以缩短编码时间,改进源代码的质量。目前,许多编程语言都嵌入到一套完整的软件开发环境里。这些开发工具为:交互式调试器、交叉编译器、屏幕格式定义工具、报表格式定义工具、图形开发环境、菜单系统和宏处理程序等。 (3) 软件的可重用性:指编程语言能否提供可重用的软件成分,如模块子程序可通过源代码剪贴、包含和继承等方式实现软件重用。可重用软件在组装时,从接口到算法都可能调整,需考虑额外代价。 (4) 可维护性:指源程序的可维护性对复杂的软件开发项目的重要性,如易于把详细设计翻译为源程序、易于修改需要变化的源程序。因此,源程序的可读性、语言的文档化特性对软件的可维护性具有重大的影响。 3. 技术特性 语言的技术特性对软件工程各阶段有一定的影响,特别是确定了软件需求之后,程序设计语言的特性就显得非常重要了,要根据项目的特性选择相应特性的语言,有的要求提供复杂的数据结构,有的要求实时处理能力强,有的要求能方便地进行数据库的操作。软件设计阶段的设计质量一般与语言的技术特性关系不大(面向对象设计例外),但将软件设计转化为程序代码时,转化的质量往往受语言性能的影响,可能会影响到设计方法。 如Ada, Smalltalk, C++等支持抽象类型的概念,Pascal, C等允许用户自定义数据类型,并能提供链表和其他数据结构的类型。这些语言特性为设计者进行概要设计和详细设计提供了很大的方便。在有些情况下,仅在语言具有某种特性时,设计需求才能满足。如要实现彼此通信和协调的并发分布式处
您可能关注的文档
最近下载
- 2023年高中数学会考试题及答案.pdf VIP
- 口腔齿科培训-舒适化拔牙流程.pptx
- 【高中语文】整本书阅读《乡土中国》+学案+统编版高中语文必修上册.docx VIP
- 高等级公路中钢筋混凝土圆管涵的受力分析.pdf
- 上海市华师大二附中2024年高三第一次模拟考试数学试卷含解析.doc
- 2022年中新集团行测笔试题库.pdf
- 2024年部编版五年级上册语文期末复习语言文字积累与梳理1. 字音.pptx VIP
- 森林消防综合应急救援基础能力建设、队伍训练、综合救援队伍装备使用和维护规范.pdf VIP
- 《中国近现代史纲要(2023版)》课后习题答案汇编.docx
- (高清版)DB11∕T 1824-2021 森林消防综合应急救援队伍装备使用和维护规范.pdf VIP
文档评论(0)