欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    软件语言与编码第09章.ppt

    • 资源ID:88436211       资源大小:256.99KB        全文页数:39页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件语言与编码第09章.ppt

    第第9章章 程序设计语言与编码程序设计语言与编码教学目的:了解程序设计语言的特点、发展,教学目的:了解程序设计语言的特点、发展,掌握选择语言的原则,理解编程标掌握选择语言的原则,理解编程标 准,良好编程准,良好编程 风格。风格。教学重点:选择语言的原则,编程标准,编程教学重点:选择语言的原则,编程标准,编程 风格。风格。教学难点:选择语言的原则,编程标准。教学难点:选择语言的原则,编程标准。第第9章章 程序设计语言与编码程序设计语言与编码编码编码以详细设计说明书为输入,将以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算该输入用某种程序设计语言翻译成计算 机可以理解并最终可运行的代码的过机可以理解并最终可运行的代码的过程。程。本章介绍程序设计语言的特点、发展和本章介绍程序设计语言的特点、发展和分类、开发时选择程序设计语言的标准、分类、开发时选择程序设计语言的标准、编程质量与程序设计语言的关系、编程编程质量与程序设计语言的关系、编程标准和编程风格,最后简单介绍目前程标准和编程风格,最后简单介绍目前程序设计的支持环境。序设计的支持环境。9.1 程序设计语言程序设计语言 9.1.1 程序设计语言的特点程序设计语言的特点 语言的几种特性。语言的几种特性。1)一致性()一致性(Uniformity)指语言中采用的标记指语言中采用的标记(Token)法协调一致的程法协调一致的程度。度。例如例如“”在在C语言中即可以在声明中表示其后语言中即可以在声明中表示其后的变量为指针变量,又可作间接访问运算符,的变量为指针变量,又可作间接访问运算符,还可以作乘法运算符,这种还可以作乘法运算符,这种“一词多用一词多用”、一、一致性不好的语言程序不仅可读性差,而且在编致性不好的语言程序不仅可读性差,而且在编写程序的过程中容易出错。写程序的过程中容易出错。9.1.1 程序设计语言的特点程序设计语言的特点语言的几种特性。语言的几种特性。2)二义性()二义性(ambiguity)语言的二义性是指语言是否允许使语言的二义性是指语言是否允许使用具有二义性的语句。允许使用二用具有二义性的语句。允许使用二义性语句的语言在可理解性和可修义性语句的语言在可理解性和可修改性上都要差一些。改性上都要差一些。9.1.1 程序设计语言的特点程序设计语言的特点语言的几种特性。语言的几种特性。3)紧致性()紧致性(compactness)紧紧致致性性是是指指程程序序员员写写程程序序时时必必须须记记忆忆的的关关于于语语言的信息总量。决定紧致性的指标包括:言的信息总量。决定紧致性的指标包括:语言对结构化的支持程度。语言对结构化的支持程度。关关键键字字及及操操作作符符的的数数目目,显显然然关关键键字字和和操操作作符符的数目越多,则紧致性越差。的数目越多,则紧致性越差。标准函数的个数及复杂程度。标准函数的个数及复杂程度。l通常紧致性和一致性是矛盾的。在选择程序语通常紧致性和一致性是矛盾的。在选择程序语言时,必须在这两者之间找到平衡点。言时,必须在这两者之间找到平衡点。9.1.1 程序设计语言的特点程序设计语言的特点语言的几种特性。语言的几种特性。4)局部性)局部性(locality)局部性是指语言的模块化和信息隐藏特局部性是指语言的模块化和信息隐藏特性。一个局部性差的语言必然会导致程性。一个局部性差的语言必然会导致程序的复杂性增加。比如,一种不具有块序的复杂性增加。比如,一种不具有块机制的语言,那么信息的作用域必然是机制的语言,那么信息的作用域必然是全局的,程序的走向也是全局的,从而全局的,程序的走向也是全局的,从而导致程序的复杂性增加,可读性、可修导致程序的复杂性增加,可读性、可修改性和可维护性都会相应降低。改性和可维护性都会相应降低。程序设计语言其他连带的特性:程序设计语言其他连带的特性:1)将设计翻译成代码的难易程度)将设计翻译成代码的难易程度 设计阶段的输出是编码阶段的输入,因设计阶段的输出是编码阶段的输入,因此以设计说明书为输入编写代码时程序此以设计说明书为输入编写代码时程序语言对设计概念的支持程度就决定了翻语言对设计概念的支持程度就决定了翻译过程的难易。译过程的难易。如果在分析阶段和设计阶段采用的是面如果在分析阶段和设计阶段采用的是面向对象的方法,而在编码阶段采用的是向对象的方法,而在编码阶段采用的是面向过程的语言,那么这种翻译就比较面向过程的语言,那么这种翻译就比较困难。困难。程序设计语言其他连带的特性:程序设计语言其他连带的特性:2)编译器所生成代码的效率)编译器所生成代码的效率 对于实时或时间关键性的项目来说,除对于实时或时间关键性的项目来说,除在设计和编码时对效率进行充分的考虑在设计和编码时对效率进行充分的考虑外,高效率的编译器也是必须的。好的外,高效率的编译器也是必须的。好的编译器会对程序作最佳的性能优化。不编译器会对程序作最佳的性能优化。不同语言生成的目标系统的效率不同,即同语言生成的目标系统的效率不同,即使是同一种语言,采用不同的编译器,使是同一种语言,采用不同的编译器,目标系统的效率也会不同。目标系统的效率也会不同。程序设计语言其他连带的特性:程序设计语言其他连带的特性:3)源代码的可移植性)源代码的可移植性 选选择择一一种种可可移移植植性性强强的的语语言言可可以以为为代代码码的的重重用用和和项项目目的的移移植植奠奠定定好好的的基基础础。源源代代码码的的可可移移植植性性也也是是选选择择开开发发语语言言要要考考虑的因素。虑的因素。4)配套的开发工具)配套的开发工具 主流的语言都有良好的集成开发环境主流的语言都有良好的集成开发环境(IDE)。其中不仅包括源代码的编辑器、)。其中不仅包括源代码的编辑器、编译和连接器、调试器,同时还包含配编译和连接器、调试器,同时还包含配置管理工具、安装部署工具以及代码的置管理工具、安装部署工具以及代码的转换工具。转换工具。9.1.2 程序设计语言的发展和分类程序设计语言的发展和分类第一代:机器语言和汇编语言,也称为第一代:机器语言和汇编语言,也称为低级语言。低级语言。第二代:第一代和第三代的过渡语言。第二代:第一代和第三代的过渡语言。这代语言是这代语言是50年代末至年代末至60年代初出现的,年代初出现的,这些语言应用面广,有大量成熟的程序这些语言应用面广,有大量成熟的程序库。这代语言包括库。这代语言包括FORTRAN、COBOL、BASIC等。等。9.1.2 程序设计语言的发展和分类程序设计语言的发展和分类第三代语言:高级语言。第三代语言:高级语言。高级语言通常被分成三类:高级语言通常被分成三类:1)通用高级语言。)通用高级语言。Algol 60,C、Pascal,PL/1,Modula-2和和Ada等。等。2)面向对象的语言,如)面向对象的语言,如C+、Java、Smalltalk等。等。3)专用语言,专用语言只用于特定的领域。)专用语言,专用语言只用于特定的领域。LISP和和Prolog适用于人工智能领域;适用于人工智能领域;APL是为数组和向量运算设计的语言;是为数组和向量运算设计的语言;而而Forth则用于开发微处理器软件。则用于开发微处理器软件。专用语言可移植性和可维护性较差。专用语言可移植性和可维护性较差。9.1.2 程序设计语言的发展和分类程序设计语言的发展和分类第四代语言(第四代语言(4GL)4GL还局限在某些领域内,如数据库查还局限在某些领域内,如数据库查询语言。询语言。程序生成器代表了更为通用的一类程序生成器代表了更为通用的一类4GL,程序生成器可以将更为自然的语言描程序生成器可以将更为自然的语言描述翻译成第三代语言程序,进而更好地述翻译成第三代语言程序,进而更好地消除设计和代码之间的语义断层。消除设计和代码之间的语义断层。9.1.3 程序设计语言的选择标准程序设计语言的选择标准l选择语言时要考虑的因素:选择语言时要考虑的因素:1)项目的应用领域)项目的应用领域 2)项目中算法和计算的复杂性)项目中算法和计算的复杂性 3)项目中数据结构的复杂性)项目中数据结构的复杂性 4)用户的性能需求)用户的性能需求 5)软件运行的环境)软件运行的环境 6)软件开发人员开发水平。)软件开发人员开发水平。7)可用的编译器和交叉编译器。)可用的编译器和交叉编译器。9.2 编程质量与程序设计语言编程质量与程序设计语言程序的可靠性、可维护性和效率通常由程序的可靠性、可维护性和效率通常由程序设计语言、源代码的质量、和语言程序设计语言、源代码的质量、和语言的实现机制决定的。的实现机制决定的。9.2.1 程序设计语言与可靠性程序设计语言与可靠性 程序设计语言的可靠性是指程序设计语程序设计语言的可靠性是指程序设计语言本身不出错或对错误的纠正能力。言本身不出错或对错误的纠正能力。如:如:JAVA由于其抛弃了指针和动态存储由于其抛弃了指针和动态存储分配等易于出错的语言特性。从而具有分配等易于出错的语言特性。从而具有较高的可靠性。较高的可靠性。9.2.2 程序设计语言与可维护性程序设计语言与可维护性程程序序设设计计语语言言的的可可维维护护性性通通常常指指这这种种语语言言编编写写的的程程序序被理解,被修改及调整和改进的难易程度。被理解,被修改及调整和改进的难易程度。程序设计语言的可维护性一般由下面几个因素决定:程序设计语言的可维护性一般由下面几个因素决定:程序设计语言的一致性和紧致性程序设计语言的一致性和紧致性 一一致致性性刻刻画画了了语语言言标标记记的的语语义义单单义义性性,因因此此一一致致性性好的语言的可维护性要好于一致性差的语言。好的语言的可维护性要好于一致性差的语言。程序设计语言的语法规则程序设计语言的语法规则 语法规则的严格程度也影响语言的可维护性和可读语法规则的严格程度也影响语言的可维护性和可读性,语法要求严格的语言要比语法自由的语言的可维性,语法要求严格的语言要比语法自由的语言的可维护性差些。因为修改和理解语法严格的语言要困难些。护性差些。因为修改和理解语法严格的语言要困难些。比如比如FORTRAN和和Perl语言,其语法要求很严格。因语言,其语法要求很严格。因此其可维护性与此其可维护性与C/C+等语法较自由的语言相比要差等语法较自由的语言相比要差些。些。9.2.3 程序设计语言与效率程序设计语言与效率不不同同程程序序设设计计语语言言在在程程序序的的效效率率上上的的差差异异很很大大。程序设计语言的效率由下面因素决定:程序设计语言的效率由下面因素决定:程序设计语言的实现机制;程序设计语言的实现机制;解解释释性性程程序序(如如解解释释BASIC)和和编编译译成成中中间间语语言言然然后后又又解解释释执执行行的的语语言言(如如JAVA)的的效效率率一般要远远低于编译语言。一般要远远低于编译语言。程序语言对系统底层的访问和控制能力;程序语言对系统底层的访问和控制能力;设计良好的低级语言程序效率最高。设计良好的低级语言程序效率最高。编译器的效率;编译器的效率;9.3 编程标准编程标准编码的依据是详细设计说明书。编码的编码的依据是详细设计说明书。编码的任务就是按照详细设计说明的要求写出任务就是按照详细设计说明的要求写出满足要求的代码。设计阶段的成果基本满足要求的代码。设计阶段的成果基本上决定了系统的可修改性和可维护性。上决定了系统的可修改性和可维护性。在编码阶段,遵循下述原则,将有助于在编码阶段,遵循下述原则,将有助于编写清晰、紧凑、高效的程序。从而进编写清晰、紧凑、高效的程序。从而进一步提高程序的可修改性、可维护性和一步提高程序的可修改性、可维护性和可测试性。可测试性。编码原则编码原则1)编写易于修改和维护的代码)编写易于修改和维护的代码 编编码码阶阶段段,在在设设计计基基础础上上对对程程序序进进行行进进一一步步的的数数据据和和操操作作的的分分离离有有利利于于代代码码和和数据的单独改变。数据的单独改变。2)编写易于测试的代码)编写易于测试的代码 在编码阶段对代码的可测试性进行考虑在编码阶段对代码的可测试性进行考虑可以减少测试阶段的工作量。以条件编可以减少测试阶段的工作量。以条件编译和注释的方法融入源代码中,是一种译和注释的方法融入源代码中,是一种有效的增加代码可测试性的手段。有效的增加代码可测试性的手段。编码原则编码原则3)编写详细的程序文档)编写详细的程序文档l程程序序文文档档一一般般指指以以注注释释的的形形式式嵌嵌入入程程序序中中的的代代码描述。程序文档应该与程序保持高度一致。码描述。程序文档应该与程序保持高度一致。l程序文档应该包括下列内容程序文档应该包括下列内容 代码的功能;代码的功能;代码的完成者;代码的完成者;代码在整个软件系统中的位置;代码在整个软件系统中的位置;代码编制、复审时间;代码编制、复审时间;保留代码的原因;保留代码的原因;代码中如何使用数据结构和算法。代码中如何使用数据结构和算法。程序文档的例子程序文档的例子/*Modual name:gameserver Function:game server for realtime game information process Author:chejinhui Create date:2003/11/12 Platform:IA32,Windows Modify list:2003/11/14 line 28 should be=2003/11/15 line 29.*/程序文档的例子程序文档的例子/*-include stdio&socket libarary-*/#include#include/*-Global var area-*/int iUserCount;程序文档的例子程序文档的例子/*-Initialize Socket Subsysteminput:noneoutput:DLL initialize result0:faultother:success-*/程序文档的例子程序文档的例子int InitSockInterface()WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested=MAKEWORD(2,2);/start socket subsystem err=WSAStartup(wVersionRequested,&wsaData);if(err!=0)return 0;程序文档的例子程序文档的例子/see if socket version meet our request(must be 2.2)if(LOBYTE(wsaData.wVersion)!=2|HIBYTE(wsaData.wVersion)!=2)WSACleanup();return 0;/*-this is the end of program document demo-*/编码原则编码原则4)编编程程中中采采用用统统一一的的标标准准和和约约定定,降降低低程程序的复杂性序的复杂性 软件组织通常会制定一份软件组织通常会制定一份“编码规范编码规范”,程序员在编写代码时。必须严格按照,程序员在编写代码时。必须严格按照“编码规范编码规范”编写代码。表编写代码。表9-1是软件组是软件组织织“编码规范编码规范”的通用格式和内容。的通用格式和内容。表表9-1 编码规范编码规范规范项规范项规范内容规范内容1 排版排版排版格式,如缩进、块语句、分行等排版格式,如缩进、块语句、分行等2 注释注释规范注释的格式规范注释的格式3 标识符命名标识符命名规范标识符的命名规则规范标识符的命名规则4 可读性可读性为提高可读性所作的规范,如禁止使用技巧性高的语句为提高可读性所作的规范,如禁止使用技巧性高的语句5 变量、结构变量、结构规范变量和结构的定义,如禁止局部与全局变量同名等规范变量和结构的定义,如禁止局部与全局变量同名等6 函数、过程函数、过程规范函数的定义,如规范函数的定义,如“不要设计多用途面面俱到的函数不要设计多用途面面俱到的函数”7 可测性可测性为提高可测性的规范,如为提高可测性的规范,如“用断言确认函数的参数用断言确认函数的参数”等等8 程序效率程序效率为程序效率所作的规范,如为程序效率所作的规范,如“循环体内工作量最小化循环体内工作量最小化”9 质量保证质量保证为提高软件质量所作的规范,如为提高软件质量所作的规范,如“防止内存操作越界防止内存操作越界”编码原则编码原则5)分离功能独立的代码块形成新的模块)分离功能独立的代码块形成新的模块将功能独立的代码块独立出来形成新的将功能独立的代码块独立出来形成新的模块,增加模块的内聚度,有利于代码模块,增加模块的内聚度,有利于代码的重用和可修改性。的重用和可修改性。9.4 编程风格编程风格不同的程序员可能具有不同的编程风格,有时不同的程序员可能具有不同的编程风格,有时候很难说哪种风格好,哪种风格不好,比如在候很难说哪种风格好,哪种风格不好,比如在分支语句之后的语句块,一些程序员可能习惯分支语句之后的语句块,一些程序员可能习惯这样:这样:if(ab).而另外的程序员喜欢这样:而另外的程序员喜欢这样:if(ab).9.4 编程风格编程风格一般的软件组织允许程序员在不影一般的软件组织允许程序员在不影响代码的可读性、可修改性、可测响代码的可读性、可修改性、可测试性、可维护性的基础上使用自己试性、可维护性的基础上使用自己的风格编写程序。但是有些规则则的风格编写程序。但是有些规则则是所有程序员必须遵守的。是所有程序员必须遵守的。好的编程风格应遵循的规则好的编程风格应遵循的规则1)节简化()节简化(economy)不使用不必要的变量和函数不使用不必要的变量和函数避避免免变变量量重重名名,变变量量重重名名可可导导致致很很难难被被发发现现的错误。的错误。尽量减小代码量。尽量减小代码量。尽量减少代码的执行时间,提高执行效率。尽量减少代码的执行时间,提高执行效率。避免功能冗余的模块。避免功能冗余的模块。尽量不使用全局变量。尽量不使用全局变量。好的编程风格应遵循的规则好的编程风格应遵循的规则2)模块化()模块化(Modularity)确保物理和逻辑功能密切相关。确保物理和逻辑功能密切相关。限定一个模块完成一个独立的功能,限定一个模块完成一个独立的功能,提高模块的内聚度。提高模块的内聚度。检查代码的重复率,重复多的代码,检查代码的重复率,重复多的代码,要抽出来作为一个单独的模块。要抽出来作为一个单独的模块。好的编程风格应遵循的规则好的编程风格应遵循的规则3)简单化()简单化(Simplicity)采用直接了当的算法,避免使用技巧采用直接了当的算法,避免使用技巧 性高和难懂的代码。性高和难懂的代码。使用简单的数据结构,避免使用多维使用简单的数据结构,避免使用多维 数组、指针和复杂的表。数组、指针和复杂的表。注意对象命名的一致性。注意对象命名的一致性。以手工的方式简化算术和逻辑表达式。以手工的方式简化算术和逻辑表达式。好的编程风格应遵循的规则好的编程风格应遵循的规则4)结构化)结构化按标准化的次序说明数据;按标准化的次序说明数据;按字母顺序说明对象名按字母顺序说明对象名使用读者明了的结构化程序部件;使用读者明了的结构化程序部件;采用直截了当的算法;采用直截了当的算法;根据应用背景排列程序各个部分;根据应用背景排列程序各个部分;好的编程风格应遵循的规则好的编程风格应遵循的规则4)结构化()结构化(structure)不随意为效率而牺牲程序的清晰度和可读性不随意为效率而牺牲程序的清晰度和可读性让机器多做烦琐的工作,如重复、库函数;让机器多做烦琐的工作,如重复、库函数;用公共函数调用代替重复出现的表达式;用公共函数调用代替重复出现的表达式;避免循环、分支的嵌套层数过高;避免循环、分支的嵌套层数过高;单入口单出口。单入口单出口。好的编程风格应遵循的规则好的编程风格应遵循的规则5)文档化()文档化(documentation)有效、适当地使用注释。有效、适当地使用注释。协调使用程序块注释和程序行注释。协调使用程序块注释和程序行注释。保持文档和程序的同步。保持文档和程序的同步。好的编程风格应遵循的规则好的编程风格应遵循的规则6)格式化()格式化(layout)始终采用统一缩进规则;始终采用统一缩进规则;适当插入括号表明运算次序、排除二义性;适当插入括号表明运算次序、排除二义性;有效地使用空格符以区别程序的不同群。有效地使用空格符以区别程序的不同群。9.5 程序设计支持环境(程序设计支持环境(PSE)PSE,programming support environment 即编程所使用的集成开发环境:即编程所使用的集成开发环境:IDE,integrated development environmentPSE完成程序编辑、编译、调试、配置管理、完成程序编辑、编译、调试、配置管理、项目管理等一组任务。项目管理等一组任务。9.5 程序设计支持环境(程序设计支持环境(PSE)好的好的PSE应该具有如下的特性:应该具有如下的特性:1)通通用用性性。适适用用于于不不同同的的语语言言、不不同同的的应应用领域和开用领域和开 发方法。发方法。2)适适应应性性。通通过过设设置置,可可以以配配置置出出满满足足不不同需要的同需要的PSE实例。实例。3)开放性。能方便的增加新工具。)开放性。能方便的增加新工具。4)支支持持重重用用。能能支支持持可可重重用用组组件件的的查查询询、存储和使用。存储和使用。9.5 程序设计支持环境(程序设计支持环境(PSE)5)自控性。保证自身操作的正确性和协调。)自控性。保证自身操作的正确性和协调。6)自带数据库。提供数据库用于管理已开)自带数据库。提供数据库用于管理已开 发软件产品发软件产品7)保证质量。有助于提高所开发软件的质)保证质量。有助于提高所开发软件的质 量。量。8)吸引用户。用户愿意使用。)吸引用户。用户愿意使用。9)有竞争力。)有竞争力。PSE能真正提高软件的生产能真正提高软件的生产 率。率。

    注意事项

    本文(软件语言与编码第09章.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开