语言与编译器
文章平均质量分 62
sfdazsdf
这个作者很懒,什么都没留下…
展开
-
LLVM的简单入手步骤
0.背景最近项目接触需要接触到编译器方面的东西,为的就是对现有技术体系进行语法级的加强。首先考虑的就是利用GCC完成这件事,无奈GCC模块化不及苹果的LLVM好,所以选用LLVM完成这件事。1.什么是LLVM百度上有许多相关的资料,这里推荐一篇写的很不错的文章讲述什么是LLVM,给使用者一个简单的了解。我也是从这个博客开始接触LLVM的。http://blog.csdn.n原创 2015-07-14 10:53:39 · 1122 阅读 · 0 评论 -
协程的过去,现在,未来
计算机科学是一门应用科学,几乎所有概念都是为了理解或解决实际问题而生的。协程 (Coroutine) 的出现也不例外。协程的概念,最早可以追溯到写作 COBOL 语言编译器中的技术难题。从磁带到协程COBOL 是最早的高级语言之一。编译器则是高级语言必不可少的一部分。现如今,我们对编译器了解,已经到了可以把核心内容浓缩成一本教科书的程度。然而在六十年代,如何写作高效的语言编译器是那转载 2015-08-07 17:22:34 · 1396 阅读 · 0 评论 -
restrict 关键字 与 别名问题
最近我在忙一个扩展C语言的项目,研究的时候看到一本绝好的关于语言本身历史发展的书籍 《C++语言的设计与演化》,其中讲到C++标准化时遇到关于如何使得编译器更好优化程序的思考。首先说一下背景知识:FORTRAN语言在C++设计之初就已经大行其道了,它的速度很快,其中有一点原因使得FORTRAN这么快就是它的编译器允许做出这么一种假设:如果传递给函数两个数组参数,那么这两个数组互相是没有重叠原创 2015-08-12 09:57:53 · 669 阅读 · 1 评论 -
利用LLVM,Clang制作自己的编译器
最近找到国外一大神做的利用LLVM和Clang写的修改源代码的例子,恰好项目需要做一个source-to-source的编译器与此相关,所以部分翻译一下这位大神的文章。原文地址: http://eli.thegreenplace.net/2014/05/01/modern-source-to-source-transformation-with-clang-and-libtooling/在原创 2015-07-20 22:20:23 · 8001 阅读 · 3 评论 -
ubuntu x64下编译出现找不到 cdefs.h / c++config.h 的问题
如遇到缺少 sys/cdefs.h 的情况,输入以下命令安装标c库sudo apt-get install build-essential libc6-dev libc6-dev-i386如遇到缺少 bits/c++config.h的情况,输入以下命令安装gcc编译相关库sudo apt-get install gcc-4.7-multilib g++-4.7-m原创 2015-09-21 14:04:22 · 17134 阅读 · 1 评论