Mi chiedevo se c'è qualcosa come un interprete per C. Cioè, in un terminale Linux posso digitare "python" e quindi scrivere il codice nell'interprete. (Non sono sicuro che interpreti la parola giusta). Questo è davvero utile per testare cose diverse e sono curioso di sapere se esiste qualcosa di simile per C. Anche se ne dubito. L'unica cosa che posso pensare che sarebbe fare sarebbe la shell C ...Esiste un interprete per C?
risposta
There are many - se si restringe l'ambito della domanda, potremmo essere in grado di suggerire alcuni specifici per le vostre esigenze.
Un interprete degno di nota è "Ch: A C/C++ Interpreter for Script Computing" dettagliati nella Dr. Dobbs:
Ch è un interprete completo C che supporta tutte le caratteristiche del linguaggio e librerie standard della norma ISO C90 standard, ma si estende C con molte funzioni di alto livello come stringhe di tipo e computazionali come oggetti di prima classe.
Ch standard is freeware ma non open source. Solo Ch professional ha le capacità di tracciamento e le altre funzionalità che si potrebbero desiderare.
Non l'ho mai guardato prima, ma avere un interprete c a portata di mano sembra molto utile, e qualcosa che probabilmente aggiungerò al mio set di strumenti. Grazie per la domanda!
Edit:
appena scoperto che uno dei miei compilatori preferiti, TCC, eseguirà script C:
Gestisce anche i file di script C (solo aggiungere la linea shebang "#!/usr/local/bin/tcc -run" alla riga del file di codice sorgente C su Linux per eseguirlo direttamente.
TCC può leggere il codice sorgente C dall'ingresso standard quando '-' è utilizzato nella posizione di 'infile'. Esempio:
echo 'main(){puts("hello");}' | tcc -run -
Vorrei che una versione di CH fosse disponibile sotto una licenza approvata OSI, in modo che potesse essere distribuita. È possibile progettare utilities veramente belle usando il loro interprete, purtroppo sono troppo problematiche da raggruppare. –
Sarebbe bello. Il freeware è meglio di niente, ma fino a quando qualcuno lo fa ... –
Stranamente, 'tcc' esce con lo stato' 10' di default. Sembra che tu debba aggiungere esplicitamente un 'return 0' dando' echo 'main() {puts ("hello"); restituisce 0;} '| tcc -run -' –
cinterp
è uno per iniziare.
Ti riferisci a https://github.com/danielkeller/cinterp oa http://free-compilers.sharnoff.org/TOOL/C-12.html? Un collegamento migliorerebbe questa risposta ... – f3lix
Probabilmente. Ce ne sono diversi per C++. Vedi Have you used any of the C++ interpreters (not compilers)? per esempi. Certamente cint mangerà quasi tutti i codici c con buoni risultati, e tcc è così veloce che puoi usarlo come un interprete.
E 'stato fatto, anche se la maggior parte del lavoro C viene compilato. Un esempio è CH
Dai uno sguardo allo Ch Interpreter.
Ch è un embeddable C/C++ interprete per lo scripting cross-platform, guscio programmazione, 2D/3D plotting, numerica computing e di scripting incorporato.
il progetto ROOT fornisce un interprete C e C++ molto funzionale denominato Cint. Sono abbastanza affezionato. Ci vuole un po 'per abituarsi all'interpretazione, però.
TCC è una scelta molto buona pure, ma io non sono in grado di garantire per la sua REPL
La squadra ROOT non sta eliminando Cint? –
@Zboson "Il CERN è passare a un nuovo interprete, si aggrappano. CINT non è supportato da CERN più" – endolith
So che usiamo CINT in classe. Sembrava abbastanza bello che tu volessi provarlo!
Orario di partenza iGCC
picoc - Una piccolissima C interprete
PicoC è un piccolo interprete C per lo scripting. Originariamente era scritto come linguaggio di script per il sistema di volo di bordo di un UAV. È anche molto adatto per altre applicazioni robotizzate, incorporate e non incorporate .
ccons sembra soddisfare i vostri vincoli:
L'obiettivo del progetto ccons è quello di creare una console interattiva per il linguaggio di programmazione C, simile a "python" e "IRB" per Python e Ruby, rispettivamente. Il progetto si basa su clang e llvm.
È possibile utilizzare CompCert. Ecco alcuni esempi: http://compcert.inria.fr/man/manual004.html
- 1. Esiste un interprete Objective-C per il Mac?
- 2. Esiste un interprete avanzato toploop per OCaml?
- 3. Esiste un compilatore/interprete per eseguire codice per php 5.3?
- 4. Esiste un interprete Ruby o Python per Lego Mindstorm?
- 5. Componente aggiuntivo interprete C# per Visual Studio
- 6. Interprete Python come classe C++
- 7. Python per iOS interprete
- 8. Come scrivere un interprete?
- 9. Analisi in Haskell per un semplice interprete
- 10. Incorporamento di un interprete Ruby in un'applicazione C++
- 11. Interprete e interprete di porte seriali Linux?
- 12. Esiste un controllo di stile per C++?
- 13. Esiste un parser CSS per C#?
- 14. Esiste un equivalente in C++ per getcwd?
- 15. Esiste un AppDomain per ogni programma C#?
- 16. Esiste un equivalente JavaScript per C# 'params'?
- 17. Esiste un repository di libreria per C?
- 18. Esiste un compilatore come servizio per C++?
- 19. Esiste un REPL per la programmazione C?
- 20. Esiste un compilatore C portatile per Windows?
- 21. Un interprete Haskell/definizioni di tipo w
- 22. Interprete JavaScript in Bash
- 23. Qualsiasi compilatore/interprete bytecode non codec C/C++?
- 24. Interprete/shell online Python 3
- 25. Interprete Lua a basso livello
- 26. Interprete AST?
- 27. interprete prolog su linux?
- 28. Interprete ActionScript interattivo?
- 29. Esiste un CSPRNG C++ 11?
- 30. Compilatore/interprete BCPL per un sistema operativo e un'architettura attuali?
La parola corretta per ciò che si vuole è "shell" o "Chiedi conferma" o "REPL" (Read-Eval-Print-Loop, in riferimento ai 4 comandi Lisp che devono essere uniti per fare un interprete Lisp in Lisp), ma un interprete funzionerebbe. –
Per inciso, il termine che stai cercando è REPL (Leggi Evaluate Print Loop). – Travis
duplicato di [Esiste un REPL per la programmazione C?] (Http://stackoverflow.com/q/10766900/309483) –