《编码和语言选择.ppt》由会员分享,可在线阅读,更多相关《编码和语言选择.ppt(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第八章 编码和语言选择编码和语言选择 n编码的目的编码的目的n编码的风格编码的风格n编码使用的语言编码使用的语言1编码的目的n使使用用选选定定的的程程序序设设计计语语言言,把把模模块块的的过过程程性性描描述述翻翻译译为为用该语言书写的源程序用该语言书写的源程序 编码编码 模块的过程性描述模块的过程性描述源程序源程序 (不可执行的)(可执行的)(不可执行的)(可执行的)2程序员进行编码前应做工作n熟悉所选语言的功能和程序开发环境熟悉所选语言的功能和程序开发环境 n仔细阅读设计文档详细设计仔细阅读设计文档详细设计 n弄清要编码的模块的外部接口与内部过程弄清要编码的模块的外部接口与内部过程3编码的风
2、格n使用标准的控制结构使用标准的控制结构 n有限制地使用有限制地使用GOTO语句语句 清晰的前提下求取效率清晰的前提下求取效率 nMake it right before you make it faster.nMake it clear before you make it faster.nKeep it right when you make it faster.(求快不忘保持程序正确)(求快不忘保持程序正确)nKeep it simple to make it faster.(保持程序简单以求快)(保持程序简单以求快)ndont sacrifice clarity for“efficie
3、ncy”.(书写清楚,不要为(书写清楚,不要为“效率效率”牺牲清楚)牺牲清楚)4n源程序的文档化源程序的文档化(code documentation)n有意义的变量名称有意义的变量名称 n适当的注释适当的注释 n标准的书写格式标准的书写格式n用分层缩进的写法显示嵌套结构的层次;用分层缩进的写法显示嵌套结构的层次;n在注释段的周围加上边框;在注释段的周围加上边框;n在注释段与程序段、以及不同程序段之间插入空行;在注释段与程序段、以及不同程序段之间插入空行;n每行只写一条语句;每行只写一条语句;n书写表达式时,适当使用空格或圆括号等作隔离符;书写表达式时,适当使用空格或圆括号等作隔离符;5n满足运
4、行工程学的输入输出风格满足运行工程学的输入输出风格n输入方面输入方面n让程序对输入数据进行有效检验,防止对程序的有意和无意的破让程序对输入数据进行有效检验,防止对程序的有意和无意的破坏坏n输入格式力求简单、一致,并尽可能采用自由格式输入输入格式力求简单、一致,并尽可能采用自由格式输入n使用数据结束或文件结束标志来终止输入,不要让用户来计算输使用数据结束或文件结束标志来终止输入,不要让用户来计算输入的项数或记录数入的项数或记录数n向用户显示向用户显示“请输入请输入”的提示信息,同时说明允许的选择范围和的提示信息,同时说明允许的选择范围和边界值边界值n对多个相关输入项的组合进行检查,删除似是而非的
5、输入值对多个相关输入项的组合进行检查,删除似是而非的输入值6n输出方面输出方面n标志所有的输出数据,加以必要的说明标志所有的输出数据,加以必要的说明n使所有报表、报告具有良好的格式使所有报表、报告具有良好的格式n当用户使用程序时,能对用户做到当用户使用程序时,能对用户做到“on line”帮助帮助n对可能产生重大后果的请求,给出醒目的提示,待用户再次确对可能产生重大后果的请求,给出醒目的提示,待用户再次确认后才执行认后才执行n使程序具有使程序具有“防弹(防弹(Bulletproof)”功能,不致因用户的偶然功能,不致因用户的偶然错误使程序发生非正常的中断错误使程序发生非正常的中断n区别对待不同
6、类的用户,使程序的输入要求和输出形式适应用区别对待不同类的用户,使程序的输入要求和输出形式适应用户的习惯与水平户的习惯与水平n发生错误时,能迅速恢复正常发生错误时,能迅速恢复正常7程序设计语言的发展面向机面向机器的语言器的语言高级语言高级语言(第第3代代)甚高级甚高级语言语言机器语言机器语言(第第1代代)汇编语言汇编语言(第第2代代)结构结构语言语言基础基础语言语言面向面向对象对象语言语言第第4代代语言语言8编码语言的选择n对于规模较大的程序,需选择适当的语言进行设计对于规模较大的程序,需选择适当的语言进行设计n选择编码语言的标准选择编码语言的标准 n应用领域应用领域 n算法与计算复杂性算法与计算复杂性 n数据结构的复杂性数据结构的复杂性 n效率的考虑效率的考虑 9适用各类应用领域的语言 年代年代应用领域应用领域主要语言主要语言其他语言其他语言20世纪世纪60年代年代商业商业COBOLAssembler科学计算科学计算FORTRANALGOL、BASIC、APL系统系统AssemblerForth人工智能人工智能LISPSNOBOL现代现代商业商业COBOL、C+、Java、电子表格电子表格C、PL/1科学计算科学计算FORTRAN、C、C+JavaBASIC系统系统C、C+、JavaAda、Modula人工智能人工智能LISP、Prolog10