2008-08-26 36 views
10

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

5

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)

+1

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

+0

@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

+0

Ồ 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

2

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ị.

3

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 ".

3

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

1

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.

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