欢迎来到天天文库
浏览记录
ID:38726038
大小:323.81 KB
页数:39页
时间:2019-06-18
《软件语言与编码第09章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章程序设计语言与编码教学目的:了解程序设计语言的特点、发展,掌握选择语言的原则,理解编程标准,良好编程风格。教学重点:选择语言的原则,编程标准,编程风格。教学难点:选择语言的原则,编程标准。第9章程序设计语言与编码编码——以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程。本章介绍程序设计语言的特点、发展和分类、开发时选择程序设计语言的标准、编程质量与程序设计语言的关系、编程标准和编程风格,最后简单介绍目前程序设计的支持环境。9.1程序设计语言9.1.1程序设计语言的特点语言的
2、几种特性。1)一致性(Uniformity)指语言中采用的标记(Token)法协调一致的程度。例如“”在C语言中即可以在声明中表示其后的变量为指针变量,又可作间接访问运算符,还可以作乘法运算符,这种“一词多用”、一致性不好的语言程序不仅可读性差,而且在编写程序的过程中容易出错。9.1.1程序设计语言的特点语言的几种特性。2)二义性(ambiguity)语言的二义性是指语言是否允许使用具有二义性的语句。允许使用二义性语句的语言在可理解性和可修改性上都要差一些。9.1.1程序设计语言的特点语言的几种特性。3)紧致性(compa
3、ctness)紧致性是指程序员写程序时必须记忆的关于语言的信息总量。决定紧致性的指标包括:①语言对结构化的支持程度。②关键字及操作符的数目,显然关键字和操作符的数目越多,则紧致性越差。③标准函数的个数及复杂程度。通常紧致性和一致性是矛盾的。在选择程序语言时,必须在这两者之间找到平衡点。9.1.1程序设计语言的特点语言的几种特性。4)局部性(locality)局部性是指语言的模块化和信息隐藏特性。一个局部性差的语言必然会导致程序的复杂性增加。比如,一种不具有块机制的语言,那么信息的作用域必然是全局的,程序的走向也是全局的,从而
4、导致程序的复杂性增加,可读性、可修改性和可维护性都会相应降低。程序设计语言其他连带的特性:1)将设计翻译成代码的难易程度设计阶段的输出是编码阶段的输入,因此以设计说明书为输入编写代码时程序语言对设计概念的支持程度就决定了翻译过程的难易。如果在分析阶段和设计阶段采用的是面向对象的方法,而在编码阶段采用的是面向过程的语言,那么这种翻译就比较困难。程序设计语言其他连带的特性:2)编译器所生成代码的效率对于实时或时间关键性的项目来说,除在设计和编码时对效率进行充分的考虑外,高效率的编译器也是必须的。好的编译器会对程序作最佳的性能优化
5、。不同语言生成的目标系统的效率不同,即使是同一种语言,采用不同的编译器,目标系统的效率也会不同。程序设计语言其他连带的特性:3)源代码的可移植性选择一种可移植性强的语言可以为代码的重用和项目的移植奠定好的基础。源代码的可移植性也是选择开发语言要考虑的因素。4)配套的开发工具主流的语言都有良好的集成开发环境(IDE)。其中不仅包括源代码的编辑器、编译和连接器、调试器,同时还包含配置管理工具、安装部署工具以及代码的转换工具。9.1.2程序设计语言的发展和分类第一代:机器语言和汇编语言,也称为低级语言。第二代:第一代和第三代的过渡
6、语言。这代语言是50年代末至60年代初出现的,这些语言应用面广,有大量成熟的程序库。这代语言包括FORTRAN、COBOL、BASIC等。9.1.2程序设计语言的发展和分类第三代语言:高级语言。高级语言通常被分成三类:1)通用高级语言。Algol60,C、Pascal,PL/1,Modula-2和Ada等。2)面向对象的语言,如C++、Java、Smalltalk等。3)专用语言,专用语言只用于特定的领域。LISP和Prolog适用于人工智能领域;APL是为数组和向量运算设计的语言;而Forth则用于开发微处理器软件。专用语
7、言可移植性和可维护性较差。9.1.2程序设计语言的发展和分类第四代语言(4GL)4GL还局限在某些领域内,如数据库查询语言。程序生成器代表了更为通用的一类4GL,程序生成器可以将更为自然的语言描述翻译成第三代语言程序,进而更好地消除设计和代码之间的语义断层。9.1.3程序设计语言的选择标准选择语言时要考虑的因素:1)项目的应用领域2)项目中算法和计算的复杂性3)项目中数据结构的复杂性4)用户的性能需求5)软件运行的环境6)软件开发人员开发水平。7)可用的编译器和交叉编译器。9.2编程质量与程序设计语言程序的可靠性、可维护性和
8、效率通常由程序设计语言、源代码的质量、和语言的实现机制决定的。9.2.1程序设计语言与可靠性程序设计语言的可靠性是指程序设计语言本身不出错或对错误的纠正能力。如:JAVA由于其抛弃了指针和动态存储分配等易于出错的语言特性。从而具有较高的可靠性。9.2.2程序设计语言与可维护性程序设计语言的
此文档下载收益归作者所有