Có thông dịch viên cho C không? [đóng cửa]


111

Tôi đã tự hỏi liệu có thứ gì đó giống như một trình thông dịch cho C. Tức là, trong một thiết bị đầu cuối Linux, tôi có thể nhập "python" và sau đó viết mã trong trình thông dịch đó. (Tôi không chắc người phiên dịch từ đúng). Điều này thực sự hữu ích cho việc thử nghiệm những thứ khác nhau và tôi tò mò liệu điều gì đó tương tự có tồn tại đối với C. Mặc dù tôi nghi ngờ điều đó. Điều duy nhất tôi có thể nghĩ đến sẽ làm được điều đó là vỏ C ...


5
Từ chính xác cho những gì bạn muốn là "shell" hoặc "prompt" hoặc "REPL" (Read-Eval-Print-Loop, liên quan đến 4 lệnh Lisp phải được kết hợp để tạo trình thông dịch Lisp trong Lisp), nhưng một thông dịch viên sẽ hoạt động.
Chris Lutz

1
Ngoài ra, thuật ngữ bạn đang tìm kiếm là REPL (Đọc Đánh giá Vòng lặp In).
tsimon


Từ được ưu tiên thực sự là môi trường "tương tác" đối với C. Một môi trường tương tác mở ra một trình bao hoặc dấu nhắc cụ thể cho ngôn ngữ. REPL cũng tốt.
jcchuks

Bạn có thể tìm thấy danh sách toàn diện các trình thông dịch và trình biên dịch cho C / C ++ tại đây: thefreecountry.com/compilers/cpp.shtml
froggsy

Câu trả lời:


71

Có rất nhiều - nếu bạn thu hẹp phạm vi câu hỏi của mình, chúng tôi có thể đề xuất một số câu hỏi cụ thể cho nhu cầu của bạn.

Một trình thông dịch đáng chú ý là " Ch: AC / C ++ Interpreter for Script Computing " được trình bày chi tiết trong Tiến sĩ Dobbs:

Ch là một trình thông dịch C hoàn chỉnh hỗ trợ tất cả các tính năng ngôn ngữ và thư viện tiêu chuẩn của Tiêu chuẩn ISO C90, nhưng mở rộng C với nhiều tính năng cấp cao như kiểu chuỗi và mảng tính toán như các đối tượng hạng nhất.

Chuẩn Ch là phần mềm miễn phí nhưng không phải là mã nguồn mở. Chỉ Ch chuyên nghiệp mới có khả năng lập kế hoạch và các tính năng khác mà người ta có thể muốn.

Tôi chưa bao giờ xem xét điều này trước đây, nhưng việc có trình thông dịch ac trên tay nghe có vẻ rất hữu ích và tôi có thể sẽ thêm một số thứ vào bộ công cụ của mình. Cảm ơn vì câu hỏi!


Biên tập:

Chỉ cần phát hiện ra rằng một trong những trình biên dịch yêu thích của tôi, TCC , sẽ thực thi các tập lệnh C:

Nó cũng xử lý các tệp kịch bản C (chỉ cần thêm dòng shebang "#! / Usr / local / bin / tcc -run" vào dòng đầu tiên của tệp mã nguồn C của bạn trên Linux để nó được thực thi trực tiếp.

TCC có thể đọc mã nguồn C từ đầu vào chuẩn khi '-' được sử dụng thay cho 'infile'. Thí dụ:

echo 'main(){puts("hello");}' | tcc -run -

2
Tôi ước một phiên bản CH có sẵn theo giấy phép được OSI chấp thuận, để nó có thể được phân phối. Bạn có thể thiết kế các tiện ích thực sự đẹp mắt bằng cách sử dụng trình thông dịch của họ, tiếc là chúng quá khó để kết hợp.
Tim Post

Thật là tốt. Phần mềm miễn phí là tốt hơn so với không có gì, nhưng cho đến khi ai đó làm nó ...
Adam Davis

Kỳ lạ thay, tccthoát với trạng thái 10theo mặc định. Dường như bạn có thêm một cách rõ ràng return 0hiếnecho 'main(){puts("hello"); return 0;}' | tcc -run -
Gregory Nisbet

18

picoc - Một trình thông dịch C rất nhỏ

PicoC là một trình thông dịch C rất nhỏ để viết script. Ban đầu nó được viết dưới dạng ngôn ngữ script cho hệ thống bay trên máy bay của UAV. Nó cũng rất thích hợp cho các ứng dụng robot, nhúng và không nhúng khác.


9

dự án ROOT cung cấp một trình thông dịch C và C ++ rất chức năng được gọi là Cint . Tôi khá thích nó. Tuy nhiên, cần một chút làm quen với cách diễn giải.

TCC cũng là một lựa chọn rất tốt, nhưng tôi không thể đảm bảo cho REPL của nó


1
Không phải nhóm ROOT đang loại bỏ Cint sao?
Z boson

@Zboson "CERN đã chuyển sang một trình thông dịch mới, xin hãy giữ. CINT không được CERN hỗ trợ nữa"
endolith

ROOT thay thế cint bằng bám. Vì vậy, bám có thể được coi là khuyến nghị cập nhật. (mặc dù - xem câu trả lời khác - bám là C ++, C không, nếu có liên quan, mặc dù iirc CInt cũng đã làm một số C ++)
pseyfert


7

Đưa ra một cái nhìn cho Thông dịch viên Ch .

Ch là một trình thông dịch C / C ++ có thể nhúng để tạo tập lệnh đa nền tảng, lập trình shell, vẽ đồ thị 2D / 3D, tính toán số và tập lệnh nhúng.


6

Tôi biết chúng tôi sử dụng CINT trong lớp. Nó có vẻ khá tốt, bạn có thể muốn thử!




3

ccons xuất hiện để đáp ứng các ràng buộc của bạn:

Mục tiêu của dự án ccons là tạo ra một bảng điều khiển tương tác cho ngôn ngữ lập trình C, tương tự như "python" và "irb" cho Python và Ruby tương ứng. Dự án xây dựng trên đầu trang của clang và llvm.




1

Nó đã được thực hiện, mặc dù phần lớn công việc C được biên dịch. Một ví dụ là CH


0

CERN có một bộ công cụ được gọi là ROOT, được dùng chủ yếu cho các mục đích khoa học hoặc phân tích dữ liệu, v.v. nhưng nó có một Trình thông dịch C / C ++ dựa trên Clang được gọi Cling.

Họ đã sử dụng một thông dịch viên C gọi là CINT trước khi họ thích nghi Cling. CINT nhẹ và dường như vẫn có sẵn để tải xuống.

Tôi nghĩ rằng bạn có thể nhận được một số khác bằng cách tìm kiếm cẩn thận qua các bài viết trong danh sách Wikipedia.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.