编译原理
jerryzhou;
Talk is cheap,show me the code
展开
-
编译原理(一、引论)
前言:最近学习编译原理,遂参照教材作以记录。各位读者若对本文所述有质疑,欢迎批评指正。 参考:《程序设计语言——编译原理》第3版 陈火旺 刘春林 谭庆平 赵克佳 刘越 编著 国防工业出版社程序设计语言——编译原理(一、引论)1.1 什么叫编译程序?现代计算机系统一般都含有不止一个的高级语言编译程序,对于有些高级语言甚至配置了几个不同性能的编译程序,供用户按不同需要...原创 2018-03-06 18:58:21 · 2721 阅读 · 0 评论 -
编译原理(二、高级语言及其语法描述)
前言:最近学习编译原理,遂参照教材作以记录。各位读者若对本文所述有质疑,欢迎批评指正。 参考:《程序设计语言——编译原理》第3版 陈火旺 刘春林 谭庆平 赵克佳 刘越 编著 国防工业出版社程序设计语言——编译原理(二、高级语言及其语法描述)高级程序语言是用来描述算法和计算机实现这双重目的的。目前,世界上已有的高级语言至少上千种,在较大范围内得到使用的语言也有几十种甚至上百...原创 2018-03-09 20:47:50 · 3496 阅读 · 0 评论 -
编译原理(语法分析之消除左递归、消除回溯)
引言:语法分析–自上而下分析部分内容顾名思义,自上而下就是从文法的开始符号出发,向下推导,推出句子。 其中,自上而下分析方法不允许文法含有任何左递归。 为构造不带回溯的自上而下分析算法,首先要消除文法的坐递归性,并找出克服回溯的充分必要条件。下面讨论消除左递归和克服回溯。左递归的消除直接消除产生式中的左递归是比较容易的。假定关于非终结符P的规则为 P→Pα | β 其中,...原创 2018-04-11 20:34:15 · 28100 阅读 · 11 评论 -
编译原理(三、词法分析)
编译程序是在单词的级别上来分析和翻译源程序的。词法分析的任务是:从左至右逐个字符串地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。词法分析器的功能是输入源程序,输出单词符号。单词符号是一个程序语言的基本语法符号。程序语言的单词符号一般可分为下列五种。 (1)关键字是由程序语言定义的具有固定意义的标识符。有时称这些标识符为保留字或基本字。 ...原创 2018-04-13 11:35:07 · 4426 阅读 · 4 评论 -
编译原理(四、语法分析)
语法分析是编译过程的核心部分。它的任务是在词法分析识别出单词符号串的基础上,分析并判定程序的语法结构是否符合语法规则。4.1自上而下分析语言的语法结构是用上下文无关文法描述的。因此,语法分析器的工作本质上就是按文法的产生式,识别输入符号串是否为一个句子。 按照语法分析树的建立方法,可以把语法分析办法分为两类,一类是自上而下分析法,另一类是自下而上分析法。 自上而下就是从文法...原创 2018-04-13 11:43:06 · 1179 阅读 · 0 评论 -
编译原理(自下而上分析——算符优先分析过程)
我们讨论的自下而上分析法是一种“移进-规约”法。大意是:用一个寄存符号的先进后出的栈,把输入符号一个一个地移进到栈里,当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分替换成(规约成)该产生式的左部符号。例:有文法G S→a | ^ | (T) T→T,S | S 给出输入串(a,(a,a))的算符优先分析过程。1、扩展文法S’ →#S#2、求FIRSTV...原创 2018-05-27 18:43:13 · 12383 阅读 · 5 评论