2009-04-17 9 views
14

Esiste un modo per eseguire codice C++ come interpretato anziché compilato? quindi posso modificare il codice e scrivere funzioni al volo?eseguire interpretare C++?


correlati:

+1

Mentre possibile, questo non è davvero una buona idea. Il C++ è davvero poco adatto agli interpreti. La sua forza di base - la velocità - è sparita, i suoi difetti (livello relativamente basso, nessun controllo degli errori contro puntatori sbagliati, ecc.) Sono ancora lì. Non tutto può essere fatto nell'interprete. Ci sono molti linguaggi interpretati molto più adatti, e ci sono i compilatori jit per C++ - "compila ed esegui", rendendolo molto simile all'interprete dal punto di vista dell'utente mentre viene compilato di fatto. –

risposta

10

Date un'occhiata a Ch, un interprete embeddable C++.

Ch è un embeddable C/C++ interprete per lo scripting cross-platform, guscio programmazione, 2D/3D plotting, numerica computing e di scripting incorporato. Ch è un'alternativa gratuita e user-friendly ai compilatori C/C++ per i principianti per imparare C/C++.

+0

Mi chiedo ancora perché non ci sia una versione open source di ch. forse perché nessuno ne ha bisogno? – jokoon

2

CINT (readme) ha certamente single-stepping. Non sono sicuro della modifica al volo, però.

5

Ch e CINT (solitamente come parte del sistema ROOT) interpreteranno il C++. Tuttavia, la mia esperienza con CINT non è stata buona: il supporto linguistico non è completo (in particolare per quanto riguarda i template), l'esecuzione è molto più lenta, c'è stata una cronologia di bug ad es. portata variabile e loop in uscita, e (IMO) è più fastidioso di quanto valga. Come linguaggio, C++ è mal progettato per l'uso interpretato.

Se è necessario eseguire codice interpretato, perché non utilizzare un linguaggio interpretato moderno come Python o Ruby? Uno strumento come SWIG può essere usato per collegarli a librerie C/C++ esistenti se necessario.

+5

"mal progettato" suggerisce che è stato progettato per tale uso.Direi "non progettato e non adatto" – MSalters

+0

Java è anche un ottimo linguaggio interpretato :) –

0

Questo non risponde esattamente alla tua domanda, ma forse sarà d'aiuto.

Il compilatore MS C++ supporta Modifica e Continua, che consente di interrompere, apportare modifiche, ricompilare & continuare senza chiudere il programma.

0

Ho visto una presentazione su ccons nel campo dimostrativo della CUSEC a gennaio. Il suo scopo è quello di fornire un interprete interattivo come Python. Era nelle sue fasi iniziali, ma poi mi impressionò nondimeno.

Problemi correlati