111 Stimmen

Gibt es einen Interpreter für C?

Ich habe mich gefragt, ob es so etwas wie einen Interpreter für C gibt. Das heißt, ich kann in einem Linux-Terminal "Python" eingeben und dann in diesem Interpreter programmieren. (Ich bin mir nicht sicher, ob Interpreter das richtige Wort ist). Das ist wirklich hilfreich, um verschiedene Dinge auszuprobieren, und ich bin neugierig, ob es etwas Ähnliches für C gibt, obwohl ich das bezweifle. Das einzige, was mir dazu einfällt, wäre die C-Shell...

5 Stimmen

Das richtige Wort für das, was Sie wollen, ist "Shell" oder "Prompt" oder "REPL" (Read-Eval-Print-Loop, in Anlehnung an die 4 Lisp-Befehle, die miteinander verbunden werden müssen, um einen Lisp-Interpreter in Lisp zu bilden), aber ein Interpreter würde auch funktionieren.

1 Stimmen

Nebenbei bemerkt, der Begriff, den Sie suchen, ist REPL (Read Evaluate Print Loop).

0 Stimmen

71voto

Adam Davis Punkte 89506

Es gibt viele - Wenn Sie den Umfang Ihrer Frage eingrenzen, können wir Ihnen vielleicht einige Vorschläge machen, die speziell auf Ihre Bedürfnisse zugeschnitten sind.

Ein bemerkenswerter Dolmetscher ist " Ch: Ein C/C++-Interpreter für Script-Computing ", die in Dr. Dobbs ausführlich beschrieben wird:

Ch ist ein vollständiger C-Interpreter, der alle Sprachfunktionen und Standardbibliotheken des ISO C90 Standards unterstützt, aber C um viele High-Level-Funktionen wie String Typ und rechnerische Arrays als Objekte erster Klasse.

Ch Standard ist Freeware aber nicht quelloffen. Nur Ch professional hat die Plot-Fähigkeiten und andere Funktionen, die man sich wünschen könnte.

Ich habe mir das noch nie angeschaut, aber einen C-Interpreter zur Hand zu haben, klingt sehr nützlich und ist etwas, das ich wahrscheinlich zu meinem Toolset hinzufügen werde. Vielen Dank für die Frage!


Editar:

Ich habe gerade herausgefunden, dass einer meiner Lieblingscompiler, TCC werden C-Skripte ausgeführt:

Es verarbeitet auch C-Skript-Dateien (nur fügen Sie die Shebang-Zeile "#!/usr/local/bin/tcc -run" in die ersten Zeile Ihrer C-Quellcode-Datei unter Linux, um sie direkt auszuführen.

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

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

2 Stimmen

Ich wünschte, eine Version von CH wäre unter einer von der OSI genehmigten Lizenz verfügbar, so dass sie verbreitet werden könnte. Mit ihrem Interpreter kann man wirklich schöne Hilfsprogramme entwickeln, aber leider sind sie zu problematisch, um sie zu bündeln.

0 Stimmen

Das wäre schön. Freeware ist besser als nichts, aber bis es jemand macht...

0 Stimmen

Seltsam, tcc verlässt mit Status 10 standardmäßig. Es sieht so aus, als müssten Sie explizit eine return 0 Geben echo 'main(){puts("hello"); return 0;}' | tcc -run -

18voto

aleroot Punkte 68601

picoc - Ein sehr kleiner C-Interpreter

PicoC ist ein sehr kleiner C-Interpreter für die Skripterstellung. Er wurde ursprünglich als Skriptsprache für das bordeigene Flugsystem eines UAVs geschrieben. Sie eignet sich aber auch sehr gut für andere robotische, eingebettete und nicht eingebettete Anwendungen.

9voto

Bietet das Root-Projekt einen sehr funktionalen C- und C++-Interpreter namens Cint . Ich bin ganz angetan davon. Es ist allerdings etwas gewöhnungsbedürftig, was die Interpretation angeht.

TCC ist ebenfalls eine sehr gute Wahl, aber ich kann mich nicht für seine REPL verbürgen

1 Stimmen

Lässt das Root-Team Cint nicht auslaufen?

0 Stimmen

@Zboson "CERN hat auf einen neuen Interpreter, Cling, umgestellt. CINT wird von CERN nicht mehr unterstützt"

0 Stimmen

Root ersetzt cint durch cling. Cling kann also als aktualisierte Empfehlung verstanden werden. (obwohl - siehe andere Antworten - cling ist C++, nicht C, wenn das relevant ist, obwohl iirc cint auch etwas C++ gemacht hat)

8voto

Wahrscheinlich. Es gibt mehrere für C++. Siehe Haben Sie einen der C++-Interpreter (nicht Compiler) verwendet? für Beispiele. Sicherlich cint kann fast jeden C-Code mit guten Ergebnissen verarbeiten, und tcc ist so schnell, dass man es wie einen Interpreter verwenden kann.

7voto

Christian C. Salvadó Punkte 763569

Werfen Sie einen Blick auf die Ch-Dolmetscher .

Ch ist ein einbettungsfähiger C/C++-Interpreter für plattformübergreifendes Scripting, Shell Shell-Programmierung, 2D/3D-Darstellung, numerische numerische Berechnungen und eingebettetes Skripting.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X