C için tercüman var mı? [kapalı]


111

C için yorumlayıcı gibi bir şey olup olmadığını merak ediyordum. Yani, bir Linux terminalinde "python" yazıp o yorumlayıcıda kod yazabilirim. (Tercümanın doğru kelime olduğundan emin değilim). Bu, farklı şeyleri test etmek için gerçekten yararlı ve C için benzer bir şey olup olmadığını merak ediyorum. Bunun işe yarayacağını düşünebildiğim tek şey C kabuğu ...


5
İstediğiniz şey için doğru kelime "kabuk" veya "bilgi istemi" veya "REPL" dir (Lisp'de bir Lisp yorumlayıcısı yapmak için birleştirilmesi gereken 4 Lisp komutuna referansla Oku-Değerlendir-Yazdır-Döngüsü), ancak bir tercüman çalışırdı.
Chris Lutz

1
Bir kenara, aradığınız terim REPL'dir (Değerlendir Baskı Döngüsünü Okuyun).
tsimon


C için tercih edilen kelime aslında "etkileşimli" ortamdır. Etkileşimli bir ortam, dile özgü bir kabuk veya bilgi istemini açar. REPL de iyidir.
jcchuks

C / C ++ için kapsamlı bir yorumlayıcı ve derleyici listesi burada bulunabilir: thefreecountry.com/compilers/cpp.shtml
froggsy

Yanıtlar:


71

Pek çok var - sorunuzun kapsamını daraltırsanız, ihtiyaçlarınıza özel bazılarını önerebiliriz.

Dikkate değer bir tercüman, Dr. Dobbs'da ayrıntılı olarak açıklanan " Ch: AC / C ++ Interpreter for Script Computing " dir:

Ch, ISO C90 Standardının tüm dil özelliklerini ve standart kitaplıklarını destekleyen, ancak C'yi birinci sınıf nesneler olarak dize türü ve hesaplama dizileri gibi birçok üst düzey özellik ile genişleten eksiksiz bir C yorumlayıcısıdır.

Ch standardı ücretsiz bir yazılımdır ancak açık kaynak değildir. Yalnızca Ch profesyonelinin çizim yetenekleri ve isteyebileceği diğer özellikler vardır.

Buna daha önce hiç bakmadım, ancak elinizin altında bir ac tercümanın olması kulağa çok faydalı geliyor ve muhtemelen araç setime ekleyeceğim bir şey. Soru için teşekkürler!


Düzenle:

En sevdiğim derleyicilerden biri olan TCC'nin C komut dosyalarını çalıştıracağını öğrendim :

Ayrıca C betik dosyalarını da işler (doğrudan çalıştırılması için Linux'taki C kaynak kodu dosyanızın ilk satırına "#! / Usr / local / bin / tcc -run" shebang satırını ekleyin.

TCC, 'infile' yerine '-' kullanıldığında standart girişten C kaynak kodunu okuyabilir. Misal:

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

2
Keşke CH'nin bir sürümü OSI onaylı bir lisans altında mevcut olsaydı, böylece dağıtılabilirdi. Tercümanlarını kullanarak gerçekten güzel araçlar tasarlayabilirsiniz, ne yazık ki bunlar bir araya getirilemeyecek kadar sorunludur.
Tim Post

İyi olur. Ücretsiz yazılım hiç yoktan iyidir, ancak birisi bunu yapana kadar ...
Adam Davis

Garip bir şekilde, varsayılan tccolarak durumla çıkar 10. Açıkça bir return 0bağış eklemeniz gerekiyor gibi görünüyorecho 'main(){puts("hello"); return 0;}' | tcc -run -
Gregory Nisbet

18

picoc - Çok küçük bir C yorumlayıcısı

PicoC, komut dosyası oluşturmak için çok küçük bir C yorumlayıcısıdır. Başlangıçta bir İHA'nın yerleşik uçuş sistemi için yazı dili olarak yazılmıştır. Diğer robotik, gömülü ve gömülü olmayan uygulamalar için de çok uygundur.


9

ROOT projesi, Cint adında çok işlevsel bir C ve C ++ yorumlayıcısı sağlar . Ben oldukça beğeniyorum. Yine de yorumlamaya alışmak biraz zaman alıyor.

TCC de çok iyi bir seçim, ancak REPL için kefil olamıyorum


1
ROOT ekibi Cint'i aşamalı olarak bırakmıyor mu?
Z bozonu

@Zboson "CERN yeni bir tercümana geçti, tutun. CINT artık CERN tarafından desteklenmiyor"
endolith

KÖK, cint'i sarılmakla değiştirdi. Dolayısıyla, güncel bir öneri olarak sarılmak alınabilir. (yine de - diğer yanıtlara bakın - cling, C ++ değil, ilgiliyse, iirc cint de biraz C ++ yapmış olsa da)
pseyfert


7

Ch Interpreter'e bir göz atın .

Ch, platformlar arası komut dosyası oluşturma, kabuk programlama, 2D / 3D çizim, sayısal hesaplama ve gömülü komut dosyası oluşturma için gömülebilir bir C / C ++ yorumlayıcısıdır.


6

Sınıfta CINT kullandığımızı biliyorum. Denemek isteyebileceğin oldukça iyi görünüyordu!




3

ccons , kısıtlamalarınızı karşılıyor gibi görünüyor:

Ccons projesinin amacı, C programlama dili için, sırasıyla Python ve Ruby için "python" ve "irb" ye benzer bir etkileşimli konsol oluşturmaktır. Proje clang ve llvm üzerine inşa edilmiştir.




1

C çalışmasının büyük çoğunluğu derlenmiş olmasına rağmen yapılmıştır. Bir örnek CH


0

CERN, temelde bilimsel veya veri analizi vb. Amaçlar için kullanılan ROOT adında bir araç setine sahiptir, ancak Clang tabanlı bir C / C ++ Yorumlayıcısı vardır Cling.

Uyum sağlamadan önce CINT adında bir C tercümanı kullanıyorlardı Cling. CINT hafiftir ve hala indirilebilir görünmektedir.

Wikipedia listesindeki makaleleri dikkatlice araştırarak başkalarını da edinebileceğinizi düşünüyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.