2009-04-17 30 views
14

Có cách nào tôi có thể chạy mã C++ như được giải thích thay vì biên dịch không? vì vậy tôi có thể chỉnh sửa mã và viết các chức năng khi đang di chuyển?chạy diễn giải C++?


liên quan:

+1

Trong khi có thể, đây không phải là thực sự là một ý tưởng tốt. C++ thực sự không phù hợp với phiên dịch. Sức mạnh cơ bản của nó - tốc độ - đã biến mất, những thiếu sót của nó (tương đối thấp, không kiểm tra lỗi đối với các con trỏ sai vv) vẫn còn đó. Không phải mọi thứ đều có thể được thực hiện trong phiên dịch. Có rất nhiều ngôn ngữ thông dịch phù hợp hơn rất nhiều, và có các trình biên dịch jit cho C++ - "biên dịch và chạy", làm cho nó hoạt động rất giống với trình thông dịch từ quan điểm của người dùng trong khi thực tế được biên dịch. –

Trả lời

10

Hãy xem Ch, một nhúng C++ thông dịch viên.

Ch là một C nhúng/C++ phiên dịch cho cross-platform kịch bản, bao lập trình, 2D/3D âm mưu, số máy tính, và kịch bản nhúng. Ch là miễn phí và thân thiện với người dùng thay thế cho trình biên dịch C/C++ cho người mới bắt đầu học C/C++.

+0

Tôi vẫn tự hỏi tại sao không có phiên bản mã nguồn mở của ch. có lẽ vì không ai cần nó? – jokoon

2

CINT (readme) chắc chắn có đơn bước. Tôi không chắc chắn về sửa đổi trên bay, mặc dù.

5

Ch và CInt (thường là một phần của hệ thống ROOT) sẽ giải thích C++. Tuy nhiên, kinh nghiệm của tôi với CINT đã không được tốt: hỗ trợ ngôn ngữ không hoàn chỉnh (đặc biệt là khi các mẫu có liên quan), việc thực hiện chậm hơn nhiều, đã có một lịch sử lỗi với ví dụ: phạm vi biến và vòng thoát, và (IMO) nó phức tạp hơn nó có giá trị. Là một ngôn ngữ, C++ được thiết kế đơn giản cho việc sử dụng diễn giải.

Nếu bạn cần để chạy mã giải thích, tại sao không sử dụng một ngôn ngữ diễn giải hiện đại như Python hay Ruby? Một công cụ như SWIG có thể được sử dụng để kết nối chúng với các thư viện C/C++ hiện có nếu cần.

+5

"không được thiết kế" cho thấy nó được thiết kế để sử dụng như vậy.Tôi muốn nói "không được thiết kế và không phù hợp" – MSalters

+0

Java cũng là một ngôn ngữ thông dịch thực sự tốt :) –

0

Điều này không trả lời chính xác câu hỏi của bạn, nhưng có lẽ nó sẽ giúp ích.

Trình biên dịch MS C++ hỗ trợ Chỉnh sửa và Tiếp tục, cho phép bạn dừng, thực hiện thay đổi, biên dịch lại & tiếp tục mà không tắt chương trình của bạn.

0

Tôi đã xem bản trình bày trên ccons tại trại demo của CUSEC vào tháng 1. Mục đích của nó là cung cấp một thông dịch viên tương tác như python's. Đó là trong giai đoạn đầu của nó sau đó nhưng ấn tượng tôi không có ít hơn.

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