Apakah ada penerjemah untuk C? [Tutup]

111

Saya bertanya-tanya apakah ada sesuatu seperti penerjemah untuk C. Yaitu, di terminal Linux saya bisa mengetikkan "python" dan kemudian kode di penerjemah itu. (Saya tidak yakin penerjemah kata yang tepat). Ini sangat membantu untuk menguji hal-hal yang berbeda dan saya ingin tahu apakah ada sesuatu yang serupa untuk C. Meskipun saya meragukannya. Satu-satunya hal yang dapat saya pikirkan yang akan melakukannya adalah C shell ...

devin
sumber
5
Kata yang benar untuk apa yang Anda inginkan adalah "shell" atau "prompt" atau "REPL" (Read-Eval-Print-Loop, mengacu pada perintah 4 Lisp yang harus digabungkan untuk membuat juru bahasa Lisp di Lisp), tetapi penerjemah akan bekerja.
Chris Lutz
1
Selain itu, istilah yang Anda cari adalah REPL (Read Evaluate Print Loop).
tsimon
duplikat dari Apakah ada REPL untuk pemrograman C?
Janus Troelsen
Kata yang disukai sebenarnya adalah lingkungan "interaktif" untuk C. Lingkungan interaktif membuka shell atau prompt khusus untuk bahasa tersebut. REPL juga bagus.
jcchuks
Daftar lengkap interpreter dan compiler untuk C / C ++ dapat ditemukan di sini: thefreecountry.com/compilers/cpp.shtml
froggsy

Jawaban:

71

Ada banyak - jika Anda mempersempit cakupan pertanyaan Anda, kami mungkin dapat menyarankan beberapa yang spesifik untuk kebutuhan Anda.

Penerjemah terkenal adalah " Ch: AC / C ++ Interpreter for Script Computing " yang dirinci di Dr. Dobbs:

Ch adalah juru bahasa C lengkap yang mendukung semua fitur bahasa dan pustaka standar Standar ISO C90, tetapi memperluas C dengan banyak fitur tingkat tinggi seperti tipe string dan array komputasi sebagai objek kelas satu.

Standar ch adalah freeware tetapi bukan open source. Hanya Ch professional yang memiliki kemampuan plotting dan fitur lain yang mungkin diinginkan.

Saya belum pernah melihat ini sebelumnya, tetapi memiliki juru bahasa ac kedengarannya sangat berguna, dan sesuatu yang kemungkinan akan saya tambahkan ke perangkat saya. Terima kasih atas pertanyaannya!


Edit:

Baru saja mengetahui bahwa salah satu kompiler favorit saya, TCC , akan menjalankan skrip C:

Ini juga menangani file skrip C (cukup tambahkan baris shebang "#! / Usr / local / bin / tcc -run" ke baris pertama file kode sumber C Anda di Linux agar dapat dijalankan secara langsung.

TCC dapat membaca kode sumber C dari input standar ketika '-' digunakan sebagai pengganti 'infile'. Contoh:

echo 'main(){puts("hello");}' | tcc -run -
Adam Davis
sumber
2
Saya berharap versi CH tersedia di bawah lisensi yang disetujui OSI, sehingga dapat didistribusikan. Anda dapat merancang utilitas yang sangat bagus menggunakan penerjemah mereka, sayangnya mereka terlalu bermasalah untuk digabungkan.
Pos Tim
Itu akan menyenangkan. Freeware lebih baik daripada tidak sama sekali, tetapi sampai seseorang melakukannya ...
Adam Davis
Anehnya, tcckeluar dengan status 10secara default. Sepertinya Anda harus secara eksplisit menambahkan return 0pemberianecho 'main(){puts("hello"); return 0;}' | tcc -run -
Gregory Nisbet
18

picoc - Seorang juru bahasa C yang sangat kecil

PicoC adalah juru bahasa C yang sangat kecil untuk skrip. Ini awalnya ditulis sebagai bahasa skrip untuk sistem penerbangan on-board UAV. Ini juga sangat cocok untuk aplikasi robotik, tertanam dan non-tertanam lainnya.

aleroot
sumber
9

proyek ROOT menyediakan juru bahasa C dan C ++ yang sangat fungsional yang disebut Cint . Saya cukup menyukainya. Namun, perlu sedikit membiasakan diri untuk menafsirkannya.

TCC juga merupakan pilihan yang sangat bagus, tetapi saya tidak dapat menjamin REPL-nya

SingleNegationElimination
sumber
1
Bukankah tim ROOT sedang menghentikan Cint secara bertahap?
Z boson
@Zboson "CERN telah beralih ke penerjemah baru, melekat. CINT tidak lagi didukung oleh CERN"
endolith
ROOT menggantikan cint dengan melekat. Jadi kemelekatan dapat dianggap sebagai rekomendasi yang diperbarui. (meskipun - lihat jawaban lain - cling adalah C ++, bukan C, jika itu relevan, meskipun iirc cint juga melakukan beberapa C ++)
pseyfert
7

Coba lihat Ch Interpreter .

Ch adalah interpreter C / C ++ yang dapat disematkan untuk skrip lintas platform, pemrograman shell, plotting 2D / 3D, komputasi numerik, dan skrip yang disematkan.

CMS
sumber
6

Saya tahu kami menggunakan CINT di kelas. Tampaknya cukup bagus Anda mungkin ingin mencobanya!

Javed Ahamed
sumber
3

ccons tampaknya memenuhi batasan Anda:

Tujuan dari proyek ccons adalah untuk membuat konsol interaktif untuk bahasa pemrograman C, mirip dengan "python" dan "irb" untuk Python dan Ruby. Proyek ini dibangun di atas dentang dan llvm.

icktoofay
sumber
1

Itu telah dilakukan, meskipun sebagian besar pekerjaan C telah dikompilasi. Salah satu contohnya adalah CH

Rob Lachlan
sumber
0

CERN memiliki toolkit yang disebut ROOT, yang dimaksudkan terutama untuk tujuan analisis ilmiah atau data dll. Tetapi CERN memiliki Penerjemah C / C ++ berbasis Clang yang disebut Cling.

Mereka menggunakan penerjemah C yang disebut CINT sebelum mereka beradaptasi Cling. CINT ringan & sepertinya masih tersedia untuk diunduh.

Saya pikir Anda bisa mendapatkan yang lain dengan mencari dengan cermat melalui artikel daftar Wikipedia.

pengguna9600383
sumber