国防科大编译原理第二章节.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
国防科大编译原理第二章节

第二章:高级语言机器语法描述;2.1 程序语言的定义-关于语言的一些概念;语言的词法规则和语法规则定义了程序的结构形式,是判断输入字符串是否构成一个形式上正确程序的依据。;2.1.2 语义 ;2.2 高级语言的一般特性;2.2.2 程序结构;2.2.3 数据类型和操作;名字和标识符 名字:用来表示数据对象、函数和过程。具有一定的内涵,如代 表数据时,其涵义涉及该数据的值、类型等。又可看成是一个 抽象的存储单元的代表,如变量(int count)。 标识符:字母和数字组成,以字母开头的字符串,用来表示名字。 名字的属性包括类型和作用域,类型决定名字具有什么样的值, 值在计算机内的表示方式,以及可以对它施加的运算。作用域 规定名字的值的存在范围。 “静态”名字:通过说明语句或隐性规则约定名字的类型。 可在编译时对其合法性进行检查。(无需在运行时检查或转换) “动态”名字:名字的类型只有在程序运行时才能确定。需在 程序运行时收集、确定其性质,并进行必要的类型转换。;二、数据结构 ——相互之间存在一种或多种特定关系的数据元素的集合。 由初等数据定义复杂数据结构的常见方式有: 1.数组:一个数组是由同一类型数据组成的n维矩形结构。沿着每 一维的距离称为一个下标,数组的每个元素位置可通过每一维的 下标来确定,每个数组元素占用同样大小的存储空间,同时数组 元素由数组名连同下标值来命名,如A[1,2,3,..,x]。 确定数组:编译时已确定数组占用空间大小。 可变数组:可在运行时动态改变数组占用空间的大小。 数组的存储和数组元素的地址计算:按行或按列存储。 编译程序要(1)在见到数组说明时,记录数组的有关信息。 (2)在见到数组元素名时,正确计算数组元素的地址。;2.记录:由已知类型的数据组合起来的一种结构。 域:记录通常包括若干个分量,记录的一个分量称为记录的 一个域。不同域的数据类型可以不同,一个域占用的存储 单元数叫域的长度。 如:card:record name:array [1..20] of char; {长度为20} age: integer; {长度为4} married:boolean; {长度为1} end; 记录的存储和各个域的地址的计算:连续存放。 如:card首地址为a。则card.name的地址为a。 则card.age的地址为 a+20。则card.married的地址为a+24。;3.字符串、表格、栈、队列 一些语言支持以上某些数据类型是为了方便对特殊应用的数据 的处理。体现了该语言的特点。;二、抽象数据类型 ——为了增加程序的可读性和可理解性,提高可维护性、 降低软件设计的复杂性。 抽象数据类型包括: 一个数据对象的集合。 作用于这些数据对象的抽象运算的集合。 这种类型对象的封装,即用户只能使用类型中定义的运算对 对象进行操作。 C++和java通过类class对抽象数据类型进行支持。;2.2.4 语句与控制结构;续表达式 表达式的运算顺序和结合性: (1)表达式的计值过程遵循高级的算符先运算规则,算符的优先顺序: 乘幂 一元负 … 等值 (2)同级算符,根据算符结合性不同来计算表达式的值。 (2.1)左结合:先左后右 (2.2)右结合:先右后左 例:X*Y-Z (1) X-Y+Z (2.1) X**Y**Z (2.2);一、语句: 功能上分为说明性语句和执行语句两大类。说明语句定义各种不同 数据类型的变量或运算(过程)。执行语句描述程序动作。 赋值句:A:=B ——把B的值送入A所代表的单元 概念:A的左值:名字A代表的存储单元地址 B的右值: 名字B的值 区分表示一个名字的两种特性。 控制语句: 控制程序的执行顺序。 无条件转移: 条件语句: 循环语句: 过程调用语句: 返回语句: 说明句:定义名字的性质:包括变量和过程说明等。 ;续语句按其语法的结构特点分,可分为: 简单句和复合句 简单句:不包含其他语句成分的基本句。如赋值、GOTO语句。 复合句:句中有句。如条件、循环语句。;概念:字母表和符号串 字母表:符号的非空有限集 例:?={a,b,c} 符号:字母表中的元素 例: a,b,c 符号串:符号的有穷序列 例:a, aa, ac, abc,.. 空字/空

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档