Gibt es einen Dolmetscher für C? [geschlossen]

111

Ich habe mich gefragt, ob es so etwas wie einen Interpreter für C gibt. Das heißt, in einem Linux-Terminal kann ich "Python" eingeben und dann diesen Interpreter codieren. (Ich bin nicht sicher, ob ich das richtige Wort interpretiere). Dies ist sehr hilfreich, um verschiedene Dinge auszuprobieren, und ich bin gespannt, ob es für C etwas Ähnliches gibt. Obwohl ich es bezweifle. Das einzige, was ich mir vorstellen kann, wäre die C-Shell ...

devin
quelle
5
Das richtige Wort für das, was Sie wollen, ist "Shell" oder "Eingabeaufforderung" oder "REPL" (Read-Eval-Print-Loop, in Bezug auf die 4 Lisp-Befehle, die verbunden werden müssen, um einen Lisp-Interpreter in Lisp zu erstellen), aber ein Dolmetscher würde funktionieren.
Chris Lutz
1
Abgesehen davon suchen Sie nach REPL (Read Evaluate Print Loop).
Tsimon
Das bevorzugte Wort ist tatsächlich "interaktive" Umgebung für C. Eine interaktive Umgebung öffnet eine Shell oder Eingabeaufforderung, die für die Sprache spezifisch ist. REPL ist auch gut.
Jcchuks
Eine umfassende Liste der Interpreter und Compiler für C / C ++ finden Sie hier: thefreecountry.com/compilers/cpp.shtml
froggsy

Antworten:

71

Es gibt viele - wenn Sie den Umfang Ihrer Frage eingrenzen, können wir möglicherweise einige vorschlagen, die auf Ihre Bedürfnisse zugeschnitten sind.

Ein bemerkenswerter Interpreter ist " Ch: AC / C ++ Interpreter für Script Computing ", beschrieben in Dr. Dobbs:

Ch ist ein vollständiger C-Interpreter, der alle Sprachfunktionen und Standardbibliotheken des ISO C90-Standards unterstützt, C jedoch um viele übergeordnete Funktionen wie Zeichenfolgentyp und Rechenarrays als erstklassige Objekte erweitert.

Ch Standard ist Freeware, aber nicht Open Source. Nur Ch Professional verfügt über die Plotfunktionen und andere Funktionen, die Sie sich wünschen können.

Ich habe mir das noch nie angesehen, aber einen AC-Interpreter zur Hand zu haben, klingt sehr nützlich und wird wahrscheinlich zu meinem Toolset hinzugefügt. Danke für die Frage!


Bearbeiten:

Ich habe gerade herausgefunden, dass einer meiner Lieblings-Compiler, TCC , C-Skripte ausführen wird:

Es verarbeitet auch C-Skriptdateien (fügen Sie einfach die Shebang-Zeile "#! / Usr / local / bin / tcc -run" in die erste Zeile Ihrer C-Quellcodedatei unter Linux ein, damit sie direkt ausgeführt wird.

TCC kann C-Quellcode von der Standardeingabe lesen, wenn '-' anstelle von 'infile' verwendet wird. Beispiel:

echo 'main(){puts("hello");}' | tcc -run -
Adam Davis
quelle
2
Ich wünschte, eine Version von CH wäre unter einer von OSI genehmigten Lizenz verfügbar, damit sie verteilt werden könnte. Sie können wirklich nette Dienstprogramme mit ihrem Interpreter entwerfen, leider sind sie einfach zu problematisch, um sie zu bündeln.
Tim Post
Das wäre nett. Freeware ist besser als nichts, aber bis es jemand tut ...
Adam Davis
Seltsamerweise wird standardmäßig tccmit Status beendet 10. Es sieht so aus, als müssten Sie explizit ein return 0Geben hinzufügenecho 'main(){puts("hello"); return 0;}' | tcc -run -
Gregory Nisbet
18

picoc - Ein sehr kleiner C-Interpreter

PicoC ist ein sehr kleiner C-Interpreter für Skripte. Es wurde ursprünglich als Skriptsprache für das Bordflugsystem eines UAV geschrieben. Es ist auch sehr gut für andere Roboter-, eingebettete und nicht eingebettete Anwendungen geeignet.

aleroot
quelle
9

Das ROOT-Projekt bietet einen sehr funktionalen C- und C ++ - Interpreter namens Cint . Ich mag es sehr gern. Es ist jedoch etwas gewöhnungsbedürftig, sich zu interpretieren.

TCC ist auch eine sehr gute Wahl, aber ich kann nicht für seine REPL bürgen

SingleNegationElimination
quelle
1
Lässt das ROOT-Team Cint nicht auslaufen?
Z Boson
@ Zboson "CERN hat zu einem neuen Interpreter gewechselt, cling. CINT wird von CERN nicht mehr unterstützt"
Endolith
ROOT ersetzte Cint durch Klammern. Das Festhalten kann also als aktualisierte Empfehlung angesehen werden. (obwohl - siehe andere Antworten - klammern ist C ++, nicht C, wenn das relevant ist, obwohl iirc cint auch etwas C ++ gemacht hat)
pseyfert
7

Schauen Sie sich den Ch Interpreter an .

Ch ist ein einbettbarer C / C ++ - Interpreter für plattformübergreifendes Scripting, Shell-Programmierung, 2D / 3D-Plotten, numerisches Computing und Embedded-Scripting.

CMS
quelle
6

Ich weiß, dass wir CINT im Unterricht verwenden. Es schien ziemlich gut, dass Sie es versuchen möchten!

Javed Ahamed
quelle
3

ccons scheint Ihre Einschränkungen zu erfüllen:

Ziel des ccons-Projekts ist es, eine interaktive Konsole für die Programmiersprache C zu erstellen, ähnlich wie "python" und "irb" für Python bzw. Ruby. Das Projekt baut auf clang und llvm auf.

icktoofay
quelle
1

Es wurde getan, obwohl die überwiegende Mehrheit der C-Arbeit kompiliert ist. Ein Beispiel ist CH

Rob Lachlan
quelle
0

CERN verfügt über ein Toolkit namens ROOT, das hauptsächlich für wissenschaftliche Zwecke oder zur Analyse von Daten usw. gedacht ist. Es verfügt jedoch über einen Clang-basierten C / C ++ - Interpreter namens Cling.

Sie verwendeten einen C-Interpreter namens CINT, bevor sie sich anpassten Cling. CINT ist leicht und scheint immer noch zum Download verfügbar zu sein.

Ich denke, Sie können andere finden, wenn Sie die Artikel in der Wikipedia-Liste sorgfältig durchsuchen.

user9600383
quelle