编译原理:第二章高级语言及其语法描述

编译原理:第二章高级语言及其语法描述

ID:46515407

大小:913.50 KB

页数:74页

时间:2019-11-24

编译原理:第二章高级语言及其语法描述_第1页
编译原理:第二章高级语言及其语法描述_第2页
编译原理:第二章高级语言及其语法描述_第3页
编译原理:第二章高级语言及其语法描述_第4页
编译原理:第二章高级语言及其语法描述_第5页
资源描述:

《编译原理:第二章高级语言及其语法描述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理第二章高级语言及其语法描述第二章高级语言及其语法描述常用的高级语言FORTRAN数值计算COBOL事务处理PASCAL结构程序设计ADA大型程序、嵌入式实时系统PROLOG逻辑程序设计ALGOL算法语言C/C++系统程序设计JavaInternet程序设计与机器语言或汇编语言比较,高级语言的优点:较接近于数学语言和工程语言,比较直观、自然和易于理解;便于验证其正确性,易于改错;编写效率高;易于移植.2.1程序语言的定义程序语言是一个记号系统程序语言由两方面定义:语法语义语用一.语法程序本质上是一定字符集上的字符串。语法:一组

2、规则,用它可以形成和产生一个合式(well-formed)的程序(形式上正确的程序)。语法词法规则:单词符号的形成规则。单词符号是语言中具有独立意义的最基本结构。一般包括:常数、标识符、基本字、算符、界符等。描述工具:有限自动机语法规则:语法单位的形成规则。规定了如何从单词符号形成语法单位;语法单位通常包括:表达式、语句、分程序、过程、函数、程序等;描述工具:上下文无关文法E→iE→E+EE→E*EE→(E)语法规则和词法规则定义了程序的的形式结构,是判断输入字符串是否构成一个形式上正确的程序的依据。定义语法单位的意义属于语义问题。

3、二.语义对于语言来说,不仅要给出它的词法、语法规则,而且要定义它的单词符号和语法符号的意义。离开了语义的语言只是一堆符号的集合。各种语言中有形式上完全相同的语法单位,含义却不相同。语义:对某种语言,定义一组规则,用它可以定义一个程序的意义,称为语义规则。描述方法:自然语言描述:隐藏错误、二义性和不完整性形式描述:操作语义(PL/1)、指称语义(ADA)、代数语义(PASCAL)。目前大多数编译程序使用基于属性文法的语法制导翻译方法来分析语义。三.程序语言的基本功能和层次结构程序语言的基本功能:描述数据和对数据的运算。所谓程序,本质上

4、说是描述一定数据的处理过程。程序的层次结构程序

5、子程序或分程序、过程、函数

6、语句

7、表达式

8、数据引用算符函数调用程序语言每个组成成分的逻辑和实现意义抽象的逻辑的意义数学意义计算机实现的意义具体实现2.2高级语言的一般特性(自学)高级语言的分类强制式语言(ImperativeLanguge)也称过程式语言:命令驱动,面向语句FORTRAN、C、Pascal,Ada应用式语言(ApplicativeLanguage):注重程序所表示的功能,而不是一个语句接一个语句地执行LISP、ML基于规则的语言(Rule-basedLanguage):

9、检查一定的条件,当它满足值,则执行适当的动作Prolog面向对象语言(Object-OrientedLanguage):封装性、继承性和多态性Smalltalk,C++,Java2.2.1高级语言的分类FORTRAN一个程序由一个主程序段和若干辅程序段组成。辅程序段可以是子程序、函数段或数据块。每个程序段有一系列的说明语句和执行语句组成。各段可以独立编译。模块结构,没有嵌套和递归各程序段中的名字相互独立,同一个标识符在不同的程序段中代表不同的名字。2.2.2程序结构主程序PROGRAM……end辅程序1SUBROUTINE……end

10、辅程序2FUNCTION……endPASCALPASCAL程序本身可以看成是一个操作系统所调用的过程,过程可以嵌套和递归。一个PASCAL过程:过程头;说明段(由一系列的说明语句组成);begin执行体(由一系列的执行语句组成);end作用域:一个名字能被使用的区域范围称作这个名字的作用域。允许同一个标识符在不同的过程中代表不同的名字。名字作用域规则--"最近嵌套原则"一个在子程序B1中说明的名字X只在B1中有效(局部于B1);如果B2是B1的一个内层子程序且B2中对标识符X没有新的说明,则原来的名字X在B2中仍然有效。如果B2对X

11、重新作了说明,那么,B2对X的任何引用都是指重新说明过的这个X。programmainvarA,B:real;…procedureP1varB:boolean;…begin…endprocedureP2varA:integer;…begin…endbegin…endA(real)B(real)B(bool)A(integer)PASCAL提供了丰富的数据类型和运算方式,它允许用户动态地申请和退还存贮空间。ADA程序包(package):把数据和操作代码封装在一起,支持数据抽象。一个程序包分为两部分:可见的规范说明部分,它定义了程序包

12、外面可以访问的对象。程序包体,它实际定义程序包的实现细节。packageSTACKSistypeELEMisprivate;typeSTACKislimitedprivate;procedurepush(S:inoutSTACK;E:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。