LLVM每日谈之十七 LLVM/Clang的学习的思考

简介:         之前一直关注LLVM和基于LLVM的工程(工具)多一些,对Clang和基于Clang的工具关注不是很多。这就导致了一个很严重的问题,觉的如果要深入理解Clang就必须要去读Clang的源码,这个想法不是不对,但是这不是唯一的路,而且Clang的源码太多,容易让人无法坚持下去,也容易让人无从下手。
        之前一直关注LLVM和基于LLVM的工程(工具)多一些,对Clang和基于Clang的工具关注不是很多。这就导致了一个很严重的问题,觉的如果要深入理解Clang就必须要去读Clang的源码,这个想法不是不对,但是这不是唯一的路,而且Clang的源码太多,容易让人无法坚持下去,也容易让人无从下手。
        了解了Clang的一些工具之后,觉的这些工具是一个很好的切入点,简单、方便使用、代码量不大,却可以完成很多以前觉的是很难实现的工作。这让我觉的找到了可以深入学习Clang的另外一条路,从这些简单的工具入手,先熟悉这些工具的原理和代码,然后通过这些工具再挖掘Clang相关的知识点,等积累到一定程度,再通过通读Clang的代码,达到对Clang深入了解的程度。相对来说,比之前的路要好走一点,毕竟工具都可以直接调试,也很方便阅读代码。
         同时,在这段不断接触LLVM的过程中,还发现了一个问题。这个问题就是读英文文档之后,印象不深刻,读了好几遍,印象还是不怎么深刻。虽然这可能跟阅读习惯和英语水平有一定关系,但是我个人觉的主要的原因还是没有能够逐字逐句的去抠文档。英文文档,看着看着就没心思看了,看着看着就就走神了。有些文档虽然看了很多遍,但是还是效果不好。现在自己找到了一个笨办法,就是翻译英文文档,在翻译的过程中,为了理解一句话,需要不断的揣摩不断的去分析每个词,然后再琢磨如何去用中文表达。这个过程给人的印象比较深刻,而且翻译出来的中文也方便自己回头再看,也可以给其他不想看英文文档的人看。
        在接下来的一段时间里,打算尝试下这种翻译文档读文档的方法,看看长期效果如何。最大的缺点就是比较浪费时间,一篇不长的文档需要两个小时到三个小时。
目录
相关文章
|
14天前
|
前端开发 编译器 C++
什么是LLVM项目?
什么是LLVM项目?
58 37
|
前端开发 IDE 编译器
LLVM编译器前端 Clang 简介
昨天晚上安装rails的开发环境,被ruby的编译搞的有点崩溃。下载的ruby的源码不能用系统自带的gcc -4.21编译,也不能用系统自带的clang进行编译,必须下载并使用gcc -4.2进行编译才能通过。今天稍微看看编译器的一些背景。
561 0
LLVM编译器前端 Clang 简介
|
编译器 iOS开发 Windows
带你读《LLVM编译器实战教程》之一:构建和安装LLVM
本书的前半部分将向您介绍怎么样去配置、构建、和安装LLVM的不同软件库、工具和外部项目。接下来,本书的后半部分将向您介绍LLVM的各种设计细节,并逐步地讲解LLVM的各个编译步骤:前段、中间表示(IR)、后端、即时编译(JIT)引擎、跨平台编译和插件接口。本书包含有大量翔实的示例和代码片段,以帮助读者平稳顺利的掌握LLVM的编译器开发环境。
20197 0
|
Android开发 C语言 C++
《深入理解LLVM》第一章 LLVM简介
第一章 LLVM简介 作者:史宁宁 1.1 LLVM是什么 LLVM是什么?这是一个虽然基础,但是也曾经让很多新入门的人迷惑的一个问题。从字面上来讲,LLVM(Low Level Virtual Machine)是一个底层虚拟机,LLVM曾经有一部分功能对虚拟机有所帮助。
2535 0
|
测试技术 编译器 流计算
LLVM每日谈之一 LLVM是什么
作者:snsn1984 写在前面的话: 最近接触llvm比较多,在这个上面花了不少的时间。感觉llvm要完全理解透是个很不容易的事情,需要在学习过程中好好的整理下自己的思路。
1571 0
|
C++
Devirtualization in LLVM and Clang
Devirtualization in LLVM and Clang This blog post is part of a series of blog posts from students who were funded by the LLVM Found...
1362 0
|
Linux
LLVM每日谈之二十三 LLVM/Clang编译Linux内核资料
作者:史宁宁(snsn1984) 之前有朋友问到这个问题,是否有使用LLVM/Clang编译Linux内核的,随手找了一些相关资料,在这里贴出来,与大家共享。 网址:http://llvm.
1816 0
|
Web App开发 JavaScript
深入研究Clang(七) Clang Lexer代码阅读笔记之Lexer
作者:史宁宁(snsn1984) 源码位置:clang/lib/Lexer.cpp 源码网络地址:http://clang.llvm.org/doxygen/Lexer_8cpp_source.html Lexer.cpp这个文件,是Clang这个前端的词法分析器的主要文件,它的内容是对Lexer这个类的具体实现,原文件的注释中:“This file implements the Lexer and Token interfaces.” 这么解释这个文件的,但是Token只有两个简单函数的实现,剩下的都是Lexer的实现。
1624 0
从今天起,写一本关于LLVM的书----《深入理解LLVM》
       一直想写一本关于深入学习LLVM的书,这个想法有了很久了,但是一直没有机会动手。现在虽然很忙,但是依然觉的有必要马上动手去做这个事情。任何事情都是一点一点积累起来的,如果一直不动手,什么都做不成。
1622 0