3.1程序设计语言的构造基础.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文档。上传文档
查看更多
3.1程序设计语言的构造基础.ppt

第三章 程序设计语言的构造基础与定义 3.1 程序设计语言的构造基础 程序设计语言的基本功能是定义运算对象和对对象的运算。 程序设计语言中一般有两类对象: 数据型对象和程序型对象。 对对象的描述包括: 对象的命名 对象的属性 对象的组合 对对象的控制与管理 对运算的描述包括: 运算的定义 复合规则 运算顺序的控制。 3.1.1 对象的名字、属性与会聚 对象的名字:使用标识符来表示对象。 对象的属性: 名字代表一个或一片存储单元,有时代表单元的内容(右值),有时代表单元的地址(左值)。 名字具有类型属性,表明它的数值类型。 无类型语言:语言的对象的类型在运行时才能决定,并且任何运算可以运用于任何对象,这样的语言称为无类型语言,否则为有类型语言。 强类型语言(显类型语言):对象的类型可在程序正文中显式决定。 弱类型语言(隐类型语言):需要到运行时候才能决定对象的类型。 .名字可以代表对象的结构。这种属性称为名字的种属。 .名字有作用域范围。作用域定义名字的使用范围。 汇聚: 对象的名字和它的某一具体性质的结合称为汇聚,汇聚的时间称为汇聚时刻。 两种汇聚时刻:执行时的汇聚和编译时的汇聚。 3.1.2 数据对象及存储表示 .初等类型数据:整型、实型、逻辑型、字符型等。 .数组: var A:array[l1..... u1 ,l2...... u2,.....,ln......un] of integer 各维的长度di=ui-li+1 (1≤i≤n) 设a为数组A的首地址,则数组元素A[i1,i2,......in]的地址D为: D=a+(i1-l1)d2d3...dn+( i2-l2)d3d4...dn+...+( in-1-ln-1)dn+ (in-ln) 以上数组的信息若在编译时能确定则为静态数组,否则为动态数组,保存这些信息的表格称为内情向量表。 记录(或结构):允许不同类型数据复合的组织形式。 .集合:由可区别的离散元素构成。注意与数学上的集合概念的区别。既语言上集合中的元素有序的概念。它的存储方式可用各种链表结构、数组结构等。 指针与动态数据结构:指针变量的内容是指向其它数据单元的地址。指针变量的主要作用是在运行时建立动态的数据区和建立栈、队列、链表等动态数据结构。 . 文件:表示输入输出设备上的数据组织。一般有顺序文件、索引顺序文件和随机存取文件。文件存取单位是逻辑记录。 3.1.3 运行时的存储管理 运行时需存储管理的主要数据有:运行程序、系统运行程序、用户定义的各种数据、用于过程调用的连接数据、输入输出缓冲区和一些系统数据。 影响存储管理策略的因素有: a.语言中可使用的数据结构形式。 b.语言中定义的程序结构。 一般编译技术采用3种存储分配策略:静态分配、栈式动态分配和堆式动态分配。 3.1.4 运算及运算的复合 两类运算:语言自定义的运算和用户定义的运算。 运算的3种结构:前缀式、后缀式及中缀式。 运算式中对象的兼容性问题:类型检查与转换。 3.1.5 运算的顺序控制 表达式内部运算顺序的控制: 运算符间的优先级 同级运算符间的结合规则。 语言顺序的控制: 定义各种控制语句。(语句间的隐含控制关系) 程序段间的执行顺序控制: 过程调用与过程返回。主要解决数据传递问题。 3.1.6 参数传递 参数传递方法: 传地址:子程序为每一个形参开辟一个单元,用于存放相应实参的地址,当实参为表达式或常数时,则存放表示它们值的临时单元的地址。 传值:子程序为每一个形参开辟一个单元,用于存放相应实参的值。 传结果:子程序为每一个形参开辟两个单元,一个用于存放相应实参的地址,另一个存放返回的结果。 传值结果:它是传结果与传值的结合。 传名: 在主调程序中设置计算实参地址与右值的形实替换子程序。在子程序中为相应实参开辟一个形式单元,用于存放该实参的替换子程序的入口地址。在子程序执行过程中,每当要向某形参赋值或取值时,就调用相应于该形参的替换子程序,以获得相应实参地址或值。 3.2 语言的语法、语义和语用 语法:确定哪些字符串组成该语言的合式程序。 语义:通过语言的基本概念描述程序的含义 静态语义:无须执行就可推导出的性质。 动态语义:运行时才能识别的性质。 语用:使语言的基本概念与语言的外界发生联系。 语言定义分析的目标: 定义语法、语义规则,确定分析后作转换的形式。规定动态语义与语用的区别,确定面向语言的抽象机器的对象与操作,规定由抽象机对象操作到硬件系统的映射。 3.2.1 语法性质 程序设计语言的语法规则分级: 基本符号的拼写规则(标识符、关键字、等)。 常数的表示与解释规则 具体语

文档评论(0)

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

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

1亿VIP精品文档

相关文档