it-swarm.com.de

Gibt es einen Dolmetscher für C?

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 in diesem Interpreter Code schreiben. (Ich bin mir nicht sicher, das richtige Wort zu interpretieren). Das ist wirklich hilfreich, um verschiedene Dinge auszuprobieren. Ich bin gespannt, ob es etwas Ähnliches für C gibt. Obwohl ich daran zweifle. Das einzige, was ich mir vorstellen kann, wäre die C-Shell ...

112
devin

Es gibt viele - Wenn Sie den Umfang Ihrer Frage einschränken, können wir möglicherweise einige auf Ihre Bedürfnisse zugeschnittene Vorschläge machen.

Ein bemerkenswerter Interpreter ist " Ch: A C/C++ - Interpreter für Script Computing " in Dr. Dobbs ausführlich: 

Ch ist ein vollständiger C-Interpreter der unterstützt alle Sprachfunktionen und Standardbibliotheken der ISO C90 Standard, erweitert aber C mit vielen High-Level-Funktionen wie String Typ und rechnerische Arrays als erstklassige Objekte.

Ch-Standard ist Freeware aber nicht Open Source. Nur Ch professional verfügt über die Plot-Funktionen und andere Funktionen, die Sie wünschen.

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


Bearbeiten:

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

Es behandelt auch C-Skriptdateien (nur Fügt die Shebang-Zeile "#!/Usr/local/bin/tcc -run") zur ersten Zeile Ihrer C-Quellcodedatei Unter Linux hinzu es direkt ausführen lassen.

TCC kann C-Quellcode aus .__ lesen. Standardeingabe, wenn '-' in .__ verwendet wird. Ort des "Infil". Beispiel:

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

picoc - Ein sehr kleiner C-Interpreter

PicoC ist ein sehr kleiner C-Interpreter für Scripting. Es war ursprünglich geschrieben als Skriptsprache für das Bordsystem eines UAV . Es eignet sich auch sehr gut für andere Roboter, eingebettete und nicht eingebettete Anwendungen.

18
aleroot

das ROOT-Projekt bietet einen sehr funktionalen C- und C++ - Interpreter mit dem Namen Cint . Ich mag es sehr gern. Es ist allerdings etwas gewöhnungsbedürftig. 

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

Wahrscheinlich. Es gibt mehrere für C++. Siehe Haben Sie einen der C++ - Interpreter (keine Compiler) verwendet? zum Beispiel. Sicherlich frisst cint fast jeden c-Code mit guten Ergebnissen und tcc ist so schnell, dass Sie ihn wie einen Interpreter verwenden können.

8
dmckee

Schauen Sie sich den Ch Interpreter an.

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

7
CMS

Ich weiß, dass wir CINT im Unterricht verwenden. Es schien ziemlich gut zu sein, dass Sie es vielleicht einmal ausprobieren möchten!

6
Javed Ahamed

Auschecken iGCC

5
Neel Basu

cinterp ist für einen Anfang.

4
paxdiablo

ccons scheint Ihre Einschränkungen zu erfüllen:

Das Ziel des Projekts ccons ist die Erstellung einer interaktiven Konsole für die Programmiersprache C, ähnlich wie "Python" und "IRB" für Python bzw. Ruby. Das Projekt baut auf Clang und llvm auf.

3
icktoofay

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

2
Janus Troelsen

In jüngerer Zeit gibt es Cling (basierend auf LLVM/Clang)

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

2
ideasman42

Es wurde getan, obwohl die große Mehrheit der C-Arbeit zusammengestellt wurde. Ein Beispiel ist CH

1
Rob Lachlan

CERN verfügt über ein Toolkit namens ROOT, das hauptsächlich für wissenschaftliche Zwecke oder Datenanalysen usw. gedacht ist, aber es verfügt über einen Clang-basierten C/C++ - Interpreter mit dem Namen Cling.

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

Ich denke, Sie können etwas anderes bekommen, indem Sie sorgfältig durch Wikipedia-Artikel suchen.

0
user9600383