手动构造固定平台下语义编译器(LL(1)文法)
来源:互联网 发布:calibre安卓软件 编辑:程序博客网 时间:2024/06/05 01:49
好久之前的项目了,今天整理出来和猿们分享下。当时上编译原理课时候的结题项目,当时大家都是用flex+bison构造的,当时感觉没什么意思,和老师沟通之后发现自己写个小的编译器还是蛮好的,挺有意思,不过老师也说如果不能完全实现也可以给合理的分数,就想着干就干个大的,实现不了再说,然而当时光是设计语法结构+构建first集+构建follow集+构建select集+消除二义性就花费了大概三四天甚至更长的时间,倒是最后实现起来词法分析,语法分析,制导翻译的时候,因为之前有点数据结构的功底,用STL很快就实现,还算没让自己和老师失望,最后犯了点强迫症写了一些关于语义的出来了,也就是制导翻译的时候的一些警告呀,强制类型转换等一些处理,记得当时老师还惊讶的说,这是你在自己做的吗,这工作量很大啊,然后我自信的点点头,说了句当然了,然后...相当爽了就,写的我现在都有点激动了。。。
这个一个画图的软件,所以设计的语法可能有点抽象,我做的工作就相当于把我设计的高级语言编译成类似于汇编一样的,这个画图平台所能识别的语言。这里我再GitHub上给出这个小工具了。。。
依旧是贴在GitHub上(https://github.com/zsweet/compiler-with-LL1-grammer)
阅读全文
0 0
- 手动构造固定平台下语义编译器(LL(1)文法)
- 编译器设计:文法与LL(1)
- LL(1)文法 JAVA
- 预测分析表LL(1)文法
- 编译原理LL(1)文法
- LL(1)文法判定
- HDU1409-LL(1)文法
- LL(1)文法
- LL(1)文法生成器。
- LL(1)文法判断
- LL(1) 文法
- LL(1) 文法分析器
- LL(1)文法
- LL(1)文法first集
- LL(1)文法实现(C系语言版)实现
- 一个基于LL(1)文法的语法分析程序
- 程序实现给定文法的LL(1)分析
- LL(1)文法代码(有一定的纠错能力)
- 浅析Linux命令之head和tail
- 最长上升子序列
- 实现strcpy得分点
- SpringBoot项目技术点一
- 暑假训练总结
- 手动构造固定平台下语义编译器(LL(1)文法)
- iOS学习笔记-091.彩票06——我的彩票
- 如何在springcloud分布式系统中实现分布式锁
- 数据分析&机器学习&人工智能,从零开始起步
- linux用shell脚本模拟时钟 && 脚本录制
- 张正友标定流程
- int *ptr=(int *)(&a+1)
- 解决docker-py api版本不兼容问题
- 暑假训练总结