2009-11-01 12 views
5

Tôi quan tâm đến việc tìm hiểu về các tính năng mạnh mẽ hơn của Boo chẳng hạn như macro cú pháp, hỗ trợ trình phân tích cú pháp (Ometa?), Đường dẫn trình biên dịch, v.v. Ấn tượng của tôi là các khu vực này đã ở dạng thông lượng và phần dưới tài liệu. Có tài nguyên nào tốt để tìm hiểu về những điều này ngoài việc nghiên cứu mã nguồn không?Hướng dẫn về tính năng siêu lập trình và khả năng mở rộng của Boo?

Trả lời

0

Building Domain Specific Languages in Boo. Tôi nhận được một phiên bản truy cập sớm sớm và thấy nó bực bội vì lý do "thông lượng" mà bạn đã đề cập; Cuối cùng tôi đã từ bỏ. Hy vọng rằng mọi thứ đã ổn định kể từ đó.

+0

Xây dựng DSL trong Boo có phạm vi phủ sóng Boo, nhưng lớn và cuốn sách là về DSL, hầu như không che khuất một số mức độ siêu ánh sáng cao nhất của Boo. – rektide

0

Tôi đã không nhìn qua trang web này rộng rãi, nhưng có vẻ nó có thể có tài liệu tham khảo tốt nhất cho Boo: http://boo.codehaus.org/Tutorials

Phần này vẫn không được ghi nhận, nhưng nếu bạn nhìn vào https://github.com/bamboo/boo/wiki/Syntactic-Macros bạn có thể tham khảo cách tạo các macro cú pháp. Về cơ bản bạn phải thực hiện Boo.Lang.Compiler.IAstMacro.

Phần chính xác nằm trong https://github.com/bamboo/boo/wiki/Abstract-Syntax-Tree nhưng phần lớn dường như không đầy đủ.

+0

Tôi có và gần như không có gì trên trang web đi sâu vào Boo lập trình meta và macro. Trang web đã được phát hiện sớm trong cuộc sống của Boo trong khi Metaprogrammign vẫn đang được tiến hành. – rektide

0

Cho đến nay tham chiếu tốt nhất để xem những gì Boo có thể làm là dành một loạt thời gian trải qua các bài kiểm tra. Phải mất một lúc để giải quyết những gì đang xảy ra, nhưng các bài kiểm tra thực sự làm tất cả các cơ bắp có sẵn và được viết khá tốt. https://github.com/bamboo/boo/blob/master/tests/testcases/macros/macro-1.boo

Ngoài ra, lưu ý rằng thông dịch viên của boo thực sự tuyệt vời và nếu bạn không chắc chắn về cách kiểm tra hoạt động, có lẽ bạn nên dành thời gian để quảng cáo. http://boo.codehaus.org/Interactive+Interpreter