一个可以用来练手的C++开源编译器!

yumo6662个月前 (07-02)技术文章15

LLVM

LLVM 是一个用于构建高度优化的编译器、优化器和运行时环境的工具包。

LLVM 项目包含多个组件。其核心部分名为“LLVM”。它包含处理中间表示并将其转换为目标文件所需的所有工具、库和头文件。这些工具包括汇编器、反汇编器、位码分析器和位码优化器。

类 C 语言使用Clang前端。该组件将 C、C++、Objective-C 和 Objective-C++ 代码编译为 LLVM 位码,然后再使用 LLVM 将其编译为目标文件。

其他组件包括:libc++ C++ 标准库、LLD 链接器等。

LLVM的作用

对于普通的开发人员来说,LLVM计划提供了越来越多的可以使用、编译器以外的其他工具。例如代码静态检查工具LLVM/Clang Static Analyzer,是一个 Clang 的子项目,能够使用同样的 Makefile 生成 HTML 格式的分析报告。

优点

现代化的设计

LLVM的设计是高度模块化的,使得其代码更为清晰和便于排查问题所在。

语言无关的中间代码

一方面,这使得透过LLVM能够将不同的语言相互连接起来;也使得LLVM能够紧密地与IDE交互和集成。

另一方面,发布中间代码而非目标代码能够在目标系统上更好地发挥其潜能而又不伤害可调试性(i.e. 在目标系统上针对本机的硬件环境产生目标代码,但又能够直接通过中间代码来进行行级调试)

作为工具和函数库

使用LLVM提供的工具可以比较容易地实现新的编程语言的优化编译器或VM,或为现有的编程语言引入一些更好的优化/调试特性。

项目地址:
https://github.com/llvm/llvm-project

相关文章

C语言之编译器集合

C语言有多种不同的编译器,以下是常见的编译工具及其特点:一、主流C语言编译器1. GCC(GNU Compiler Collection)特点:开源、跨平台,支持多种语言(C、C++、Fortran...

C语言编译器,你用过哪种?

说到C语言,我想无论是从事IT行业的程序员也好,还是非专业人士也罢,对它都是有所耳闻的。C语言是一门历史很长的编程语言,其编译器和开发工具也多种多样,今天小编就为大家盘点那些我们可能使用过的C语言编辑...

初学者选择哪一款编译器比较好?

工欲善其事必先利其器,工作了这些年用的工具着时不少,一步步走过来也算是蹒跚满志。现如今只剩下会用vim gcc了。不是其它工具不会用因为用的少了慢慢的就生疏了,习惯形成了也就不好改了。要我说用那款编译...

2014年10月编程语言排行榜及其走势

让我们来一起看看由TIOBE发布的10月份编程语言排行榜吧。在上个月的排行中,我们了解到Java、C++份额下滑至历史最低点,但是前三甲排行没有明显的变化,依然是C、Java、Objective-C。...

Mac 上的 C 编译器和 GCC 之间关系

梳理一下 Mac 上的 C 编译器和 GCC 之间的关系与区别。首先要明确一个关键点:在现代 macOS 系统上,特别是安装了 Xcode 或 Xcode 命令行工具 (Command Line To...

c语言、c++、JAVA、Python这四种编程语言应该怎么选?

c语言、c++、JAVA、Python这四种编程语言,先把它们分分类。从运行环境上分:C/C+ +属于非托管(native)类型编程语言,由静态代码通过编译器/链接器生成目标平台的二进制程序指令代码,...