- 博客(14)
- 资源 (3)
- 收藏
- 关注
原创 编译器架构的王者LLVM——(10)变量的存储与读取
变量是一款编程语言中的核心,说编译语言是一种符号处理工具,其实是有些道理的。栈式符号表可以方便的记录编译过程中的变量和语法符号,我们上节已经了解了其中的实现方法。那么,还有没有其他的办法能够简单的实现变量的存取呢?
2015-11-20 19:59:45 6407 4
原创 编译器架构的王者LLVM——(9)栈式符号表的构建
栈式符号表对于一款编译器,无疑是核心的组件。无论你在做什么符号扫描,那么都离不开符号表,如何得知一个符号是否定义,以及它的类型,那么唯有查看符号表中的记录。栈式符号表并不复杂,但思想精妙,本文,将介绍一款栈式符号表的原理及简单构建。
2015-11-14 11:36:46 5820 1
原创 编译器架构的王者LLVM——(8)函数的调用及基本运算符
之前我们提到了函数的定义,那么,定义好的函数如何调用才行呢?本文重点介绍LLVM中函数调用的用法以及基本运算符的相关操作。
2015-11-14 10:32:10 5035
原创 OOLua的接口绑定
OOLua是一款好用的C++到lua的绑定,能够帮助我们轻松制作lua的C语言接口,摆脱大量使用汇编风格程序的尴尬,更加安全和稳定。 今天,我们要讨论一下,其中关于接口绑定的具体操作和技巧。
2015-11-11 22:06:28 3670 6
原创 编译器架构的王者LLVM——(7)函数的翻译方法
前面介绍了许多编译器架构上面的特点,如何组织语法树、如果多遍扫描语法树。今天开始,我们就要设计本编译器中最核心的部分了,如何设计一个编译时宏,再利用LLVM按顺序生成模块。
2015-11-11 09:29:52 3915
原创 编译器架构的王者LLVM——(6)多遍翻译的宏翻译系统
上次我们讨论了构建语法树的基本模型,我们能够利用Lex+Bison+Node,几个组件将我们的目标语法翻译成AST语法树了,在第四章,我们也给出了RedApple这款实现型小编译器的语法结构,那么我们的准备工作基于基本完成。我们在搞定了AST语法树的构建后,需要有一种机制,能够遍历整棵语法树,然后将其翻译为LLVM的一个模块,然后再输出成.bc字节码。
2015-11-10 13:14:38 17928 3
原创 编译器架构的王者LLVM——(5)语法树模型的基本结构
上次我们看了Lex和Yacc的翻译文件,可能一些朋友并不了解其中的执行部分,而且,对这个抽象语法树是怎么构建起来的还不清楚。今天我们就再详细介绍一下如果方便的构建一棵抽象语法树(AST)
2015-11-10 12:01:58 9995
原创 编译器架构的王者LLVM——(4)简单的词法和语法分析
Lex和Yacc真是太好用了,非常方便我们构建一门语言的分析程序。今天我们就来了解一门语言的Lex和Bsion定义文件,如果制作一款合理的词法、语法分析器
2015-11-07 09:08:08 6776
原创 编译器架构的王者LLVM——(2)开发LLVM项目
LLVM作为一款非常方便的编译器开发平台,我们能用LLVM做一款自己的编程语言么?答案是,有点难度,但不是不可能,今天,就从配置项目工程开始,了解LLVM项目开发的一点一滴。
2015-11-06 19:43:31 7157
原创 编译器架构的王者LLVM——(1)现代编译器架构
LLVM平台,短短几年间,改变了众多编程语言的走向,也催生了一大批具有特色的编程语言的出现,不愧为编译器架构的王者,也荣获2012年ACM软件系统奖。
2015-11-06 18:45:29 9956 1
原创 Lua的面向对象封装
lua这款简洁优雅的语言,非常受C/C++程序员喜欢。然而lua由于太过小巧,其接口过于类似汇编,使用困难,容易出错,也让人无可奈何。随着C++11的推进,lua逐渐出现了诸多非常有特色的面向对象封装方式,经过封装后,接口非常的简单优雅,而且操作简便,深受C++程序员的欢迎。
2015-11-05 20:02:20 2933
原创 C语言自动识别文本编码
用C语言在编写一些文本处理程序时,文本编码就成为了很重要的部分, 但C语言本身,处理文本又十分困难,虽然有wchar_t这类标准库支持, 然后事实是各类编译器对其支持也不相同,而且缺乏一致的标准。本次就来探讨可移植的转码库libiconv和自动文本格式识别库Mozilla Universal Character Set。
2015-11-05 19:21:12 7419
原创 结构化图形绘制利器Graphviz
以前我在写博客的时候,最发愁的就是画图,尤其是一些数据结构的展示,或一些算法的图示。一般我是用手绘板,软件就用MyPaint,做出图后,往往调整和修改十分困难。但自从我得知的Graphviz这款工具后,一起变得如此简单。
2015-11-04 18:39:40 5284
2D平面游戏Demo
2014-02-28
OpenGL小游戏
2014-02-28
调查问卷统计工具
2013-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人