2008-12-11 42 views
31

Có một nơi tốt đẹp để học tập lệnh JVM bytecode hay không. Các đặc điểm kỹ thuật có lẽ và có thể một số hướng dẫn?Đặc tả mã byte Java

Tôi hỏi vì tôi muốn thiết kế ngôn ngữ đồ chơi và trình biên dịch cho nó tạo ra bytecode JVM.

Cảm ơn kiến ​​thức của bạn và có lẽ là googling.

Trả lời

4

Cũng hữu ích là các bộ phân tách javap và bộ điều khiển bytecode như ASMBCEL, ngay cả khi tất cả những gì bạn muốn làm là xác minh các lớp học của bạn.

1

Điều này chuyên sâu hơn một chút, nhưng here là bản trình bày trực tuyến về cách tối ưu hóa bytecode được tạo để chạy trên JVM. Nó được trình bày tại các hội nghị JVM Languages Summit gần đây. InfoQ có a collection of presentations từ hội nghị đó có thể giúp đỡ người muốn đưa lên một ngôn ngữ trên JVM (hoặc để xem những gì đã được thực hiện).

4

Sách Programming for the Java Virtual Machine giải thích tập lệnh JVM và cách viết mã cho nó. Nó cũng giới thiệu một bộ mã hóa bytecode được gọi là Oolong, mà tôi đã không thể tải xuống. Tuy nhiên, bạn có thể sử dụng Jasmin, tiền thân của Oolong. Về cơ bản, bạn viết một tệp văn bản có hướng dẫn và Jasmin sẽ nhổ ra một tệp .class. Cuốn sách đã được xuất bản vào năm 1999, nhưng nó vẫn là một giới thiệu tốt và nhẹ nhàng cho máy ảo.

+1

Jasmin không được duy trì và thiếu hỗ trợ cho nhiều tính năng của lớp học. Tôi khuyên bạn nên sử dụng Krakatau Assembler để thay thế, tương thích ngược với Jasmin nhưng mạnh hơn rất nhiều. (Tiết lộ: Tôi đã viết nó). – Antimony

2

Để bắt đầu, tôi khuyên bạn nên tạo mã Java từ ngôn ngữ của bạn.

Điều này sẽ giúp việc đọc và gỡ lỗi đơn giản hơn nhiều.

2

Có thể xem Preon's example on how to parse a Java class file. Nó có một biểu diễn khá đầy đủ của bytecode trong một mô hình đối tượng Java.

+0

Liên kết đã chết: không có kho lưu trữ có tên đó. – GKFX

+0

Cảm ơn GKFX, đã sửa nó. –

2

Một phiên bản mới của đặc tả đã được phát hành:

The Java Virtual Machine Specification, Java SE 7 Edition

bổ sung mới này không loại trừ các chương về Java Các khái niệm ngôn ngữ lập trình mà folks có thể hoặc không thể thấy hữu ích. Xem here cho chương đó trong Ấn bản thứ hai của thông số kỹ thuật.

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