scheme編譯器
❶ 新手如何學習編程
熟悉以下關鍵東西,可以邊學邊做,定期訓練,經常思考,長期積累:
1、語法。
2、基礎理論(數學、數據結構、演算法等)。
3、設計方法(編程原則、設計模式、框架設計等)。
4、庫(核心、基礎、UI、擴展、游戲引擎等)。
5、計算機相關(操作系統、網路、圖形學等)。
6、領域知識(游戲設計、網站設計等)。
7、開發工具(編輯器、IDE、自動部署等)。
8、項目管理(進度管理、分工協作、Bug管理、版本控制等)。
最普遍也是最重要的能力:創造力。努力分析並理解好做什麼以及怎麼做。要知道上面那些東西一開始都是不存在的。
具體方法包括:
1、快速閱讀入門教程和書籍,適合學習語言和基礎庫。比如我學Java讀的《Java編程思想》,練習題做過一點,然後學ActionScript就沒讀過書,只讀過Adobe官方文檔《ActionScript 3.0編程》。
2、閱讀庫的文檔、實例、源碼。比如Flash、Flex開發,熟悉官方API很重要,很多細節要具體使用時才注意到,這時候最好做個筆記,雖然我從沒看過我的筆記。
3、做一個自己感興趣或熟悉的小項目,比如我就以黑白棋游戲作為多個語言的試水項目,一樣的邏輯,便於把關注點放在語言特點上。
4、自己動手豐衣足食。廚師有菜譜,程序員可沒菜譜。比如我做游戲,最關鍵的游戲編程知識全部是動手學出來的,很少有專門針對某個業務領域(如游戲)的編程書籍,要麼是入門書,要麼是模式書(如演算法)、理論書(圖形學),很少有書籍教你如何開發一個45度角地圖系統加編輯器的,全靠自己思考,以及看前人的代碼,需要時找些網路資料。關鍵是,可以培養最重要的創造力。
對於演算法和設計模式,可以研讀下,但是關鍵還是靠平時如何使用了。新手勉強不來的。
項目管理方面的,就得靠工作經驗了,多思考多提意見不要只走流程。
❷ Clang 比 GCC 編譯器好在哪裡
編譯速度更快、編譯產出更小、出錯提示更友好。尤其是在比較極端的情況下。
兩年多前曾經寫過一個Scheme解釋器,詞法分析和語法解析部分大約2000行,用的是Boost.Spirit——一個重度依賴C++模版元編程的框架。當時攔姿孝用g++ 4.2編譯的情況是:
1.編譯速度極慢:完整編譯一次需要20分鍾
2.編譯過程中內存消耗極大:單個g++實例內存峰值消耗超過1G
3.中間產出物極大:編譯出的所有.o文件加在一起大約1~2G,debug鏈接產物超過200M
4.編譯錯誤極其難以理解:編譯錯誤經常長達幾十K,基本不可讀,最要命的是編譯錯誤經常會長到被g++截斷,看不到真正出錯的位置,基本上只能靠裸看代碼來調試
這里先不論我使用Spirit的方式是不是有問題,或者Spirit框架自身的問題。我當時因為實在忍受不了g++,轉而嘗試clang。當時用的是clang 2.8,剛剛可以完整編譯Boost,效果讓我很滿意:
1.編譯速度有顯著提升,記得大約是g++的1/3或1/4
2.編譯過程中的內存消耗差別好像不大
3.中間產出物及最終鏈接產物,記得也是g++的1/3或1/4
4.相較於g++,編譯錯誤可讀性有所飛躍,至少不會出現編譯錯誤過長被截斷的問題了
當時最大的缺點是clang編譯出的可執行文件無法用gdb調試,需要用調試器的時候還得用g++再編譯一遍。不過這個問題後來解決了,我不知道是clang支持了gdb還是gdb支持了clang。至少我當前在Ubuntu下用clang 3.0編譯出的二進制文件已經可以順利用gdb調試了冊羨。
最後一點,其他同學也有講到,就是Clang採用的簡稿是BSD協議。這是蘋果資助LLVM、FreeBSD淘汰GCC換用Clang的一個重要原因。
❸ lisp有什麼比較好用的編譯器么
因為編譯器只是個命令工具沒什麼叫"好用"的...我假設你問的是"編輯器"而不是"編譯器":
首先, 你問的是哪種lisp, 因為lisp有很多種.
如果你需要對所有lisp都好用的編輯器, 估計只有emacs和vim可以滿足你要求. 如果只要最常見的那些lisp, 除了這兩個一般都有些專門為他優化的插件支持的編輯器, 比如 clojure有lighttable和nightcode, racket 有GRacket 等
如果你真的問的是編譯器的話, 請具體說是哪種lisp,因為不同的lisp編譯器是完全不一樣的, 比如common lisp 我是喜歡 ccl (很多人更喜歡sbcl), 比如scheme的話顯然chez是最好得編譯器