网站大量收购独家精品文档,联系QQ:2885784924

第2章 程序设计语言及刻划.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 程序设计语言及刻划

程序设计语言需要有语言文本来精确地规定其功能、源程序的表示、语义和其限制,以及语用、语境等其他信息。 语言文本是实现者(厂商和开发人员)和使用者(编程人员)之间的界面。 不同程序设计语言文本的描写方法有相当大的差别。 程序设计语言文本的共同点: (1)语言文本的标准化; 国际标准(ISO)、国家标准(GB)、军用标准(T)、部颁布标准、企业标准等。 程序设计语言的标准属于指导性标准,而不是强制性标准。 在当前的形势下不走标准的路是难以实现工业化发展的。 (2)语言文本的格式和叙述相对刻板和严格,各个文本本身有较为统一的书写风格。 (3)各个语法单位均有语法、语义等描述。 语法表示:BNF及其变形 语义部分:对语法的解释、语法元素的限制、语义的说明、语用和语境等,一般采用自然语言。 2.2.1 源程序 程序设计语言比自然语言简单但比形式语言复杂,形式语言是程序设计语言的理论基础。 在程序设计语言中,句子即为正确的源程序。 正确:语法正确、语义合理、而语用、语境有适当解释。 语法正确的源程序:它可以由相应语法规则集产生的。如果语法是无歧义的,则语法正确的源程序有且仅有一棵语法树与之对应。 这里的语法是有序的,即所有的结点有先后次序,其树叶的有序排列(从左到右)即为源程序。 语法正确的源程序,其语义未必正确 如,某个名字未经说明,却在语句或表达式中出现。 2.2.2 程序设计语言的语法形式描述方法 一、BNF形式 BNF形式方法或其变种是使用最好最广的语法描述方法。是一种元语言。 元语言连接词: ::= (定义为) |(或) [ ], { }, { }+, { }*, 元语言变量: 汉字串1 汉字串1为语法单位 “汉字串2” 汉字串1 “汉字串2”为语义限制词,用于限定或说明汉字串1 。 元语言构成规则: 规则 = df元语言变量::=语法项 语法项 =df语法因子|语法因子 语法项 语法因子 =df元语言变量| |元语言变量语法因子 “元语言变量”的值是对象语言中的非终结符号。 在定义式的右端,“元语言变量”的值既可以是非终结符号也可以是终结符号。 [ A]:表示A可以出现也可以不出现,但均符合语法,出现与否将可能影响其语义。 { A}:表示A出现一次。 { A}+:表示{ A}重复1次到无限多次 { }* :表示{ A}重复0次到无限多次 表示{ A}重复n次到m次 例如,Ada语言中的有关异常处理结构的定义如下; handled_sequence_of_statements ::= sequence_of_statements [exception exception_handler {exception_handler}] exception_handler ::= when [choice_parameter_specification:] exception_choice {| exception_choice} = sequence_of_statements choice_parameter_specification ::= defining_identifier exception_choice ::= exception_name | others exception when E1=…..处理程序1 when E2=…..处理程序2 when others=…..默认的处理程序 二、抽像语法 设有下列BNF表示的语法(设其中W为语句,B为条件,I为变量,E为表达式) W::= I:=E (用于定义 赋值语句) W::= if B then W else W (用于定义 条件语句) W::= while B do W (用于定义 当语句) W::=W;W(用于定义顺序语句) 上述语句可以用下列形式表示: Assignment(I,E) If (B,W1,W2) While(B,W) Block(W1,W2) 三、属性文法 属性文AG是一个五元组。 AG=(D,V,S,A,P) 其中D是属性集合。(D1,D2……f1,f2 … )是一个代数结构,具有属性域D1,D2 …及部分函数f1,f2 …。这些函数是在这些域的笛卡尔积上的操作。 V=Vn U Vt, 其中Vn是非终结符号, Vt 是终结符号 S是开始符号; A是属性文法符号的集合,而每一个属性文法符号的形式为 x?a1? a2? …… ?an 其中x∈V,ai(i=1,……n)∈Dj, ai前的?表示或为↓(其后为继承属性),或为↑(其后为综合属性),P称为产生式集合。 语义可以从多角度分析: 从时间上可以分为

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档