compiler

LLVM

http://llvm.org/

LLVM是 Illinois 大学发起的一个开源项目,它到底是什么呢?从字面上看,它是一个虚机系统,然而这又和之前为大家所熟知的 JVM 以及.net Runtime这样的虚机不同,它提供了一套中立的中间代码和编译基础设施,并围绕这些设施提供了一套全新的编译策略(使得优化能够在编译、连接、运行环境执行过程中,以及安装之后以有效的方式进行)和其他一些非常有意思的功能。

为什么这个项目很重要呢?对于普通的开发人员来说,LLVM计划提供了越来越多的可以使用、编译器以外的其他工具。例如代码静态检查工具 LLVM/Clang Static Analyzer,是一个 Clang 的子项目,能够使用同样的 Makefile 生成 HTML 格式的分析报告;而对关注编译技术的开发人员来说,LLVM提供了很多优点:

  • 现代化的设计:LLVM的设计是高度模块化的,使得其代码更为清晰和便于排查问题所在。
  • 语言无关的中间代码:这使得透过LLVM能够将不同的语言相互连结起来;另一方面,这也使得LLVM能够紧密地与IDE交互和集成。另一方面,发布中间代码而非目标代码能够在目标系统上更好地发挥其潜能而又不伤害可调试性(i.e.在目标系统上针对本机的硬件环境产生目标代码,但又能够直接通过中间代码来进行行级调试)
  • 作为工具和函数库:使用LLVM提供的工具可以比较容易地实现新的编程语言的优化编译器或VM,或为现有的编程语言引入一些更好的优化/调试特性。

一些值得关注的基于LLVM的项目:

CLang C/ObjC/C++ 编译器。目前C++部分还需要很多工作,但C的部分已经比较成熟了。这个项目还有一个子项目是 LLVM/Clang Static Analyzer

llvmruby 基于LLVM的一个Ruby实现。

Unladen Swallow Google 发起的,使用 LLVM 替换 Python VM 的项目,其目标是提供更好的性能。

LLVM项目还提供了一些针对有意使用LLVM来实现新的编译器/优化工具的开发人员的 教程


Open64

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值