编译原理

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

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

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

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

  1. 复杂度
    LL更简洁
  2. 普适性
    LR文法能够支持更多上下文无关文法(LL文法需要消除左递归)
  3. 错误恢复
    LL语法分析器有更好的上下文信息,更容易恢复
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、绪论 编译程序 功能:高级pro转低级目标pro 形式编译执行转obj在执行,效率高跨平台性差解释执行逐行解释...
    rh_Jameson阅读 3,681评论 0 10
  • P11.翻译程序翻译程序指的是这样一个程序,它能够把某一种语言程序(源语言程序)改造成另一种语言程序(目标语言程序...
    wangchuang2017阅读 1,426评论 0 0
  • 递归 - 词法分析与语法分析的分界 一般来说,决定词法分析和语法分析的界限是是否需要递归。词法分析是将输入的符号流...
    Jtag特工阅读 3,208评论 1 11
  • ·1#第一章 编译程序概论 学习目标 编译的各个阶段 编译程序的概念 解释器,编译程序的结构和组合 编译程序的概念...
    曾雁阅读 949评论 0 4
  • 文|闷宋 将身边所有“不需要、不适合、不舒服”的东西替换为“需要、适合、舒服”的东西,就能让环境变得清爽,也会由此...
    闷宋FIT阅读 1,036评论 0 7