高级语言及其语法描述.ppt

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

****语境:指理解和实现程序设计语言的环境,包括编译环境和运行环境**赋值语句语法的非形式化描述为:赋值语句由一个变量,后随一个符号“=”,再在后面跟一个表达式所构成。赋值语句的语义为:先对该语句的右部表达式求值,然后把所得结果与语句左部的变量相结合,并取代该变量原有的值。赋值语句的语用为:赋值语句可用来计算和保存表达式的值。**注意这里提到三个概念:a.一个程序只是用一个有限字符集作为字母表;b.词法规则是指单词符号的形成规则。单词符号一般包括:各类型的常数、标识符、基本字、算符和界符等。C.语言的语法规则规定了如何从单词符号形成更大的结构(即语法单位),换言之,语法规则是语法单位的形成规则。一般程序语言的语法单位有:表达式、语句、分程序、函数、过程和程序等。**软件发展的三个里程碑:子程序、高级语言、结构化程序设计自上而下看上述层次结构:顶端是程序本身,他是一个完整的执行单位。一个程序通常是由若干个子程序或分程序组成的,他们常常含有自己的数据(局部名)。子程序或分程序是由语句组成的。而组成语句的成分是各种类型的表达式。表达式是描述数据运算的基本结构,它通常含有数据引用、算符和函数调用。自下而上看上述层次结构:我们希望通过对下层成分的了解掌握上层成分,从而掌握整个程序。在学习编译原理的过程中特别注意:程序语言的每个组成成分都有(抽象的)逻辑和计算机实现两方面的意义。当从数学上考虑每一个组成成分时,我们注重它的逻辑意义,当从计算机这个角度来看时,我们注重他在机内的表示和实现的可能性与效率。****强制式:命令驱动,面向语句**辅助程序段可以是子程序、函数段或数据。每程序段由一系列说明语句和执行语句组成。各程序段可以独立编辑。这对模块设计甚为方便。一个FORTRAN程序个程序段所定义的各种名字通常是彼此独立的。同一个标识符在不同的程序段中一般都可以代表不同的名字,即代表不同的存储单元,个程序段对它们的引用或赋值是彼此无关的。但是,不同程序段里的同名公用块(CommonBlock)却代表同一个存储区域。因此,出现在COMMON语句中的名字所代表的单元在其他程序块中也可以引用。所以说,公用区具有全局性。不出现在COMMON中的名字所代表的单元具有局部性。****数据结构、数据类型和抽象数据类型,它们在含义上既有区别又有联系。数据结构是用来反映一个数据的内部构成,即一个数据由哪些成分数据构成,以什么方式构成,呈什么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映成分数据之间的逻辑关系,物理上的数据结构反映成分数据在计算机内的存储安排。数据结构是数据存在的形式。数据是按照数据结构分类的,具有相同数据结构的数据属同一类。同一类数据的全体称为一个数据类型。在程序设计高级语言中,数据类型用来说明一个数据在数据分类中的归属。它是数据的一种属性。这个属性限定了该数据的变化范围。抽象数据类型可理解为数据类型的进一步抽象。即把数据类型和数据类型上的运算捆在一起,进行封装。引入抽象数据类型的目的是把数据类型的表示和数据类型上运算的实现与这些数据类型和运算在程序中的引用隔开,使它们相互独立。对于抽象数据类型的描述,除了必须描述它的数据结构外,还必须描述定义在它上面的运算(过程或函数)。抽象数据类型上定义的过程和函数以该抽象数据类型的数据所应具有的数据结构为基础。********在多数语言中算术算符和逻辑算符的优先顺序一般规定如下:乘幂(**或↑)一元负(-)乘、除(*,/,÷)加、减(+,-)关系符(,=,,=,,=)非(﹁,not,或.NOT.)与(∧,,and或.AND.)或(∨,∣,or或.OR.)隐含(?或imp)等值(≡,~或equi)算符的代数性质(交换率、结合率和分配率)常常可用来优化目标程序的质量。但是必须注意两点:(1)代数性质引用到什么程度视具体语言的不同而不同。如在ALGOL中把A*B+C*D处理成C*D+A*B,则至少是对ALGOL不够忠实。(2)数学上成立的代数性质在计算机上未必完全成立。如:(A+B)+C=A+(B+C)在计算机上并不普遍成立。**我们知道,每个名字有两方面的特征:一方面它代表一定的存储单元,另一方面它又以该单元的内容作为值。****开始符号:文法产生式中有一个符号S

文档评论(0)

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

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

1亿VIP精品文档

相关文档