web-dev-qa-db-fra.com

Y a-t-il un interprète pour C?

Je me demandais s'il y avait quelque chose comme un interprète pour C. C'est-à-dire que dans un terminal Linux, je peux taper "python" puis coder dans cet interpréteur. (Je ne suis pas sûr d'interprète le bon mot). Ceci est vraiment utile pour tester différentes choses et je suis curieux de savoir s'il existe quelque chose de similaire pour C. Bien que j'en doute. La seule chose à laquelle je pourrais penser serait le C Shell ...

112
devin

Il y en a beaucoup - si vous réduisez la portée de votre question, nous pourrons peut-être vous proposer des solutions adaptées à vos besoins.

Un interprète notable est " Ch: un interpréteur C/C++ pour Script Computing " détaillé dans Dr. Dobbs: 

Ch est un interprète C complet qui prend en charge toutes les fonctionnalités linguistiques et bibliothèques standard de la norme ISO C90 Standard, mais étend C avec beaucoup fonctionnalités de haut niveau telles que string type et tableaux de calcul en tant que objets de première classe.

Ch standard est un freeware mais pas de source ouverte. Seul Ch professional a les capacités de traçage et d’autres fonctionnalités que l’on pourrait souhaiter.

Je n’avais jamais jeté un œil à cela auparavant, mais la présence d’un interprète c me semble très utile et j’ajouterai probablement quelque chose à mon ensemble d’outils. Merci pour la question!


Modifier:

Je viens de découvrir que l’un de mes compilateurs préférés, TCC , exécutera les scripts C:

Il gère également les fichiers de script C (ajoutez simplement la ligne Shebang "#!/Usr/local/bin/tcc -run" à la première ligne de votre fichier de code source C Sous Linux. de le faire exécuter directement.

TCC peut lire le code source C à partir de entrée standard lorsque '-' est utilisé dans lieu de 'infile'. Exemple:

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

picoc - Un très petit interprète en C

PicoC est un très petit interpréteur C pour les scripts. C'était à l'origine écrit comme langage de script pour le système de vol embarqué d'un UAV . Il convient également très bien aux autres robots, intégrés et non intégrés applications.

18
aleroot

le projet ROOT fournit un interpréteur très fonctionnel en C et C++ appelé Cint . Je l'aime bien. Cependant, il faut un peu de temps pour s'habituer à l'interprétation. 

TCC est également un très bon choix, mais je ne peux pas garantir son REPL

9

Probablement. Il y en a plusieurs pour c ++. Voir Avez-vous utilisé l'un des interprètes C++ (pas des compilateurs)? pour des exemples. Certes, cint mangera presque tous les codes c avec de bons résultats, et tcc est si rapide que vous pouvez l’utiliser comme un interprète.

8
dmckee

Jetez un oeil à l'interprète Ch .

Ch est un interpréteur C/C++ intégrable pour les scripts multiplates-formes, Shell programmation, tracé 2D/3D, numérique l'informatique et les scripts intégrés.

7
CMS

Je sais que nous utilisons CINT en classe. Cela semblait plutôt bien, vous voudrez peut-être essayer!

6
Javed Ahamed

Départ iGCC

5
Neel Basu

cinterp en est un pour commencer.

4
paxdiablo

ccons semble satisfaire vos contraintes:

Le projet ccons a pour objectif de créer une console interactive pour le langage de programmation C, similaire à "python" et "irb" pour Python et Ruby, respectivement. Le projet repose sur Clang et Llvm.

3
icktoofay

Vous pouvez utiliser CompCert. Voici quelques exemples: http://compcert.inria.fr/man/manual004.html

2
Janus Troelsen

Plus récemment, il y a Cling (basé sur LLVM/Clang)

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

2
ideasman42

Cela a été fait, même si la grande majorité du travail C est compilée. Un exemple est CH

1
Rob Lachlan

Le CERN dispose d’une boîte à outils appelée ROOT, destinée principalement à l’analyse scientifique, à l’analyse de données, etc., mais dotée d’un interpréteur C/C++ basé sur Clang et appelée Cling.

Ils utilisaient un interpréteur C appeléCINTavant de s’adapter à Cling. CINT est léger et semble toujours disponible pour le téléchargement.

Je pense que vous pouvez en obtenir d’autres en recherchant avec soin dans la liste des articles de Wikipedia.

0
user9600383