Tôi đã gặp khó khăn trong việc tìm hiểu bản dịch của PyPy. Nó trông giống như một cái gì đó hoàn toàn mang tính cách mạng chỉ đơn giản là đọc các mô tả, tuy nhiên tôi khó ép để tìm tài liệu tốt về thực sự dịch một đoạn thế giới thực của mã để một cái gì đó như LLVM. Có một điều như vậy tồn tại? Tài liệu chính thức của PyPy về nó chỉ lướt qua các chức năng, thay vì cung cấp bất cứ điều gì tôi có thể thử bản thân mình.Tôi có thể tìm hiểu thêm về chức năng dịch thuật của PyPy ở đâu?
Trả lời
Tài liệu này dường như đi vào khá nhiều chi tiết (và tôi nghĩ rằng một mô tả đầy đủ là ra khỏi phạm vi cho một câu trả lời stackoverflow):
Ý tưởng chung của dịch từ ngôn ngữ này sang ngôn ngữ khác không phải là đặc biệt mang tính cách mạng, nhưng gần đây nó đã trở nên phổ biến/ứng dụng trong các ứng dụng "thế giới thực". GWT thực hiện điều này với Java (tạo Javascript) và có một thư viện để dịch Haskell sang nhiều ngôn ngữ khác nhau (gọi là YHC)
Bạn đang tìm kiếm bản dịch cụ thể của Python hay chỉ nói chung "làm thế nào để bạn biên dịch một số mã sang bytecode"? Nếu trường hợp sau là trường hợp của bạn, hãy kiểm tra the LLVM tutorial. Tôi đặc biệt tìm thấy chương hai, mà dạy cho bạn để viết một trình biên dịch cho ngôn ngữ của riêng bạn, thú vị.
Nếu bạn muốn một số ví dụ thực hành, PyPy's Getting Started tài liệu có một phần có tiêu đề "Thử người phiên dịch ".
Trình dịch PyPy nói chung, không nhằm mục đích sử dụng công khai hơn. Chúng tôi sử dụng nó để dịch trình thông dịch python của riêng chúng tôi (bao gồm cả JIT và GC, cả hai được viết bằng RPython, tập hợp con này bị hạn chế của Python). Ý tưởng là với JIT và GC tốt, bạn sẽ có thể tăng tốc ngay cả mà không biết hoặc sử dụng chuỗi công cụ dịch của PyPy (và quan trọng hơn, không có hạn chế chính mình đối với RPython).
Chúc mừng, fijal
Dường như một cái gì đó hoàn toàn mang tính cách mạng từ chỉ cần đọc các mô tả,
Theo như tôi biết, PyPy là cuốn tiểu thuyết theo nghĩa là nó là hệ thống đầu tiên được thiết kế rõ ràng cho triển khai các ngôn ngữ. Các công cụ khác tồn tại để trợ giúp với phần lớn giao diện người dùng, chẳng hạn như trình tạo phân tích cú pháp, hoặc cho kết thúc rất ngược lại, chẳng hạn như tạo mã, nhưng không tồn tại nhiều để kết nối cả hai.
- 1. Tôi có thể tìm hiểu về chuỗi JNDI ở đâu?
- 2. Tôi có thể tìm hiểu thêm về tối ưu hóa "thuộc địa" ở đâu?
- 3. Tôi có thể tìm hiểu thêm về trình tối ưu hóa Perl ở đâu và ở đâu?
- 4. Tôi có thể tìm hiểu về hệ thống đề xuất ở đâu?
- 5. Tôi có thể tìm mã nguồn cho chức năng Square Root của Java ở đâu?
- 6. Tôi có thể tìm các bản triển khai gốc của các chức năng này ở đâu?
- 7. Tôi có thể tìm hiểu về việc xây dựng AST cho các macro Scala ở đâu?
- 8. Tôi có thể bắt đầu tìm hiểu về Công cụ Quy tắc ở đâu?
- 9. Tôi có thể tìm hiểu về hoạt động ở mức độ thấp của máy tính ở đâu?
- 10. Tôi có thể tìm tài liệu về Hpricot ở đâu?
- 11. Tôi có thể tìm thêm thông tin về cờ D_GLIBCXX_DEBUG và DNDEBUG ở đâu?
- 12. Tôi có thể tìm các thuật toán nhân và chia nhỏ ở đâu?
- 13. Về chủ đề jQuery Themeroller, tôi có thể tìm thêm ở đâu?
- 14. Tôi có thể tìm GACUtil ở đâu?
- 15. Tôi có thể tìm hiểu cách kết hợp các thuật toán và cấu trúc dữ liệu ở đâu?
- 16. Tôi có thể tìm mẫu ASP.NET MVC tốt ở đâu?
- 17. Tôi có thể tìm mã nguồn của gitk ở đâu?
- 18. Tôi có thể tìm mã nguồn Flex ở đâu?
- 19. Tôi có thể tìm tài liệu cho BlueZ ở đâu?
- 20. Tôi có thể lấy thông tin kỹ thuật về cách thức nội bộ của Django hoạt động ở đâu?
- 21. Tôi bắt đầu tìm hiểu về lập trình GUI ở đâu?
- 22. Tôi có thể tìm thông dịch viên/biên dịch ngôn ngữ Dart ở đâu?
- 23. Tôi có thể tìm hiểu về thiết kế kiến trúc dự án C# thích hợp ở đâu?
- 24. Tôi có thể tìm tài liệu về các tùy chọn `.. * ..` ggplot ở đâu?
- 25. Tôi có thể tìm thấy triển khai XMLHttpRequest ở đâu?
- 26. Tôi có thể tìm các thuật toán đóng gói thùng 2d mã nguồn mở ở đâu?
- 27. Tôi có thể tìm thấy tất cả Ghi chú kỹ thuật và Giải pháp kỹ thuật của Apple ở đâu?
- 28. Tôi có thể tìm các ví dụ rõ ràng về MVC ở đâu?
- 29. Tôi có thể tìm đầu đọc Lisp ở đâu?
- 30. Tôi có thể tìm System.Web.Helpers, System.Web.WebPages và System.Web.Razor ở đâu?
Liên kết đã chết (PyPy đã di chuyển). Đây có phải là cùng một tài liệu không? http://pypy.readthedocs.org/en/latest/translation.html – leewz
@leewangzhong Có thể là, nhưng tôi e rằng tôi không chắc chắn về mối liên kết ban đầu trông như thế nào vào thời điểm này. – rcreswick
Ồ vâng, chúng tôi có cách để tìm hiểu. https://web.archive.org/web/20111227090444/http://codespeak.net/pypy/dist/pypy/doc/translation.html. Worth một bản cập nhật cho câu trả lời của bạn? – leewz