自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

西风世界

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

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

原创 Elite语言-原创宏翻译语言

Elite语言-原创宏翻译语言最近一个月很忙,不过很高兴的是,经过这个月的努力,终于制作出了Elite语言的预览版。 Elite是我自行设计开发的一款宏翻译语言,主要使用场景是创建个性化领域专用语言(DSL)。github项目仓库:https://github.com/elite-lang/Elite. Elite是一款可自定语法的编程语言,通过自行配置语法,能够方便的定制需要的语言形式.

2015-12-22 07:18:13 1888

原创 新开发的ZeroErr 零误框架,欢迎朋友们试用,多提宝贵意见

ZeroErr 零误框架 (https://github.com/sunxfancy/zeroerr) 是一款C++11编写的单元测试框架,同时也是断言库,日志库为一体的测试、调试、打印框架。我设计这个库的最初目的是想将断言、日志、单元测试几个功能整合起来,并且支持任意类型的log,调试打印等功能。希望朋友们看看是否感兴趣,有哪些地方可以改进,欢迎多提宝贵意见。

2023-05-11 08:40:21 145

原创 SEO优化实录

最近朋友的网站流量一直很小,让我给看看SEO优化的问题,那么本期就来详细谈谈SEO优化的一些问题吧。这篇博客也会在不断更新最新的改动和改动后的效果。方便大家了解SEO的基本方法和有效策略。本篇文章由 西风逍遥游 原创,转载请附带原始页面链接:http://blog.csdn.net/xfxyy_sxfancySEO优化入门分析问题图片文字问题描述和关键字不对应内容缺乏出站链接和友情链接S

2017-07-20 16:09:52 16162 2

原创 使用Sphinx翻译LLVM的中文文档

Sphinx是一款非常方便的文档生成工具,以前就早有耳闻,最近计划将LLVM的文档翻译一些,在打开LLVM的文档源文件后发现,整个文档部分整理的非常整洁。下载的最新版LLVM-3.8版的源码,已经完全使用Sphinx生成文档,于是我也学习了一些Sphinx的相关用法。

2016-04-17 23:05:41 3157 1

原创 C++ template 分离式编译

C++的模板有一个较大的缺陷,模板的实现是不能放到独立的cpp文件中的,因为模板函数的特点,必须要类型确定时才能泛化。

2016-02-29 11:13:35 2390 1

原创 搞笑的Linux shell

ls指令几乎是linux下使用最频繁的几个指令之一,那么请问,你有打错过么?下面这款工具能够让你在将ls错打成sl时进行一下“修正”:这款小工具很好安装,在ubuntu下用:apt-get install sl 即可。不过建议别装在服务器上,否则当你着急修复bug但打错命令时,看着shell开着呼啸而过的小火车时。心中犹如一万匹草泥马呼啸而过 = =!

2016-01-20 11:49:43 4473

原创 编译器架构的王者LLVM——(12)使用JIT引擎

LLVM从设计之初就考虑了解释执行的功能,这非常其作为一款跨平台的中间字节码来使用,可以方便地跨平台运行。又具有编译型语言的优势,非常的方便。我们使用的LLVM3.6版,移除了原版JIT,改换成了新版的MCJIT,性格有了不小的提升,本文就MCJIT的使用和注意事项,进行简要的介绍。

2016-01-08 20:17:04 14188 2

原创 编译器架构的王者LLVM——(11)深入理解GetElementPtr

LLVM平台,短短几年间,改变了众多编程语言的走向,也催生了一大批具有特色的编程语言的出现,不愧为编译器架构的王者,也荣获2012年ACM软件系统奖 —— 题记 LLVM平台,和C语言极为类似,强类型,需要复杂的指针操作,基于系统的符号调用等。而LLVM的指针操作指令,GetElementPtr,几乎是所有指针计算的关键,而理解它个运作原理,正确的使用,非常的重要。

2015-12-27 20:15:04 17900 3

原创 Travis-ci集成构建系统

travis-ci这款集成构建平台,他和github关系紧密,更关键的是,对于开源项目,永久免费使用,这让我在开发编译器的过程中,有了一款能够方便部署和测试的平台,获益匪浅.对于在github上托管的项目, 他可以根据你的配置, 在ubuntu虚拟机上为你构建项目, 运行测试, 打包发布等工作, 只需你每次提交代码或发pr, 对应的版本都能进过校验工作流程

2015-12-27 13:58:12 2487

原创 跨平台CMake的编写

最近开发跨平台C++编译器,让我深切的体会到了CMake的重要性,一开始,项目只有简短的配置,所有的依赖项都需要手动下载并编译。但不同人下载和编译的方式许多,版本也不同,编译器也不同,Debug版本也不同,稍有不慎就无法链接到一起。C++链接库的问题由于C++库没有通用的ABI,底层链接接口都是各编译器制定的,所以不同编译器编译的库不能混合使用,为了保险起见,我们将全部依赖项都使用编译安装的方式

2015-12-22 08:04:13 5783

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

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

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

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

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

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

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

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

2015-11-14 10:32:10 4906

原创 OOLua的接口绑定

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

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

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

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

2015-11-11 09:29:52 3822

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

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

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

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

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

2015-11-10 12:01:58 9837

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

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

2015-11-07 09:08:08 6685

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

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

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

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

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

2015-11-06 19:43:31 7038

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

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

2015-11-06 18:45:29 9831 1

原创 Lua的面向对象封装

lua这款简洁优雅的语言,非常受C/C++程序员喜欢。然而lua由于太过小巧,其接口过于类似汇编,使用困难,容易出错,也让人无可奈何。随着C++11的推进,lua逐渐出现了诸多非常有特色的面向对象封装方式,经过封装后,接口非常的简单优雅,而且操作简便,深受C++程序员的欢迎。

2015-11-05 20:02:20 2860

原创 C语言自动识别文本编码

用C语言在编写一些文本处理程序时,文本编码就成为了很重要的部分, 但C语言本身,处理文本又十分困难,虽然有wchar_t这类标准库支持, 然后事实是各类编译器对其支持也不相同,而且缺乏一致的标准。本次就来探讨可移植的转码库libiconv和自动文本格式识别库Mozilla Universal Character Set。

2015-11-05 19:21:12 7333

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

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

2015-11-04 18:39:40 5080

原创 π的计算

说起圆周率的计算,估计很多人首先想到的是祖冲之的割圆术。确实,在当时的条件下,割圆术能将π计算到一个较高的精度,实在不易。 不过我们现在,希望使用计算机快速计算高精度的π,这时我们该如何去做呢?算法库计算的思路像计算机中的数学库计算,一般都是采用泰勒展开进行的,像sin,cos这类的函数,都可以用泰勒展开式很方便的逼近。计算机计算的方法,就是用简单的多项式去不断逼近一个特殊的函数。

2015-09-11 20:47:31 22409 3

原创 西风的数据结构教程(4)——hash表

今天是教师节,感恩老师们的辛勤工作,让我们不断成长。今天制作的这份教程十分重要,是我们高中时必会,而且是计算机体系中占有关键地位的一种数据结构——hash表。 本文详细讲述了hash表的基本原理,两种字符串hash算法,阐述了开地址法和链地址法的原理和对应的两种优化方案,最后介绍了动态hash算法的思想。

2015-09-10 20:20:12 2017 2

原创 一入wine深似海,从此奋战到天明

wine神马的最烦人了,喝多了伤身,请适量。 很多朋友都会发现,Linux下的应用实在是太少了,Linux平台哪里都好,就是没人用。。。= =!为了在Linux下运行更多的应用,程序猿们开发出了Wine神器。要知道,这个东西开发的艰辛,Linux本身是开源的,但Windows可不是啊,能用开源的软件搭建出一套闭源软件的兼容层,可不是一件容易的事。

2015-09-10 13:09:20 9913 5

原创 西风的数据结构教程(3)——二叉树

今天我们终于要说到计算机界的经典数据结构——树,树是非常良好的一种组织数据的形式,在现实生活中也经常用到。树的结构,大概就是这个样子:一群树就会组成一个森林不过,这样并不好管理,所以我们一般会还是使用一个根节点来管理它们。树结构最大的特点就是,一个节点的情况分析只和父节点和子节点相关,这样管理数据时往往不需要考虑很多。

2015-09-06 11:16:05 1402

原创 ubuntu14.04安装GTX850M显卡驱动实录

ubuntu的源里面nvidia的驱动已经更新到了nvidia-346,开始支持了8XX系列的不少显卡,我的电脑是GTX850M,也在支持的行列,于是开始安装一下该驱动。我个人不推荐去Nvidia官网上下载驱动,因为那个驱动安装制作的不太好,而且稍有不慎就可能损害intel集显的驱动,使用ubuntu源里面的驱动更安全也更方便。

2015-09-03 13:02:37 5525

原创 在也不作死make底层库了

当年学习opengl时,觉得自己系统里面的opengl版本有点低。。。然后就下载了linux下用Mesa编译之后,make install到了自己的系统中。Linux安装应用,对于大部分普通用户,都只要用对应的包管理器安装就可以了。但我这种做法,就引来了一系列意想不到的问题。

2015-09-02 12:20:51 1385

原创 重度IT症患者病理表现

重度IT症患者病理表现:使用按时间计费的设备时,喜欢让消费金额是4.04元,5.03元等的。睡醒觉后做的第一件事不是打开手机看时间,而是调bug的。手机中能用的软件不如xxxtest系列应用多的。喜欢把鼠标灵敏度调到最大的。...

2015-08-20 23:39:52 1182

原创 闲话js前端框架(6)——在浏览器标准上做文章

为了简化前端的开发,或做一些特殊的应用,我们往往需要采取某些‘非人道’的方式,才能实现某些功能。本文介绍的是js虚拟机,没错,运行在js上的虚拟机,去执行其他语言的代码。

2015-08-20 23:36:39 1518

原创 闲话js前端框架(5)——再看自己一年前设计的微型渲染引擎

我在初学前端的时候,做过一个现在我看来都是天方夜谭的设计,我制作了一个小型渲染引擎,我给他起名ntml(即将崩坏的html)。

2015-08-20 19:28:18 1965

原创 闲话js前端框架(4)——组件化?有没有后端的事?

Web组件化这种方式有天生的问题,第一,组件的定制化不强,因为大多开发的组件是通用组件,用多次复用才有价值,而网站开发中,由于前端代码的灵活性太强,导致完整的封装非常困难,而一旦完整封装后,灵活性就丧失了。第二,组件的封装不是全部严密的封起来就OK了,例如CSS样式,你为了保证组件样式的统一,固定了CSS,那么假若你的项目支持换肤,你的组件是否应该换肤呢?我们并不想要封装好的组件,而是一套通用的方便的封装方式。

2015-08-20 18:31:49 2422

原创 虚拟文件系统——更好的文件抽象层

虚拟文件系统——更好的文件抽象层任何一个软件设计的难题都可以通过增加一个抽象层来解决 。我们的系统开发中,经常遇到一些难办的事情,比如,一台linux服务器上,从源里安装了一套apache+php+mysql,然后另外一个管理员发现其中一个php项目的php版本不够,就编译安装了一套新的php,然后将apache的php配置链过来。但php的配置要修改的话,就十分麻烦。于是,我们设计了一套虚拟文件系统来解决这类问题

2015-08-20 15:31:15 3463 1

原创 闲话js前端框架(3)——再也不想碰DOM

DOM操作必须时刻注意着,第一,要正确的选择到对应的元素;第二,比小心不能影响其他人的工作。另外,你会发现更为悲惨的事情,如果你的代码全是自己写的,那么还好,但如果引入的第三方库,你根本不知道,这个库会将dom树修改成什么样子。DOM比较慢,我们应该尽可能的减少不良的DOM操作,例如大批量的重建DOM,或者是更新DOM时,重建了不变的节点等。

2015-08-19 23:16:40 2801

原创 闲话js前端框架(2)——庞大的angularjs

Angularjs是目前最常用、功能极强,被广泛应用于生产实践中的一套框架,是为了克服HTML在构建应用上的不足而设计的。Angularjs,正是看到了互联网发展的需要,设计出来这款方便做网络APP的框架,从此避免了容易出错的dom操作。通过数据绑定、数据模型,这些概念,Angularjs很适合做CRUD应用,这样,代码非常的灵活和统一。

2015-08-18 22:26:38 2302

原创 闲话js前端框架(1)——从avalonjs的模板说起

闲话js前端框架前端人员=美工+设计+代码+测试 我开发网站的时间,已经一年多了,其实一直是作为后端人员在工作着。但不幸的是,我对数据库的维护啥的兴趣不大,而且很喜欢华丽的界面效果,于是在偷偷地关注着前端的一举一动

2015-08-17 23:58:27 2752

原创 抽象的精神

软件设计,一直是一个非常抽象的,非常难懂的领域。 然而设计,并不是科学,虽然有评价标准,却没有是非对错。好的软件,就像是艺术品,闪耀着前人智慧的结晶。本文将探讨一下流行的软件设计,以及总结一下好的设计原则和方法。

2015-08-14 23:53:14 1356

原创 Web开发新技术思考

Web框架AngularJS 这个框架是一个成熟的前端JS框架,Google的新产品。最核心的就是MVC的前端架构,模块化组织,自动的双向数据绑定,依赖注入等功能。extjs 这是一套复杂的综合js框架,也是非常优秀的移动web应用开发框架,功能丰富,界面效果突出。Requirejs 提供异步加载js代码的核心方案,不通过script标签就能管理各js代码的依赖关系。

2015-07-31 23:31:00 1593

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关注的人

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