2010-09-20 32 views

Trả lời

15

Trước hết, bạn có thể muốn có một cái nhìn để Joe Armstrong's thesis, giới thiệu Erlang ở mức cao. Sẽ hữu ích nếu bạn có ý tưởng về ý tưởng đằng sau ngôn ngữ. Sau đó, bạn có thể tập trung vào Hệ thống thời gian chạy Erlang (erts). Module erlang.erl có thể là một khởi đầu tốt. Sau đó, tôi sẽ tập trung vào các ứng dụng tạo thành cái gọi là số phát hành tối thiểu , hạt nhânstdlib. Trong stdlib, có một cái nhìn về cách hành vi được triển khai. Tôi có thể đề xuất mô-đun gen_server.erl làm khởi đầu không?

+0

Luận án này là một bài đọc hấp dẫn. Cám ơn vì cái này – GabiMe

2

Câu trả lời ngắn gọn là không có hướng dẫn tốt. Và mã này không được viết rất tốt.

Tôi khuyên bạn nên tìm một người nào đó trong vùng lân cận biết mã phù hợp và mua bữa tối để đổi lấy một cuộc trò chuyện nhỏ.

Nếu bạn không có khả năng thực hiện điều đó, thì tôi khuyên bạn nên bắt đầu với trình tải.

./erts/emulator/beam/beam_load.c 

Một số thông tin hữu ích cũng có thể được tìm thấy bằng cách in đại diện chùm đẹp. Tôi không biết liệu có cách nào để làm như vậy được cung cấp bởi OTP, nhưng dự án HiPE có một số cheats.

hipe:c(MODULE, [pp_beam]). 

Bạn nên bắt đầu.

(Và tôi cũng khuyên bạn nên cuốn sách của Joe.)

2

máy in Khá dầm có thể được thực hiện bằng cách '-S erlc', tương đương với hipe: c (M, [pp_beam]) được đề cập bởi Daniel.

Tôi cũng sử dụng erts_debug:df(Module). để tháo rời mã dầm đã tải, đó là các hướng dẫn thực sự được VM giải thích.

Thỉnh thoảng tôi sử dụng trình gỡ lỗi. OTP cung cấp các công cụ hỗ trợ gdb rất tốt. Xem ví dụ về cách sử dụng tại http://www.erlang.org/pipermail/erlang-questions/2008-September/037793.html

Các vấn đề liên quan