自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

西风世界

横笛笑看今古事,立剑醉谈定江山

  • 博客(14)
  • 资源 (3)
  • 收藏
  • 关注

原创 编译器架构的王者LLVM——(10)变量的存储与读取

变量是一款编程语言中的核心,说编译语言是一种符号处理工具,其实是有些道理的。栈式符号表可以方便的记录编译过程中的变量和语法符号,我们上节已经了解了其中的实现方法。那么,还有没有其他的办法能够简单的实现变量的存取呢?

2015-11-20 19:59:45 6405 4

原创 编译器架构的王者LLVM——(9)栈式符号表的构建

栈式符号表对于一款编译器,无疑是核心的组件。无论你在做什么符号扫描,那么都离不开符号表,如何得知一个符号是否定义,以及它的类型,那么唯有查看符号表中的记录。栈式符号表并不复杂,但思想精妙,本文,将介绍一款栈式符号表的原理及简单构建。

2015-11-14 11:36:46 5816 1

原创 编译器架构的王者LLVM——(8)函数的调用及基本运算符

之前我们提到了函数的定义,那么,定义好的函数如何调用才行呢?本文重点介绍LLVM中函数调用的用法以及基本运算符的相关操作。

2015-11-14 10:32:10 5033

原创 OOLua的接口绑定

OOLua是一款好用的C++到lua的绑定,能够帮助我们轻松制作lua的C语言接口,摆脱大量使用汇编风格程序的尴尬,更加安全和稳定。 今天,我们要讨论一下,其中关于接口绑定的具体操作和技巧。

2015-11-11 22:06:28 3668 6

原创 编译器架构的王者LLVM——(7)函数的翻译方法

前面介绍了许多编译器架构上面的特点,如何组织语法树、如果多遍扫描语法树。今天开始,我们就要设计本编译器中最核心的部分了,如何设计一个编译时宏,再利用LLVM按顺序生成模块。

2015-11-11 09:29:52 3914

原创 编译器架构的王者LLVM——(6)多遍翻译的宏翻译系统

上次我们讨论了构建语法树的基本模型,我们能够利用Lex+Bison+Node,几个组件将我们的目标语法翻译成AST语法树了,在第四章,我们也给出了RedApple这款实现型小编译器的语法结构,那么我们的准备工作基于基本完成。我们在搞定了AST语法树的构建后,需要有一种机制,能够遍历整棵语法树,然后将其翻译为LLVM的一个模块,然后再输出成.bc字节码。

2015-11-10 13:14:38 17924 3

原创 编译器架构的王者LLVM——(5)语法树模型的基本结构

上次我们看了Lex和Yacc的翻译文件,可能一些朋友并不了解其中的执行部分,而且,对这个抽象语法树是怎么构建起来的还不清楚。今天我们就再详细介绍一下如果方便的构建一棵抽象语法树(AST)

2015-11-10 12:01:58 9994

原创 编译器架构的王者LLVM——(4)简单的词法和语法分析

Lex和Yacc真是太好用了,非常方便我们构建一门语言的分析程序。今天我们就来了解一门语言的Lex和Bsion定义文件,如果制作一款合理的词法、语法分析器

2015-11-07 09:08:08 6771

原创 编译器架构的王者LLVM——(3)用代码生成代码

LLVM的开发思路很简单,就是用C++代码去不断生成llvm字节码

2015-11-06 20:56:50 11001 1

原创 编译器架构的王者LLVM——(2)开发LLVM项目

LLVM作为一款非常方便的编译器开发平台,我们能用LLVM做一款自己的编程语言么?答案是,有点难度,但不是不可能,今天,就从配置项目工程开始,了解LLVM项目开发的一点一滴。

2015-11-06 19:43:31 7153

原创 编译器架构的王者LLVM——(1)现代编译器架构

LLVM平台,短短几年间,改变了众多编程语言的走向,也催生了一大批具有特色的编程语言的出现,不愧为编译器架构的王者,也荣获2012年ACM软件系统奖。

2015-11-06 18:45:29 9953 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 7417

原创 结构化图形绘制利器Graphviz

以前我在写博客的时候,最发愁的就是画图,尤其是一些数据结构的展示,或一些算法的图示。一般我是用手绘板,软件就用MyPaint,做出图后,往往调整和修改十分困难。但自从我得知的Graphviz这款工具后,一起变得如此简单。

2015-11-04 18:39:40 5283

2D平面游戏Demo

内涵3节课程的游戏Demo,层层深入,用的图形库是我自己封装的Direct2D为基础的库,游戏实现了人物动画,坐标转换,Z-Buffer,想学习游戏制作的朋友可以参考。

2014-02-28

OpenGL小游戏

学习OpenGL时写的作品,由于缺少素材,画质和粒子系统都比较渣,但软件整体结构还算清晰,适合学习OpenGL、学习3D游戏编程的朋友参考,采用了OpenGL的光线特效和贴图特效,粒子系统也可以简单修改后使用,模型全部使用的3DS模型,模型读取部分值得一看,天空盒的处理也很讲究,适合爱好的朋友学习参考。

2014-02-28

调查问卷统计工具

用VC开发的调查问卷统计工具 所用技术: 成组动态按钮的生成与消息响应 键盘响应消息 数据的串行化与保存 具体内容还在其中附上了非常详细的说明文档,想学习的人可以参考。 编译环境VS2010

2013-03-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除