美文网首页
编译原理

编译原理

作者: yingtaomj | 来源:发表于2017-06-04 15:24 被阅读79次

编译方式:将高级语言转换成机器语言,再执行
解释方式:直接执行,不产生中间语言(机器语言)

0型文法:对左部和右部没有任何限制
1型文法(上下文有关文法):一个单词是否可以出现在特定位置上要依赖于上下文
2型文法(上下文无关文法):左部是单个非终结符,右部是终结符和非终结符组成的符号串
3型文法(右线性文法/正规文法):对2型文法进一步的限制,右部只能是单一终结符或单一终结符跟着一个单一非终结符

自上而下分析方法:从文法的识别符出发,看能否推导出待检查的符号串,若能,则说明该符号串是一个句子。
自下而上分析方法:从待检查的符号串出发,看最终能否归约到文法的识别符号。

LL(k)是一种自上而下的语法分析方法,从文法出发,生成句子的最左推导。从左向右,每次向前查看k个字符。
自下而上分析方法是一种“移进-归约”方法LR(k)。按从左至右扫描输入串,并自下而上的归约。至多查看k个输入,判断是移进还是归约。若是归约,则能唯一地选中一个产生式去归约已经识别出的句柄。
比较:

  1. 复杂度
    LL更简洁
  2. 普适性
    LR文法能够支持更多上下文无关文法(LL文法需要消除左递归)
  3. 错误恢复
    LL语法分析器有更好的上下文信息,更容易恢复

相关文章

  • 编译原理

    编译原理 标签(空格分隔): 编译原理 编译和解释 编译 整个程序全部翻译结束之后,程序才能开始运行;编译和运行是...

  • 《你不知道的JavaScript(上)-作用域和闭包》学习笔记

    1.编译原理: (1)编译器、作用域、引擎 编译器会忽略重复声明 编译原理(p7): 例如:var a=2,编译器...

  • 《深入解析Hello,World》 :第三章 java源代码是怎

    javac实现原理 编译器原理

  • 编译原理总结提炼

    一、前言 编译原理是大学一门计算机基础课程,学习了编译原理并不意味着可以写出一个编译器,但学习编译原理可以给我们程...

  • JavaScript的工作原理:解析、抽象语法树(AST)+ 提

    摘要: JS的"编译原理"。 原文:JavaScript的工作原理:解析、抽象语法树(AST)+ 提升编译速度5个...

  • 编译原理

    编译执行和解释执行的区别把计算机高级语言编写的程序(源程序)翻译成该计算机的汇编语言或机器语言书写的程序(目标程序...

  • 编译原理

    编译原理领域,龙书就是THE BOOK

  • 编译原理

    ·1#第一章 编译程序概论 学习目标 编译的各个阶段 编译程序的概念 解释器,编译程序的结构和组合 编译程序的概念...

  • 编译原理

    编译方式:将高级语言转换成机器语言,再执行解释方式:直接执行,不产生中间语言(机器语言) 0型文法:对左部和右部没...

  • 编译原理

    什么是编译器 计算设备包括个人计算机、大型机、嵌入式系统、智能设备等 核心问题都是软件的构造目前绝大多数软件都是由...

网友评论

      本文标题:编译原理

      本文链接:https://www.haomeiwen.com/subject/vkgvfxtx.html