April 21, 2009

「窮得只剩下 Compiler -- 淺談編譯技術的革命」簡報上線

上週末,在 OSDC.tw 分享 [窮得只剩下 Compiler -- 淺談編譯技術的革命] 的演講,著眼於運算模式已大幅改觀的今日,編譯器技術是如何悄悄走入我們的生活 (不誇張,事實如此),而開放原始碼的世界,又是如何透過編譯器技術的突破,再造巔峰。試看,當今我們的資訊建設中,軟體開發可說清一色為 framework-driven,而硬體則是 SIMD/vectorization, Cell, muticore/SMP 等等嶄新技術的普及實現,從 PS3 遊戲機、手機、Netbook,到大型交易系統,都引入這些突破,此時,如何更多元、更安全、更有效率地使用硬體資訊技術,就成為關鍵的軟體議題。當編譯器技術走入新的層次時,就需要更強大且多元的 Toolkit,而我們選定 [LLVM] (Low Level Virtual Machine),當我們已知曉整個典範移轉 (paradigm shift) 的衝擊,就思考 LLVM 這樣的嶄新架構能給予我們哪些突破限制的可能性
本議題刻意迴避深奧的編譯器與計算理論,從應用的角度切入,探討何以 cross-compiler, Just-In-Time compiler, virtual machine 等等老玩意,大幅改變今日資訊系統的樣貌,而透過 LLVM 一類的技術,又如何巧妙的進行資訊技術的「雜交」(cross-over),從而給予重大的突破。結尾則引用王陽明牧師在《窮得只剩下錢》一書的話語:
    「人生兩條路:『生活的幸福』不等於 『生命的幸福』,兩樣幸福我們都需要」
期許同為技術從業人員的我們,唯有不斷追求新知,並認真反省資訊技術如何更有效率且深入的解決問題,才能更掌握「幸福」,畢竟,技術永遠不是真正的限制,只有我們的想像力箝制一時,但從歷史的經驗來看,人類往往很快又可突圍前進,特別是開放原始碼技術蓬勃發展的今日,軟體建設得以快速累積、爆炸成長。最後,感謝抽空前來指教的朋友,此議程顯然相當「硬」,但見到台下幾乎坐滿捧場的聽眾時,著實興奮良久,而有幾位朋友在會後提出頗多相當不錯的問題,小弟預計在稍後的 blog 中一併回覆,歡迎交流,謝謝!
由 jserv 發表於 April 21, 2009 09:09 PM
迴響

好文章.

不过感觉LLVM的用处还是有限. 比如兄台porting doom到android, 这里边特殊的是android只能跑java程序, 而恰好LLVM可以把C通过bitcode转化为java bytecode. 如果gcc有一个java bytecode的backend, 一样可以porting成功. 当然同样会遇到SKIA/SDL接口不匹配的问题.

gbx 發表於 April 21, 2009 11:48 PM

to gbx:
您搞錯了, android執行的非java bytecode, 而是自有的dex format, 如果只是要byte code, 那gcc已經有gcj了.
llvm帶給我們的就是能夠很容易建構backend的一個架構, 以往要撰寫gcc backend相較於以llvm寫backend需要付出的心力是無法相提並論的.

champ 發表於 April 22, 2009 09:47 AM

不可否認的,其實gcc也存在某些優勢,只不過gcc授權的議題比較麻煩,而且如果立志想當一個jitter,llvm就有比較好的優勢了

luse 發表於 April 22, 2009 12:38 PM
發表迴響









記住我的資訊?