一直想寫一本關于深入學習LLVM的書,這個想法有了很久了,但是一直沒有機會動手。現在雖然很忙,但是依然覺的有必要馬上動手去做這個事情。任何事情都是一點一點積累起來的,如果一直不動手,什麼都做不成。還有句話:活在當下。抓緊時間去做想做的事情,才不會給自己的人生留遺憾。
現在關于LLVM的書,隻見過一本英文的《Getting Started with LLVM Core Libraries》,據說還有一本日文的更早,但是一直沒見過,有待調查補充。是以我很期待這本書能成為第一本中文的關于LLVM的書。因為這不僅僅是關乎語言的問題,也是關乎國内研究LLVM的一個進展問題。國内确實很多人在LLVM社群混的不錯,也有人做的很深入,但是不可否認的是現在依然沒有一本真正介紹LLVM的中文的書,這對LLVM在中國的推廣,包括讓更多的人更好的學習LLVM有着重大的意義。
是以,我寫這本書的主要目的是有兩個。第一,可以給需要學習LLVM的人提供一點中文的資料,讓更多的人可以友善的接觸LLVM和學習LLVM。畢竟不是誰都可以輕易hold住那一大堆的英文文檔和已經發展這麼久的一大堆代碼。第二,我希望借寫這本書的這個機會,努力的提高自己對LLVM的了解,提高自己的技術水準,在不斷的總結和學習中提供自己。總結起來,這似乎是一件利人利己的事情,那就更需要快馬加鞭、保質保量的完成了。
這本書的名字就暫定《深入了解LLVM》。内容主要包括四大部分。第一部分,介紹LLVM的整體情況。從LLVM的起源、發展曆史和現狀入手,介紹LLVM的基本情況。然後對LLVM的架構、子項目組織結構、核心庫和代碼結構等進行介紹。第二部分,介紹LLVM的核心庫。這部分主要介紹LLVM核心庫的作用和如何在不涉及核心庫内部代碼的情況下去使用這些核心庫。這部分内容,《Getting Started with LLVM Core Libraries》這本書介紹的就非常不錯。第三部分,介紹LLVM的源碼。挑選LLVM的具有代表性的源碼進行介紹和分析,展現給讀者分析代碼的方法和技巧,重點在于培養讀者自己分析代碼的能力。在介紹具有代表性的代碼的同時,也介紹相關的編譯理論知識。第四部分,項目執行個體。針對性的選擇基本不同類型的項目,通過實際的代碼來實際項目中對LLVM的深入了解和使用。
之前關于LLVM/Clang零零散散的寫過一些部落格,但是很不系統,内容也不完整,要想寫成一本書的話,還有很多的工作需要去做。同時,之前我隻完成(出版)過長篇小說,沒有寫技術書籍的經驗,這些都将成為之後将要面臨的問題。不管面臨的問題是什麼,是問題就有解決的辦法,希望一切順利!
2015年3月7日晚于長春