




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第6章章 编码与语言选择编码与语言选择6.1 编码的目的和任务编码的目的和任务6.2 编码所使用的语言编码所使用的语言6.3 编码的风格编码的风格6.1 编码的目的和任务编码的目的和任务编码编码阶段即软件实现阶段阶段即软件实现阶段编码的目的:把模块的过程性描述翻译成用选定的编码的目的:把模块的过程性描述翻译成用选定的程序设计语言书写的源程序(或者源代码)。程序设计语言书写的源程序(或者源代码)。模块的过程性模块的过程性描述描述源程序源程序6.1 编码的目的和任务编码的目的和任务编码产生的源程序,应该编码产生的源程序,应该逻辑正确一致逻辑正确一致表述简明清晰表述简明清晰并且具有较高的运行效率并
2、且具有较高的运行效率对于大多数模块,编码时应该对于大多数模块,编码时应该把简明清晰放在第一把简明清晰放在第一位位。如果个别模块要求特别高的效率,就应把具体。如果个别模块要求特别高的效率,就应把具体要求告诉程序员,以便作特殊的处理。要求告诉程序员,以便作特殊的处理。程序员不仅要养成良好的编码风格,而且要十分熟程序员不仅要养成良好的编码风格,而且要十分熟悉所使用的语言,以便能得心应手、恰到好处地运悉所使用的语言,以便能得心应手、恰到好处地运用语言的特点,为提高程序的清晰性和效率服务。用语言的特点,为提高程序的清晰性和效率服务。6.2 编码所使用的语言编码所使用的语言程序设计语言范型程序设计语言范型
3、命令式语言命令式语言结构化结构化程序设计语言程序设计语言面向对象程序设计语言面向对象程序设计语言声明式语言声明式语言函数式语言函数式语言逻辑式语言逻辑式语言6.2 编码所使用的语言编码所使用的语言命令式命令式编程编程(Imperative programming)是一种描述)是一种描述电脑所需作出的行为的编程范型,即电脑所需作出的行为的编程范型,即指定问题求解的指定问题求解的算法算法。How?几乎所有电脑的硬件工作都是指令式的;几乎所有电几乎所有电脑的硬件工作都是指令式的;几乎所有电脑的硬件都是设计来运行机器码,使用指令式的风格脑的硬件都是设计来运行机器码,使用指令式的风格来写的。因为命令式编
4、程的基础观念,不但概念上比来写的。因为命令式编程的基础观念,不但概念上比较熟悉,而且较容易具体表现于硬件,所以大部分的较熟悉,而且较容易具体表现于硬件,所以大部分的编程语言都是命令式的。编程语言都是命令式的。命令式语言的核心就在于命令式语言的核心就在于“通过运算去改变内存(中通过运算去改变内存(中的数据)的数据)”。由于命令式语言的实质是面向存储的编由于命令式语言的实质是面向存储的编程,所以这一类语言比其他语言更加关注存储的方式程,所以这一类语言比其他语言更加关注存储的方式。在程序设计的经典法则。在程序设计的经典法则“程序程序=算法算法+结构结构”中,命中,命令式语言是首先关注令式语言是首先关
5、注“结构结构”的,这里是特指的,这里是特指“数据数据结构(或类型系统)结构(或类型系统)”。6.2 编码所使用的语言编码所使用的语言命令式语言的演化分为命令式语言的演化分为“结构化编程结构化编程”和和“面向对象面向对象编程编程”两个阶段。两个阶段。早期的命令式编程语言都是电脑本身的机器语言。在早期的命令式编程语言都是电脑本身的机器语言。在这些语言中,指示非常简单,令硬件的运行更容易,这些语言中,指示非常简单,令硬件的运行更容易,却阻碍了复杂程序的设计。却阻碍了复杂程序的设计。1954年开始开发的年开始开发的FORTRAN,是首个在复杂程序的,是首个在复杂程序的设计中除掉机器码的编程语言。设计中
6、除掉机器码的编程语言。后来的二十年中,可以看到大量的其他高级命令式编后来的二十年中,可以看到大量的其他高级命令式编程语言出现。例:程语言出现。例:C、Basic、Pascal等等。在在1980年后,面向对象编程有迅速的发展;面向对象年后,面向对象编程有迅速的发展;面向对象编程语言均有着指令式的风格,但增添了支持对象的编程语言均有着指令式的风格,但增添了支持对象的功能。例:功能。例: C+、 Java等。等。6.2 编码所使用的语言编码所使用的语言声明式编程声明式编程(Declarative programming)是一种编)是一种编程范型,采用了和命令式编程对立的方向。它描述程范型,采用了和命
7、令式编程对立的方向。它描述目目标性质,让电脑明白目标是什么。目目标性质,让电脑明白目标是什么。What?声明式编程通过函数、推论规则或项重写规则,来声明式编程通过函数、推论规则或项重写规则,来描述变量之间的关系。它的语言运行器(编译器或描述变量之间的关系。它的语言运行器(编译器或解释器)采用了一个固定的算法,以从这些关系产解释器)采用了一个固定的算法,以从这些关系产生结果。生结果。声明式编程主要包括声明式编程主要包括函数式编程函数式编程和和逻辑式编程逻辑式编程。函数式编程是一种编程范型,它将电脑运算视为函数式编程是一种编程范型,它将电脑运算视为函数的计算。例:函数的计算。例:Haskell、L
8、ISP。逻辑式编程是种编程范型,它设置答案须符合的逻辑式编程是种编程范型,它设置答案须符合的规则来解决问题,而非设置步骤来解决问题。例规则来解决问题,而非设置步骤来解决问题。例,Prolog。6.2 编码所使用的语言编码所使用的语言面向机器的语言面向机器的语言高级语言(第三代)高级语言(第三代)更高级语言更高级语言机器语言机器语言(第一代)(第一代)汇编语言汇编语言(第二代)(第二代)基础语言基础语言结构化语言结构化语言面向对象语言面向对象语言 (第四代语言)(第四代语言)MASMFortranPascal, CSmalltalk, JavaSQL, 4GL6.2 编码所使用的语言编码所使用的
9、语言6.2 编码所使用的语言编码所使用的语言面向机器面向机器的语言的语言高级语言高级语言 G3甚高级语言甚高级语言机器语言机器语言 G1汇编语言汇编语言 G2基础语言基础语言结构化语言结构化语言面向对象语言面向对象语言第四代语言第四代语言 G46.2 编码所使用的语言编码所使用的语言基础语言基础语言FORTRANCOBOLBASIC结构化语言结构化语言Pascal CAda面向对象的语言面向对象的语言SmalltalkC+JavaC#6.2 编码所使用的语言编码所使用的语言编码语言的选择,标准:编码语言的选择,标准:应用领域应用领域算法与计算复杂性算法与计算复杂性数据结构的复杂性数据结构的复杂
10、性效率效率6.2 编码所使用的语言编码所使用的语言年代年代应用领域应用领域主要语言主要语言其他语言其他语言2020世纪世纪6060年代年代商业商业CobolCobolAssemblerAssembler科学计算科学计算FortranFortranAlgolAlgol、BasicBasic、APLAPL系统系统AssemblerAssembler人工智能人工智能LISPLISPSNOBOLSNOBOL商业商业CobolCobol、C+C+、JavaJava、电子表格、电子表格C C、PL/1PL/1现代现代科学计算科学计算FortranFortran、C C、C+C+、JavaJavaBasic
11、Basic系统系统C C、C+C+、JavaJavaAdaAda、ModulaModula人工智能人工智能LISPLISP、PrologProlog6.3 编码的风格编码的风格编码风格编码风格又称程序设计风格,又称程序设计风格, 其实就是程序员在书写其实就是程序员在书写代码过程中保持源代码清晰易读、便于维护的一种方代码过程中保持源代码清晰易读、便于维护的一种方式。式。人们意识到良好的代码风格可以降低程序出错的几率人们意识到良好的代码风格可以降低程序出错的几率,提高程序的易读性和质量,利于构造大软件所必须,提高程序的易读性和质量,利于构造大软件所必须的团队开发,同时也可有效降低了程序的维护成本。
12、的团队开发,同时也可有效降低了程序的维护成本。1974年年Kernighan 与与 Plauger在在The Elements of Programming Style一书中将编码风格归为一书中将编码风格归为7大类,涉大类,涉及及70多个指导原则。多个指导原则。6.3 编码的风格编码的风格要求:要求:源程序文档化源程序文档化 :源程序文档化包括恰当的标识符源程序文档化包括恰当的标识符、适当的注解和程序的视觉组织等。、适当的注解和程序的视觉组织等。数据说明数据说明 :在编写程序时,需注意数据说明的风在编写程序时,需注意数据说明的风格。格。语句结构:语句结构:构造语句时应该遵循的原则是,每个构造语
13、句时应该遵循的原则是,每个语句都应该简单而直接,不能为了提高效率而使语句都应该简单而直接,不能为了提高效率而使程序变得过分复杂。程序变得过分复杂。输入输出输入输出 :源程序的输入输出风格满足人类工效源程序的输入输出风格满足人类工效学(学(ergonomics)的要求。)的要求。效率:效率:效率主要指处理机时间和存储器容量两个效率主要指处理机时间和存储器容量两个方面。方面。小结小结 编码的目的是把详细设计的结果翻译成用选定的语言书写的源编码的目的是把详细设计的结果翻译成用选定的语言书写的源程序。程序的质量主要是由设计的质量决定的。但是,编码的程序。程序的质量主要是由设计的质量决定的。但是,编码的
14、风格和使用的语言对编码质量也有重要的影响。良好的编码风风格和使用的语言对编码质量也有重要的影响。良好的编码风格,提倡源代码的文档化,是实现良好风格的重要途径。同样格,提倡源代码的文档化,是实现良好风格的重要途径。同样重要的是,程序的输入重要的是,程序的输入/输出应该充分考虑运行工程学的要求,输出应该充分考虑运行工程学的要求,在满足数据可行性的前提下,尽量做到对用户友善。语言的演在满足数据可行性的前提下,尽量做到对用户友善。语言的演变,经历了汇编语言、高级语言和甚高级语言等阶段。高级语变,经历了汇编语言、高级语言和甚高级语言等阶段。高级语言的巨大进展,使汇编语言的应用领域日益缩小。现阶段的程言的巨大进展,使汇编语言的应用领域日益缩小。现阶段的程序设计,主要是高级语言程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 衡水金卷四省(四川云南)高三联考9月联考历史(含答案)
- 2025租赁合同终止协议书范文
- 企业安全培训账号密码课件
- 氢气制备与储存优化-洞察及研究
- 出入口保安培训课件
- 2025电视剧版权购买合同范本
- 2025合同范本合同协议书模板管理规程
- 2025年版融法合同违约诉状范本
- 2025管理技能合同风险评估与控制方法
- 2025《上海市机动车驾驶培训服务合同(示范文本)》
- 进出口贸易合规管理制度
- 医疗器械冷链培训
- 公共政策分析 课件 第0章 导论;第1章绪论:政策科学的“研究纲领”
- 冠脉微循环功能障碍评估
- 病理学课件下载
- 2024-2030年撰写:中国病房行业发展趋势及竞争调研分析报告
- 【MOOC】土木工程施工-西南科技大学 中国大学慕课MOOC答案
- 颈动脉狭窄手术治疗
- CAXA工艺图表2024使用手册
- 电动滑板车行车应急预案
- 码头电气安装施工方案
评论
0/150
提交评论