编译原理实用教程(tsu版电子教案)doc

编译原理实用教程(tsu版电子教案)doc

ID:30218682

大小:412.04 KB

页数:36页

时间:2018-12-27

编译原理实用教程(tsu版电子教案)doc_第1页
编译原理实用教程(tsu版电子教案)doc_第2页
编译原理实用教程(tsu版电子教案)doc_第3页
编译原理实用教程(tsu版电子教案)doc_第4页
编译原理实用教程(tsu版电子教案)doc_第5页
资源描述:

《编译原理实用教程(tsu版电子教案)doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第36页共36页第1章编译系统概述(Tsu版电子教案)第1章编译系统概述翻译系统(编译系统)、操作系统、数据库管理系统是计算机的三大系统软件。1.1程序设计语言的发展机器语言à汇编语言à程序设计语言(高级语言)例计算表达式3*16+2的值,实现该计算的机器语言程序、汇编语言程序和高级语言(C语言)程序如下所示,该计算机的系统结构和汇编语言的使用方法详见本书第7章。2203//16进制8210260261011000f000LoadR0,3MulR0,10//10表示16LoadR1,2AddR0,R1WriteR0Haltvoidmain(void)/

2、/C语言{cout<<3*16+2;}机器语言程序汇编语言程序高级语言程序1.2基本术语解释㈠源语言和源程序㈡文本文件㈢目标语言和目标程序㈣二进制文件㈤翻译程序将源程序译成逻辑上等价的目标程序的程序,有二种翻译方式:编译和解释。①解释方式以源程序作为输入,输入一句,解释执行一句,不产生完整的目标程序,相应的翻译程序称为解释程序,工作方式如下图所示:解释、执行源解释程序结程interpreter果序输入数据②编译方式将源程序全部译为目标程序,该目标程序可在操作系统环境下直接执行,相应的翻译程序称为编译程序,工作方式如下图所示:第36页共36页第1章编译系

3、统概述(Tsu版电子教案)源程序ASCII码二进制(整体未定位) 二进制(整体定位)结果装入运行Run连接程序Link编译程序Compile编辑程序Edit输入数据1.3编译过程概述编译程序工作过程相当复杂,从数据加工的角度来看,可将其分成4个逻辑阶段,它们是:l词法分析l语法分析l语义分析(中间代码产生)l目标代码生成图示如下:源程序词法语法中间代码目标代码目标程序分析分析产生生成编译程序的结构基本上是按照这个流程来设计的。下面以算术表达式3+abc*128为例,来说明编译程序工作过程。㈠词法分析执行词法分析任务的程序称为词法分析器。任务:字符串形式

4、的单词à编码形式的单词内部码(二元式)依据:语言的构词规则①二元式(单词种别,单词值)l单词种别:用整数码表示(为直观起见用字符表示),语法分析时用。l单词值:在本书中用字符串表示,语义分析时用。当一个单词种别中可能有多个单词时,单词的值才有意义。为了便于输入处理,无意义的单词值用"NUL"表示。第36页共36页第1章编译系统概述(Tsu版电子教案)②二元式编码单词单词种别(字符形式)单词值(字符串形式)++NUL--NUL**NUL//NUL((NUL))NUL………标识符i字符串形符号名整常数x字符串形式数字实常数y字符串形式数字………经词分析,算

5、术表达式3+abc*128的单词内部码(二元式)为:('x',"3")('+',"NUL")('i',"abc")('*',"NUL")('x',"128")㈡语法分析执行语法分析任务的程序称为语法分析器。任务:检查源程序的语法结构是否正确依据:语言的语法规则在语法分析时,算术表达式3+abc*128的语法结构应表示为x+i*x,语法分析器最终应识别出这是一个算术表达式,识别过程相当于建立一棵语法树。<算术表达式><算术表达式>+<项><项><项>*<因子><因子><因子>x(整常数)x(整常数)i(标识符)㈢语义分析执行语义分析任务的程序称为语义分析

6、器或中间代码产生器。任务:建立符号表和常数表,记录源程序中标识符属性和常数值,根据语言的语义规定生成中间代码。依据:语言的语义内涵语义分析(中间代码产生)主要工作为:语义正确性检查和语义翻译。①语义正确性检查例:第36页共36页第1章编译系统概述(Tsu版电子教案)beginreala;integera;…………end语法正确,语义错误,除非语言允许变量性质可动态修改。②语义翻译1)说明语句的翻译将标识符及其属性填入符号表。2)执行语句的翻译根据不同语句的语义,生成逻辑上等价的中间代码。l中间代码结构简单、意义明确的记号系统,非常接近机器指令,但又独立

7、于具体机器。常用的中间代码有三元式和四元式。表达式3+abc*128可译成如下四元式:(*,&abc,&128,&T1)(+,&3,&T1,&T2)其中,&abc表示标识符abc在符号表中入口;T1和T2是在翻译过程中由编译程序引入的临时变量;而&128表示常数128在常数表中的地址。l符号表符号表用于记录源程序中出现的标识符,一个标识符往往具有一系列的语义值,它包括标识符的名称、标识符的种属、标识符的类型、标识符值的存放地址等等。每个标识符在符号表中有一项记录,用于记录标识符的各种语义值,而在四元式中填写的是标识符在符号表中的记录地址,通常称为符号表

8、入口。符号表的结构示意如下:内存地址符号名种属类型…………未分配abc简单变量整型…………未分

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

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

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