2009-07-21 24 views
27

Có ai có thể trỏ đến ngôn ngữ lập trình có cú pháp giống như python, nhưng ngay từ đầu đã được thiết kế để tạo mã gốc? Tôi chỉ biết Boo, nhưng nó sử dụng .net, không phải là tạo mã gốc. Vâng, nếu không có gì khác hơn so với ngôn ngữ python giống như tạo ra. Net/java bytecode cũng tốt.Ngôn ngữ lập trình với cú pháp giống như python nhưng tạo mã gốc

Trả lời

13

Cython có thể làm - mã C mà nó tạo ra là dành cho các phần mở rộng Python, nhưng toàn bộ điều có thể được đóng gói và bạn sẽ chạy mã gốc trong suốt (sau khi nhập ';';).

3

Nếu bạn hài lòng với thứ gì đó biên dịch sang mã Java bytecode, bạn có thể xem Jython. Trích dẫn từ số FAQ:

JPython là triển khai ngôn ngữ lập trình Python được thiết kế để chạy trên nền Java (tm). Nó bao gồm một trình biên dịch để biên dịch mã nguồn Python xuống Java bytecode có thể chạy trực tiếp trên JVM, một bộ các thư viện hỗ trợ được sử dụng bởi các bytecode Java đã biên dịch và hỗ trợ thêm để làm cho nó tầm thường để sử dụng các gói Java từ bên trong JPython .

Tôi chưa thực sự sử dụng nó nhưng đang xem xét nó trên một số dự án mà tôi phải tích hợp với một cơ sở mã Java hiện có.

HTH

+0

Java bytecode = mã gốc –

+2

@Ed - đọc câu hỏi!. Anh ta nói "À, nếu không có gì khác ngoài các ngôn ngữ giống như python tạo ra. Bytecode .net/java cũng được." – Rad

+0

Touche, tôi nên đọc kỹ hơn. –

1

Bạn cũng có thể điều tra IronPython - một inplementation python trên NET framework

+2

* sigh * .NET KHÔNG phải là mã gốc. Ít nhất, không theo mặc định, anyway. Đó là một máy ảo, như Java. –

11

Tôi phải thừa nhận rằng tôi không hoàn toàn hiểu câu hỏi của bạn, vì hai lý do:

  1. Bạn đang yêu cầu một ngôn ngữ với việc tạo mã gốc, nhưng việc tạo mã gốc không liên quan gì đến ngôn ngữ, nó là một đặc điểm của việc thực hiện. Mọi ngôn ngữ đều có thể triển khai bằng cách tạo mã gốc. Một số triển khai Python có tạo mã gốc. Có các trình biên dịch C biên dịch sang mã byte bytecode của JVM, mã byte CIL hoặc thậm chí là mã nguồn ECMAScript. Thậm chí có cả thông dịch viên C . Ngoài ra còn có các trình biên dịch biên dịch mã nguồn Java hoặc mã bytecode JVM thành mã gốc.

  2. Tại sao bạn quan tâm đến cú pháp? Nó có lẽ là yếu tố quan trọng nhất về việc chọn một ngôn ngữ lập trình.

Dù sao, Nimrod là một ngôn ngữ lập trình trong đó có một thực hiện hỗ trợ thế hệ mã gốc (hay chính xác hơn một thực hiện hỗ trợ thế hệ mã nguồn C) và có cú pháp là một lai giữa phong cách Wirthian (bởi vẻ của nó là những ảnh hưởng quan trọng nhất là Oberon và Delphi) và Python.

Tuy nhiên, thực tế là cú pháp Pythonic sẽ không giúp ích gì cho bạn nếu bạn không thích thiết kế ngôn ngữ kiểu Châu Âu hoặc OOP theo phong cách Wirth.

+4

Không thực sự. Một ngôn ngữ lập trình nói chung là: Cú pháp ngôn ngữ + các thư viện lõi + môi trường nơi nó chạy. Hãy suy nghĩ về nó một ngôn ngữ lập trình OO có lớp gốc không phải là 'java.lang.Object' nhưng' System.Object' không phải là Java nhưng C#: P – OscarRyz

+11

Tôi đồng ý. Một ngôn ngữ lập trình với hiệu suất tuyệt vời nhưng cú pháp tẻ nhạt giống như một con dao cực kỳ sắc bén nhưng có kim trên tay cầm. Ngoài ra, không có thứ như "thiết kế ngôn ngữ kiểu châu Âu". – paniq

+3

OP muốn một cái gì đó "ngay từ đầu đã được thiết kế để tạo ra mã nguồn gốc". Rất nhiều ngôn ngữ, ví dụ như Python, làm cho việc tạo mã nguồn gốc rất khó khăn vì một số tính năng động nhất định. Trong khi nhiều người khác chỉ hơi khác nhau, nhưng có thể được biên dịch thành mã gốc rất dễ dàng (ví dụ Nimrod). Vì vậy, tôi không đồng ý với điểm đầu tiên của bạn. – Ponkadoodle

7

Cũng được tìm thấy hôm nay Delight áp dụng cú pháp Python trên đầu cuối D.

Converge quá.

3

PyPy là một dự án để triển khai lại Python bằng Python.Một trong những mục tiêu của nó là cho phép sử dụng nhiều back-end, bao gồm C. Vì vậy, bạn có thể lấy một chương trình Python thuần túy, chuyển đổi nó thành C và biên dịch nó thành mã gốc. Nó vẫn là một công việc đang được tiến hành, vì vậy có lẽ không phù hợp với mã sản xuất.

6

shedskin biên dịch Python để C++

Từ shedskin trang dự án

Shed Skin là một trình biên dịch thực nghiệm, mà có thể dịch tinh khiết, nhưng ngầm tĩnh gõ chương trình Python vào tối ưu hóa C++. Có thể tạo các chương trình độc lập hoặc mô-đun mở rộng có thể được nhập và được sử dụng trong các chương trình Python lớn hơn.

7

Check-out Cobra

Nó được ảnh hưởng mạnh bởi Python, C#, Eiffel, Objective-C và các ngôn ngữ lập trình khác. Nó hỗ trợ cả gõ tĩnh và động. Nó có hỗ trợ lớp học đầu tiên cho các bài kiểm tra đơn vị và hợp đồng. Cobra cung cấp cả sự phát triển nhanh chóng và hiệu suất trong cùng một ngôn ngữ.

+1

Cobra trông khá. Tôi đặc biệt thích các số thực CORRECT theo mặc định: mặc dù nó là an toàn hợp lý thường xuyên, "mất mát" điểm nổi nên chỉ bao giờ là một tối ưu hóa được sử dụng khi nó an toàn, không bao giờ mặc định. Tuy nhiên, Cobra KHÔNG tạo ra mã gốc, thật đáng buồn. Nó chạy trên .NET, là một máy ảo. Điều đó có thể tạo ra sự khác biệt lớn, khi bạn viết mã xử lý gigabyte dữ liệu mà mỗi mục trong đó có một số chi phí trên máy ảo chẳng hạn. Nimrod là con đường để đến đây, với D là một lựa chọn hợp lý. –

+1

Cobra * thực hiện * tạo mã gốc nếu bạn muốn. Chạy nó trên máy ảo không phải là một yêu cầu. Không cần phải đi với D hoặc Nim –

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