网站大量收购独家精品文档,联系QQ:2885784924

浅谈《编译原理》学习中几个问题.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅谈《编译原理》学习中几个问题

浅谈《编译原理》学习中几个问题摘 要:分析《编译原理》中三个重要的知识点,一是编译过程;二是编译器的设计;三是编译器中所用到的数据结构。并通过一个例子说明了这个观点 关键词:编译原理;编译过程;编译器;数据结构 中图分类号:TP314文献标识码:A Talking Simply about Some Problems in Study of Fundamentals of Compiling NING Hua-hua,WANG Hui (Collage of Computer and Information Technology, Henan Normal University, Henan Xinxiang 453007) Key words: fundamentals of compiling;compilation process;compiler;data structure 《编译原理》是计算机类较为重要的一门课程,它涉及到离散数学,数据结构等知识,根据自己的学习体会,在这里就一些重要的问题做一些探讨 1 编译过程 编译过程分为以下六步: (1)词法分析。从左到右逐个字符地对源程序 ,产生一个个单词序列,用以语法分析 例如下面的代码行 c [i]=2+4 这个代码包括了8个记号: C 标识符;[界符;i标识符;]界符;=赋值号;2常数;+运算符;4常数 词法分析结束后将产生形如(单词总别,单词自身的值)的二元式 (2)语法分析。识别由词法分析给出的单词符号序列是否是给定文法的正确句子。具体分为自顶向下分析和自底向上分析两大类。前者又分为确定分析和不确定分析,后者分为算符优先分析和LR分析。确定的自顶向下分析必须要求文法是LL(1)文法,所以当所给的文法不是LL(1)文法,需通过消除左递归和左公共因子来变换成LL(1)文法,进而进行确定的自顶向下分析。具体的分析方法是递归子程序法和预测分析方法。语法分析的结果是分析树(parse tree)或语法树(syntax tree) (3)语义分析。检查每个语法结构的静态语义,即验证语法结构的合法的程序是否真正有意义。如果静态语义正确,则会执行真正的翻译,即生成程序的一种中间表示形式。有关语法树的语义分析结果可以用以下树来表示: (4)源代码优化。包括很多代码改进和优化,例如上例中2+4由编译器计算机先得到6(常量合并优化)在下面注释树中表示。当然更多的是利用三元式表示。上述三元式代码应为:t=2+4; c[i]=t (5)代码生成。生成的汇编代码如下: MOVR0,i // value of i -R0 MULR0,2 // double value in R0 MOVR1,c// address of c-R1 ADDR1,R0//add R0 to R1 MOV*R1,6//constant 6-address in R1 (6)目标代码优化 MOVR0,i SHLR0 MOVa[R0],6 2 编译器的设计 根据上面所述的编译过程编写相应的程序,即形成编译器 3 编译器中的主要数据结构 (1)语法树。语法分析通常会生成一棵语法树,语义分析也会产生一棵带注释的语法树 (2)栈。栈是一种先进后出的线性表的数据结构。在进行语法分析的时候常常要根据栈这个数据结构来对所输入的符号串进行分析,栈中可存放符号,当所输入的当前符号与栈顶符号匹配时则进行一系列操作等 (3)临时文件。临时文件的使用使得编译时的程序被保存在存储器中 4 结束语 书本上理论方面,各个步骤讲得非常详细,但是却没有一道例子能够按照编译的过程讲述,本文结合一道简单的例子c[i]=2+4给出了编译的六大步骤,并简要概括了程序在编译的过程中用到的数据结构 参考文献: [1]张素琴,吕映芝,蒋维杜,戴桂兰.编译原理[M].北京:清华大学出版社. [2]LOUDEN,K.C.冯博琴等译.编译原理及实践[M].北京:机械工业出版社. 1

文档评论(0)

linsspace + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档