保存成功
保存失败,请重试
提交成功

词法分析与语法分析的原理及部分实现

作者/分享人:浅浅
目前就读于闽南师范大学,喜欢唱、跳、rap和篮球。

词法分析器是用于识别单词所构筑的一个自动识别程序。其本质是词法分析,由一正规文法或是正规表达式推导出不确定的有穷自动机 NFA,再确定化得到确定的有穷自动机 DFA,最后最小化得到一个最简 DFA,输入符号串,识别单词。

语法分析器是在词法分析器的基础上实现识别一符号串是否符合相关文法,其本质是语法分析,而语法分析有两种分析方法:自顶向下与自底向上。自顶向下的代表方法是 LL(1) 分析;自底向上的代表方法是算符优先分析、LR(0) 分析、SLR(1) 分析。

本文的读者包括以下几类:

  1. 对编译原理有兴趣,想要了解的;
  2. 想要编写自制编译器的;

本文要求读者具有以下几点基础:

  1. 了解基本数据结构,例如:栈【因为在语法分析的过程中,使用了分析栈】
  2. 对文法有基本的了解与认识。

通过本文能够收获以下内容:

  1. 词法分析的原理描述与实例化完全题解以及词法分析器的简易实现;
  2. LL(1) 分析法中对 First 集、Follow 集、Select 集的直接解析,带实例化题解;
  3. 算符优先分析法,这是一种只考虑终结符,不考虑非终结符的分析方法,带实例化题解;
  4. LR(0) 分析法,讲述活前缀与分析表的创建等一系列的先导知识,再带实例化题解;
  5. SLR(1) 分析法,相较于 LR(0) 分析,SLR(1) 引入了 Follow 集,带实例化题解。

备注:本文可能会带有不定时更新。

更新方向:LR(1) 分析;LALR(1) 分析;基于算符优先分析的语法分析器快速实现;语义分析。

已有201人预订
预订达标
文章出炉
     
11月09日
11月30日
本场 Chat 文章已出炉,购买后即可阅读文章并获得一张浅浅的读者圈Pass
请务必添加GitChat服务号以查看活动进度及获取活动通知。
查看文章评论/提问
弦亚12 天前
我是谁?我在哪?我在看什么?
浅浅(作者)10 天前
嘤嘤嘤,发生了什么?
你可能还喜欢
如何判断一家公司是否靠谱
张亮
程序员的数学修养
李烨
Linux 系统必知必会
Peter
调用链监控:微服务时代每个程序员必须点亮的技能点
编码
实战解决高并发数据入库 Redis 队列缓存+MySQL 批量入库(Spring Boot)
微服务实战生产
一篇文章吃透设计模式 7 大原则
luke
微信扫描登录
关注提示×
扫码关注公众号,获得 Chat 最新进展通知!
入群与作者交流×
扫码后回复关键字 入群
Chat·作者交流群
入群码
该二维码永久有效