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 ...


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 -

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.


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


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.


6

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




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.




1

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


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.