哈工大编译原理第2章.ppt

哈工大编译原理第2章.ppt

ID:48709256

大小:667.50 KB

页数:57页

时间:2020-01-26

哈工大编译原理第2章.ppt_第1页
哈工大编译原理第2章.ppt_第2页
哈工大编译原理第2章.ppt_第3页
哈工大编译原理第2章.ppt_第4页
哈工大编译原理第2章.ppt_第5页
资源描述:

《哈工大编译原理第2章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二章高级语言 及其语法描述内容简介:本章概述程序设计语言的结构2.1程序语言的定义任何语言实现的基础是语言定义。语言的定义决定了该语言具有什么样的语言功能、什么样的数据结构、什么样的程序结构、以及具体的使用形式等细节问题。和主要的共同特征,并介绍程序设计语言主要语句的文法描述与形式定义。计算机学院辛明影2对于编译程序设计者来说:语言定义就是具体实现的理论依据。对于语言用户来说:语言定义就是一本用户手册。2.1.1语法语言的语法是指这样一组规则,用它可产生一个程序。规则:词法规则语法规则计算机学院辛明影3词法规则是指单词符号的形成规则字母表就是一个

2、有穷字符集。C语言的字母表为:∑={a---z、A—Z、0—9、(、)、[、]、、.、!、~、+、-、*、/、&、%、<、>、=、^、

3、、?、,、;}C语言的标识符的构成规则:字母、下划线打头的字母、数字和下划线构成的符号串。如:a1、ave、_day一.词法规则计算机学院辛明影4上述的定义是用文字来描述的,当设计编译程序时,就要把它用形式的方式描述出来,就要用到形式语言。各类型的常数、标识符、基本字、算符和界符等正规式和有穷自动机是描述词法结构和进行词法分析的有效工具在现今多数程序设计语言中,单词符号一般包括:计算机学院辛明影5C语言的标识符的

4、文法和自动机描述:例:C语言标识符的文法描述L(G)={w/w为字母或‘-’打头的字母数字串}解:P:I→aBI→-BI→aB→aBB→dBB→aB→d识别L(G)的自动机IBTa-a,d其它计算机学院辛明影6SACDFEB7dddddddee+–T*例:C语言实常数的文法描述文法:S→dAA→dAA→eDA→.BB→dCC→dCC→eDD→-ED→+ED→dFE→dFF→dFF→d其它其它其它10003.1410e+33.14e-512e5计算机学院辛明影7二.语法规则语法规则规定了如何从单词符号形成更大的结构(即语法单位),换言之,语法规则是

5、语法单位的形成规则一般的程序设计语言的语法单位有:表达式、语句、分程序、函数、过程和程序等下推自动机理论和上下文无关文法是我们讨论语法分析的理论基础计算机学院辛明影8表达式:E→E+TE→E-TE→TT→T*FT→T/F T→FF→(E)F→id主要语句的形式描述:计算机学院辛明影9布尔表达式:B→BorBB→BandBB→notBB→(E)B→idrelopidB→trueB→false计算机学院辛明影10赋值、分支、循环语句:S→id=ES→ifBthenSS→ifBthenSelseSS→whileBdoSS→{L}L→L;SL→S计算机学院

6、辛明影11调用语句:S→callid(Elist)Elist→Elist,EElist→E

7、ε计算机学院辛明影12类型说明和过程说明语句:P→DD→D;DD→id:TD→id(Elist)D;ST→intT→float计算机学院辛明影13数组说明语句:L→id[Elist]Elist→Elist,EElist→E计算机学院辛明影142.1.2语义例:a=b+c*d例do999I=1,10对于一个语言来说,不仅要给出它的词法、语法规则,而且要定义它的单词符号和语法单位的意义,这就是语义问题对于编译程序来说,只有了解程序的语义,才知道应把它翻译成什么样

8、的目标指令代码计算机学院辛明影152.2构造基础2.2.1程序结构简介一个高级语言程序通常由若干子程序段(过程、函数等)组成,许多语言还引入了类、程序包等更高级的结构计算机学院辛明影16FORTRAN一个FORTRAN程序由一个主程序和若干个辅助程序段组成PROGRAMMAIN.ENDSUBROUTINESUB1..ENDFUNCTIONFUN1.END它的定义是并列的计算机学院辛明影17FORTRAN的构成特点:同一名字在不同的程序段中一般都代表不同的对象,也就是说代表不同的存贮单元PROGRAMMAIN.integerxENDSUBROUTIN

9、ESUB1Integerx.ENDIntegerxXX=9999100Integerx9999X=100XPROGRAMMAIN.ENDSUBROUTINESUB1.END一个名字对应多个对象计算机学院辛明影18但是不同程序段里的同名公用块却代表同一个存贮区域PROGRAMMAIN.Commona,bENDSUBROUTINESUB1commonx,y.ENDPROGRAMMAIN.ENDSUBROUTINESUB1.ENDCommona,babA=100B=5010050Commonx,yxyY=x+100200共享存贮单元多个名字对应一个对象计

10、算机学院辛明影19二。PascalPascal允许子程序嵌套定义Programmain说明部分Begin可执行部分endP

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

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

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