2009-04-04 33 views
13

Tôi thấy tất cả các ngôn ngữ mới cho .NET và JVM. Làm thế nào để bắt đầu làm một?Cách tạo ngôn ngữ .Net hoặc JVM?

Tôi không thể tìm thấy bất kỳ tài liệu hay nào về thông số kỹ thuật của JVM hoặc MSIL.

Sửa

Tôi đã biết làm thế nào để phân tích, tôi quan tâm nhiều hơn trong cách có rất nhiều người làm ngôn ngữ mới được dựa trên các nền tảng.

Trả lời

7

Bạn thật may mắn. Có một sự bùng nổ của các ngôn ngữ đang được phát triển cho .NET, và có những bài báo/tài nguyên nhắm vào các cá nhân như chính bạn (không chỉ các tập đoàn lớn với hàng tấn tiền đầu tư).

Tìm kiếm "thời gian chạy ngôn ngữ động" và đi từ đó.

Dưới đây là một số liên kết:

Blog of the guy who is the brain behind IronPython

The home of the Dynamic Language Runtime

An article about how IronPython was implemented

A blog posting talking about abstract syntax trees and the DLR

4

Java Virtual Machine Specifications, Second Edition có sẵn trực tuyến.

Người ta có thể nhắm mục tiêu các JVM bằng việc có một cách viết một trình biên dịch mà tạo ra Java bytecode (được định nghĩa trong các thông số kỹ thuật JVM.)

Hoặc, bằng cách sử dụng thư viện hiện có như Apache BCEL, người ta có thể sản xuất class hồ sơ hợp lệ thông qua một chương trình Java mà không cần phải thực sự thao tác bytecode ở mức byte.

3

MSIL không được gọi MSIL nữa, như một tiêu chuẩn nào đó là CIL (Common Ngôn ngữ trung gian), một phần của CLI (Common Language Infrastruc) ture) tiêu chuẩn.

Dưới đây là thông số kỹ thuật tiêu chuẩn ECMA-335 CLI.

0

Đối với .NET, bạn có thể sử dụng cây biểu thức của DLR hoặc thậm chí biên dịch sang một ngôn ngữ cấp cao hiện có như C# hoặc Java và sau đó biên dịch nó. Một số ngôn ngữ không phải VM cao cấp (liek Haskell và Eiffel) biên dịch thành C. Nếu bạn muốn biên dịch sang MSIL hoặc bytecode JVM, bạn có thể sử dụng Mono.Cecil hoặc BCEL để làm dễ dàng hơn.

1

trả lời cho câu hỏi Cập nhật:

Tôi đã biết làm thế nào để phân tích, tôi hơn quan tâm đến cách có rất nhiều người làm ngôn ngữ mới mà dựa trên các nền tảng.

Điều gì cho phép nhiều người phát triển ngôn ngữ cho các nền tảng này có lẽ là một số ví dụ rất hoàn chỉnh với mã nguồn công khai.

Thông số kỹ thuật của các nền tảng có sẵn để tải xuống và không mất nhiều thời gian cho những người đã có kinh nghiệm bằng cách viết trình biên dịch để tạo các chương trình phụ mới cho các trình biên dịch hiện có của họ.

Microsoft tự xuất bản Rotor, cũng có tất cả là Mono. Ngoài ra còn có nhiều kỹ thuật phổ biến cho việc tạo mã thời gian chạy để xây dựng các lớp trình bao bọc đơn giản khi đang bay - đây cũng là các trình biên dịch nhỏ.

Trình biên dịch C# khá nhanh và hiển thị hầu hết các tiện ích của CLR theo cách trực tiếp, vì vậy bạn có thể viết trình biên dịch chỉ tạo các tệp C# tạm thời và sau đó nhận trình biên dịch C# để hoàn thành công việc.

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