2009-04-17 3 views
14

Existe-t-il un moyen d'exécuter du code C++ au lieu d'être compilé? donc je peux éditer le code et écrire des fonctions à la volée?Exécuter interpréter C++?


connexes:

+1

Bien que possible, ce n'est pas vraiment une bonne idée. C++ est vraiment mal adapté pour les interprètes. Sa force de base - la vitesse - a disparu, ses défauts (relativement bas niveau, pas de vérification d'erreur contre les mauvais pointeurs, etc.) sont toujours là. Tout ne peut pas être fait dans l'interprète. Il y a beaucoup de langages interprétés tellement mieux adaptés, et il y a des compilateurs jit pour C++ - "compiler et exécuter", ce qui fait qu'il se comporte comme l'interpréteur du point de vue de l'utilisateur tout en étant compilé. –

Répondre

10

Jetez un oeil à Ch, un interprète C++ intégrable.

Ch est un embarquable C/C++ interpréteur de script multi-plateforme, Shell programmation , traçage 2D/3D, le calcul numérique , et script intégré. Ch est un alternative gratuit et convivial aux compilateurs C/C++ pour débutants pour apprendre C/C++.

+0

Je me demande toujours pourquoi il n'y a pas de version open source de ch. peut-être parce que personne n'en a besoin? – jokoon

2

CINT (readme) a certainement pas à pas simple. Cependant, je ne suis pas sûr de la modification à la volée.

5

Ch et CINT (généralement dans le cadre du système ROOT) interpréteront C++. Cependant, mon expérience avec CINT n'a pas été bonne: le support de la langue n'est pas complet (en particulier en ce qui concerne les templates), l'exécution est beaucoup plus lente, il y a eu un historique de bugs avec, par exemple, la portée variable et la sortie de la boucle, et (OMI) c'est plus de tracas que cela en vaut la peine. En tant que langage, C++ est singulièrement mal conçu pour une utilisation interprétée.

Si vous avez besoin d'exécuter du code interprété, pourquoi ne pas utiliser un langage interprété moderne comme Python ou Ruby? Un outil comme SWIG peut être utilisé pour les connecter à des bibliothèques C/C++ existantes si nécessaire.

+5

"mal conçu" suggère qu'il a été conçu pour une telle utilisation.Je dirais "pas conçu et mal adapté" – MSalters

+0

Java est aussi un très bon langage interprété :) –

0

Cela ne répond pas exactement à votre question, mais peut-être que cela vous aidera.

Le compilateur MS C++ prend en charge Edit et Continue, ce qui vous permet d'arrêter, d'apporter des modifications, de recompiler & sans interrompre votre programme.

0

J'ai vu une présentation sur ccons au camp de démonstration de CUSEC en janvier. Son objectif est de fournir un interpréteur interactif comme python. Il était à ses débuts alors mais m'a impressionné pas moins.

Questions connexes