Y a-t-il un interprète pour C? [fermé]

111

Je me demandais s'il y avait quelque chose comme un interpréteur pour C. Autrement dit, dans un terminal Linux, je peux taper "python" et ensuite coder dans cet interpréteur. (Je ne suis pas sûr d'interpréter 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 pense que ce serait le shell C ...

devin
la source
5
Le mot correct pour ce que vous voulez est "shell" ou "prompt" ou "REPL" (Read-Eval-Print-Loop, en référence aux 4 commandes Lisp qui doivent être jointes pour créer un interpréteur Lisp en Lisp), mais un l'interprète fonctionnerait.
Chris Lutz
1
En passant, le terme que vous recherchez est REPL (Read Evaluate Print Loop).
tsimon
duplicata de Y a
Janus Troelsen
Le mot préféré est en fait environnement «interactif» pour C. Un environnement interactif ouvre un shell ou une invite spécifique à la langue. REPL est également bon.
jcchuks
Une liste complète des interpréteurs et des compilateurs pour C / C ++ peut être trouvée ici: thefreecountry.com/compilers/cpp.shtml
froggsy

Réponses:

71

Il y en a beaucoup - si vous restreignez la portée de votre question, nous pourrons peut-être en suggérer certaines qui correspondent à vos besoins.

Un interpréteur notable est " Ch: Interpréteur AC / C ++ pour le Script Computing " détaillé dans Dr. Dobbs:

Ch est un interpréteur C complet qui prend en charge toutes les fonctionnalités du langage et les bibliothèques standard de la norme ISO C90, mais étend C avec de nombreuses fonctionnalités de haut niveau telles que le type de chaîne et les tableaux de calcul en tant qu'objets de première classe.

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

Je n'ai jamais regardé cela auparavant, mais avoir un interprète AC sous la main semble très utile, et je vais probablement ajouter quelque chose à mon ensemble d'outils. Merci pour la question!


Éditer:

Je viens de découvrir que l'un de mes compilateurs préférés, TCC , exécutera des 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 pour l'exécuter directement.

TCC peut lire le code source C à partir de l'entrée standard lorsque «-» est utilisé à la place de «infile». Exemple:

echo 'main(){puts("hello");}' | tcc -run -
Adam Davis
la source
2
Je souhaite qu'une version de CH soit disponible sous une licence OSI approuvée, afin qu'elle puisse être distribuée. Vous pouvez concevoir de très bons utilitaires en utilisant leur interpréteur, malheureusement ils sont trop problématiques pour être regroupés.
Tim Post
Ce serait bien. Le logiciel gratuit est mieux que rien, mais jusqu'à ce que quelqu'un le fasse ...
Adam Davis
Bizarrement, tccsort avec le statut 10par défaut. Il semble que vous deviez explicitement ajouter un return 0donecho 'main(){puts("hello"); return 0;}' | tcc -run -
Gregory Nisbet
18

picoc - Un très petit interprète C

PicoC est un très petit interpréteur C pour les scripts. Il a été initialement écrit comme langage de script pour le système de vol embarqué d'un UAV. Il convient également parfaitement à d'autres applications robotiques, embarquées et non embarquées.

aleroot
la source
9

le projet ROOT fournit un interpréteur C et C ++ très fonctionnel appelé Cint . J'adore ça. Cependant, il faut un peu de temps pour s'habituer à l'interprétation.

TCC est également un très bon choix, mais je ne suis pas en mesure de garantir sa REPL

SingleNegationElimination
la source
1
L'équipe ROOT n'est-elle pas en train de supprimer progressivement Cint?
Z boson
@Zboson "Le CERN a changé d'interpréteur, accrochez-vous. CINT n'est plus supporté par le CERN"
endolith
ROOT a remplacé le cint par le cling. Donc, s'accrocher peut être considéré comme une recommandation mise à jour. (cependant - voir les autres réponses - cling est C ++, pas C, si c'est pertinent, bien que iirc cint ait également fait du C ++)
pseyfert
7

Jetez un œil à l' interprète Ch .

Ch est un interpréteur C / C ++ intégrable pour les scripts multiplateformes, la programmation shell, le traçage 2D / 3D, le calcul numérique et les scripts intégrés.

CMS
la source
6

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

Javed Ahamed
la source
3

ccons semble satisfaire vos contraintes:

Le but du projet ccons est de créer une console interactive pour le langage de programmation C, similaire à «python» et «irb» pour Python et Ruby respectivement. Le projet s'appuie sur clang et llvm.

icktoofay
la source
1

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

Rob Lachlan
la source
0

Le CERN dispose d'une boîte à outils appelée ROOT, qui est principalement destinée à des fins d'analyse scientifique ou de données, etc., mais il a un interpréteur C / C ++ basé sur Clang appelé Cling.

Ils utilisaient un interpréteur C appelé CINT avant de s'adapter Cling. CINT est léger et semble toujours disponible en téléchargement.

Je pense que vous pouvez en trouver d'autres en recherchant attentivement dans les articles de la liste Wikipedia.

user9600383
la source