欢迎来到天天文库
浏览记录
ID:51592657
大小:171.50 KB
页数:53页
时间:2020-03-25
《编译原理课件chap2 (2).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第二章高级语言及其语法描述本章概述高级语言的结构和主要的共同特征,并介绍程序语言的语法描述方法。要学习和构造编译程序,理解和定义高级语言是必不可少的。2.1程序语言的定义任何语言实现的基础是语言的定义。在定义方面,编译程序研制者与一般用户有所不同,他们对那些构造允许出现更感兴趣。即使一时不能看出某种构造的实际应用,或者判断实现该结构会导致严重的困难,但仍必须严格根据语言的定义实现它。程序语言主要由语法和语义两方面定义。第二章高级语言及其语法描述2.1.1语法:任何语言程序都可以看成是一定字符集(称为字母表)上的字符串(有限序列)。但是什么样的字符串才算是一个合适的
2、程序呢?所谓一个语言的语法是指这样的一组规则,用它可以形成和产生一个合适的程序。这些规则一部分称为词法规则,另一部分能称为语法规则(或产生规则)。第二章高级语言及其语法描述注意这里提到三个概念:a.一个程序只是用一个有限字符集作为字母表;b.词法规则是指单词符号的形成规则。单词符号一般包括:各类型的常数、标识符、基本字、算符和界符等。C.语言的语法规则规定了如何从单词符号形成更大的结构(即语法单位),换言之,语法规则是语法单位的形成规则。一般程序语言的语法单位有:表达式、语句、分程序、函数、过程和程序等。第二章高级语言及其语法描述2.1.2语义:对于一个语言来说,
3、不仅要给出它的词法、语法规则,而且要定义它的单词符号和语法单位的意义。这就是语义问题。语义是指这样的一组规则,使用它可以定义一个程序的意义。我们采用的方法为:基于属性文法的语法制导翻译方法。第二章高级语言及其语法描述一个程序语言的基本功能是描述数据和对数据的运算。所谓程序,从本质上来说是描述一定数据的处理过程。在现今的程序语言中,一个程序大体可以视为下面所示的层次结构程序子程序或分程序语句表达式数据引用算符函数调用第二章高级语言及其语法描述自上而下看上述层次结构:顶端是程序本身,他是一个完整的执行单位。一个程序通常是由若干个子程序或分程序组成的,他们常常含有自己的
4、数据(局部名)。子程序或分程序是由于语句组成的。而组成语句的成分是个种类型的表达式。表达式是描述数据运算的基本结构,它通常含有数据引用、算符和函数调用。第二章高级语言及其语法描述自下而上看上述层次结构:我们希望通过对下层成分的了解掌握上层成分,从而掌握整个程序。在学习编译原理的过程中特别注意:程序语言的每个组成成分都有(抽象的)逻辑和计算机实现两方面的意义。当从数学上考虑每一个组成成分时,我们注重它的逻辑意义,当从计算机这个角度来看时,我们注重他在机内的表示和实现的可能性与效率。第二章高级语言及其语法描述2.2高级语言的一般特性2.2.1高级语言的分类;a.强制式
5、语言b.应用式语言c.基于规则的语言d.面向对象语言2.2.2几种程序的典型结构;第二章高级语言及其语法描述FORTRANMAIN…ENDSUBROUTINESUB1…END…SUBROUTINESUBn…END一.FORTRAN一个FORTRAN程序有一个主程序段和若干个(可以是0个)辅助程序段组成。(如右侧)第二章高级语言及其语法描述辅助程序段可以是子程序、函数段或数据。每程序段由一系列说明语句和执行语句组成。各程序段可以独立编辑。这对模块设计甚为方便。一个FORTRAN程序个程序段所定义的各种名字通常是彼此独立的。同一个标识符在不同的程序段中一般都可以代表不
6、同的名字,即代表不同的存储单元,个程序段对它们的引用或赋值是彼此无关的。但是,不同程序段里的同名公用块(CommonBlock)却代表同一个存储区域。因此,出现在COMMON语句中的名字所代表的单元在其他程序块中也可以引用。所以说,公用区具有全局性。不出现在COMMON中的名字所代表的单元具有局部性。第二章高级语言及其语法描述二.PascalPascal是一个允许子程序嵌套定义的语言。一个Pascal程序可以看作是操作系统调用的一个子程序,而子程序中又可以定义别的子程序。programmain…procedureP1;…procedureP11;…begin…en
7、d;begin…end;procedureP2;…begin…end;begin…end.第二章高级语言及其语法描述Pascal这种嵌套结构中允许同一标识符在不同的子程序段中表示不同的名字。关于名字的作用域的规定是:a.一个在子程序B1中说明的名字X只在B1中有效(局部于B1)。b.如果B2是B1的一个内层子程序,且B2中对标识符X没有新的说明,则原来的名字X在B2中仍然有效。如果B2对X重新作了说明,那么,B2中对X的任何引用都是指重新说明过的这个X。第二章高级语言及其语法描述2.2.3数据类型与操作;一个数据类型通常包括以下三种要素:a.用于区别这种类型的数据
8、对象的属性
此文档下载收益归作者所有