我有興趣深入研究Erlang的C source code,並嘗試理解底層的情況。我在哪裏可以找到有關代碼設計和結構的信息?Erlang源代碼指南
回答
首先,你可能想看看到Joe Armstrong's thesis,處於較高水平引入二郎。瞭解該語言背後的想法是有用的。然後,您可以專注於Erlang運行時系統(erts)。 erlang.erl模塊可能是一個好的開始。然後,我將關注構成所謂的最小版本,內核和stdlib的應用程序。在stdlib中,看看如何實現行爲。我可以建議gen_server.erl模塊作爲開始?
謝謝。我開始的好地方。這真的是很短的指導,雖然.. – GabiMe 2010-09-20 21:15:50
簡短的回答是,沒有好的指導。代碼沒有很好的記錄。
我建議在你家附近找到一個熟悉代碼的人,然後以他們的晚餐換取一點點聊天。
如果您無法做到這一點,那麼我建議從裝載機開始。
./erts/emulator/beam/beam_load.c
一些有用的信息也可以通過漂亮的打印光束表示找到。我不知道是否有任何方法可以由OTP提供,但HiPE項目有一些祕籍。
hipe:c(MODULE, [pp_beam]).
應該讓你開始。
(而且我也推薦喬的書。)
束漂亮的打印機可以通過 'erlc -S',這相當於與HIPE來完成:由丹尼爾提到C(男,[pp_beam])。
我也使用erts_debug:df(Module).
反彙編載入的光束代碼,這是VM實際解釋的指令。
有時我使用調試器。 OTP提供了支持gdb的工具。請參閱示例用法http://www.erlang.org/pipermail/erlang-questions/2008-September/037793.html
- 1. 開源代碼指南?
- 2. Erlang示蹤源代碼
- 3. Android代碼設計指南
- 4. jQuery代碼風格指南
- 5. OpenGL編程指南第7版源代碼示例
- 6. Erlang Parse_trans表單翻譯爲Erlang源代碼
- 7. 需要了解C++代碼指南
- 8. 保護JQuery AJAX代碼的指南?
- 9. 蘋果代碼格式指南
- 10. Stripe's Rail的Checkout指南代碼澄清
- 11. XAML編碼指南
- 12. Erlang - 代碼分析
- 13. 並行Erlang代碼
- 14. Erlang代碼批判
- 15. 指定nuget包源代碼
- 16. 指南針@for和迭代
- 17. TypeScript編碼風格指南?
- 18. c#函數編碼指南
- 19. HTML和CSS編碼指南
- 20. C++編碼指南102
- 21. ASP.NET編碼標準指南
- 22. 指南針GPS指南針
- 23. 如何調試Erlang代碼?
- 24. 從代碼開始南特
- 25. 如何使用erlang源代碼的崇高文本2和Ctags?
- 26. 在emacs中,grep「erlang源代碼」搜索錯誤
- 27. 如何獲取Erlang光束文件的源代碼路徑?
- 28. 是否有可能爲erlang源代碼提供行號?
- 29. 是否有一些指南用於設計C代碼中的錯誤代碼?
- 30. 從指定的android源代碼版本創建sdk源碼包
這篇論文是一個迷人的閱讀。謝謝你 – GabiMe 2010-09-21 11:35:13