![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Flex&Bison教程
文章平均质量分 76
waxiadao
这个作者很懒,什么都没留下…
展开
-
创建一门新的编程语言-Flex&Bison教程-(1)-初探
之前一直想创造一门新的语言,于是便花了一些精力研究这些相关的工具和技术现在我把我总结的一些经验分享给大家Flex & Bison 是比较有名而且易用的parser组合,今后的工作大体都用到了这两个工具。他们可以在gnu官网下载,windows用户要么去下载winflexbison,要么自己编译一份(推荐),这里不详细介绍获取方法本教程所有代码都在Android平台和windows平台的g+原创 2013-11-16 18:32:05 · 8390 阅读 · 2 评论 -
创建一门新的编程语言-Flex&Bison教程-(2)-加减乘除
上一篇基本介绍了一些知识,那么现在我们就尝试做一个简单的计算器首先先写bison文件test2yy.y%{ #include using namespace std; int yylex(); //只是一个声明 int yyerror(const char *); //必须要有%}%token Number%type exp%union { doub原创 2013-11-17 12:43:56 · 2613 阅读 · 1 评论 -
创建一门新的编程语言-Flex&Bison-(4)-什么是jit
jit这个概念我想大家在网上并不少见,特别是在看java,c#等资料的时候,jit这个词都被用烂了。那什么是jit?这个地方反而在网上的资料中说的很含糊。“静态编译的程序在执行前全部被翻译为机器码,而直译执行的则是一句一句边运行边翻译。”,这是在wiki上唯一useful但又不useful的句子。但有一篇博文写的很好,解释了jit的工作原理:http://eli.thegreenplace原创 2013-12-28 22:57:02 · 1977 阅读 · 2 评论 -
创建一门新的编程语言-Flex&Bison&libjit-(5)-流行jit工具之一-libjit
目前我能找到的好用的jit有两个:libjit和llvm。其中对于现在最出名的要数llvm,libjit可能有的人连听都没听说过。这后面有一个悲伤的故事:libjit是dotgnu的子项目。在2004年前后的几年,libjit力压llvm,是最流行的jit工具,几乎没人对oop过度设计的llvm感兴趣(这一点现在也一直在恶心我)。但是,dotgnu最终解体(后面大名鼎鼎的mono项目和do原创 2013-12-28 23:41:22 · 3185 阅读 · 2 评论 -
创建一门新的编程语言-Flex&Bison教程-(3)-更实用的小计算器
本来想在这一节进入语法树的学习,然后顺势说完如何转换成汇编,真正做一个真正的编译器但是呢。。。这个星期事务繁多,要到周末才真正有空,所以这一节还是简单介绍一些不用语法树的简单应用,下次更新可能要等到周末了此外,我也想找点时间说说关于错误处理和提示等方面的东西,所以说这个教程还有很长的路支持变量和简单判断的计算器上一节我们已经实现了一个十分简易的计算器,但是要能说的上实用,还原创 2013-11-18 21:50:10 · 2525 阅读 · 0 评论 -
创建一门新的编程语言-Flex&Bison&LLVM-(6)-LLVM在Android和PC上的编译
各位不好意思,这么久都还没有更新新的一期。这一期我主要想说说编译llvm的过程,包括在PC上和在Android(这么久没更新教程,就是因为在弄Android的LLVM,总是失败)上。下载llvm源码包:http://llvm.org/releases/download.html#3.4选择LLVM source code便可解压到一个目录注:以下过程需要您已经安装有原创 2014-04-02 13:25:45 · 2855 阅读 · 2 评论