Gibt es einen Dolmetscher für C?

Ich habe mich gefragt, ob es etwas wie einen Interpreter für C gibt. Das heißt, in einem Linux-Terminal kann ich “python” eingeben und dann diesen Interpreter einprogrammieren. (Ich bin mir nicht sicher, Dolmetscher das richtige Wort). Das ist wirklich hilfreich, um verschiedene Dinge zu testen und ich bin neugierig, ob etwas ähnliches für C existiert. Obwohl ich es bezweifle. Das einzige, was mir dazu einfällt, wäre die C-Shell …

Es gibt viele – wenn Sie den scope Ihrer Frage eingrenzen, können wir Ihnen vielleicht einige speziell auf Ihre Bedürfnisse zugeschnittene vorschlagen.

Ein bemerkenswerter Interpreter ist ” Ch: AC / C ++ Interpreter für Skript-Computing ” in Dr. Dobbs detailliert:

Ch ist ein kompletter C-Interpreter, der alle Sprachfunktionen und Standardbibliotheken des ISO C90-Standards unterstützt, aber C mit vielen High-Level-Features wie String-Typ und Computer-Arrays als erstklassige Objekte erweitert.

Der Ch-Standard ist Freeware, aber nicht Open Source. Nur Ch Professional hat die Plotfunktionen und andere functionen, die man sich wünschen kann.

Ich habe mir das nie zuvor angeschaut, aber es ist sehr nützlich, einen Interpreter zur Hand zu haben, und etwas, das ich wahrscheinlich zu meinem Toolset hinzufügen werde. Danke für die Frage!


Bearbeiten:

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

Es behandelt 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 den C-Quellcode von der Standardeingabe lesen, wenn ‘-‘ anstelle von ‘Infile’ verwendet wird. Beispiel:

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

picoc – Ein sehr kleiner C-Interpreter

PicoC ist ein sehr kleiner C-Interpreter für das Scripting. Es wurde ursprünglich als Skriptsprache für das Bord-Flugsystem eines UAV geschrieben. Es eignet sich auch sehr gut für andere Robotik-, Embedded- und Nicht-Embedded-Anwendungen.

Das ROOT-Projekt bietet einen sehr funktionalen C- und C ++ – Interpreter namens Cint . Ich bin ziemlich begeistert davon. Es ist allerdings etwas gewöhnungsbedürftig.

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

Wahrscheinlich. Es gibt mehrere für C ++. Siehe Haben Sie einen der C ++ – Interpreter (nicht Compiler) verwendet? zum Beispiel. Sicher wird Cint fast jeden c-Code mit guten Ergebnissen essen, und tcc ist so schnell, dass man es wie einen Interpreter benutzen kann.

Schaut euch den Ch-Interpreter an .

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

Ich weiß, dass wir CINT im Unterricht verwenden. Es schien ziemlich gut, dass du es vielleicht ausprobieren willst!

Sieh dir iGCC an

cinterp ist einer für den Anfang.

ccons scheint Ihre Einschränkungen zu erfüllen:

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

Seit kurzem gibt es Cling (basierend auf LLVM / Clang)

http://root.cern.ch/drupal/content/cling

Sie können CompCert verwenden. Hier sind einige Beispiele: http://compcert.inria.fr/man/manual004.html

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

CERN hat ein Toolkit namens ROOT, das hauptsächlich für wissenschaftliche oder Datenanalysezwecke gedacht ist, aber es hat einen Clang-basierten C / C ++ Interpreter namens Cling .

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

Ich denke, dass Sie etwas anderes erhalten können, indem Sie durch Wikipedia-Listenartikel sorgfältig suchen.