C'è un interprete per C? [chiuso]


111

Mi chiedevo se esiste qualcosa come un interprete per C. Cioè, in un terminale Linux posso digitare "python" e poi codificare in quell'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 a cui riesco a pensare sarebbe la shell C ...


5
La parola corretta per quello che vuoi è "shell" o "prompt" o "REPL" (Read-Eval-Print-Loop, in riferimento ai 4 comandi Lisp che devono essere uniti per creare un interprete Lisp in Lisp), ma un l'interprete funzionerebbe.
Chris Lutz,

1
Per inciso, il termine che stai cercando è REPL (Read Evaluate Print Loop).
tsimon


La parola preferita è effettivamente ambiente "interattivo" per C. Un ambiente interattivo apre una shell o un prompt specifico per la lingua. Anche REPL è buono.
jcchuks

Un elenco completo di interpreti e compilatori per C / C ++ può essere trovato qui: thefreecountry.com/compilers/cpp.shtml
froggsy

Risposte:


71

Ce ne sono molti : se restringi l'ambito della tua domanda, potremmo essere in grado di suggerirne alcuni specifici per le tue esigenze.

Un interprete degno di nota è " Ch: AC / C ++ Interpreter for Script Computing " descritto in Dr. Dobbs:

Ch è un interprete C completo che supporta tutte le funzionalità del linguaggio e le librerie standard dello standard ISO C90, ma estende C con molte funzionalità di alto livello come il tipo di stringa e gli array computazionali come oggetti di prima classe.

Lo standard Ch è freeware ma non open source. Solo Ch professional ha le capacità di plottaggio e altre funzionalità che si potrebbero desiderare.

Non l'ho mai visto prima, ma avere un interprete ac a portata di mano sembra molto utile e probabilmente aggiungerò qualcosa al mio set di strumenti. Grazie per la domanda!


Modificare:

Ho appena scoperto che uno dei miei compilatori preferiti, TCC , eseguirà script C:

Gestisce anche file di script C (basta aggiungere la riga shebang "#! / Usr / local / bin / tcc -run" alla prima riga del file di codice sorgente C su Linux per eseguirlo direttamente.

TCC può leggere il codice sorgente C dallo standard input quando si usa "-" al posto di "infile". Esempio:

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

2
Vorrei che una versione di CH fosse disponibile con una licenza approvata dall'OSI, in modo che potesse essere distribuita. Puoi progettare utilità davvero carine usando il loro interprete, sfortunatamente sono troppo problematiche da raggruppare.
Tim Post

Sarebbe carino. Il freeware è meglio di niente, ma finché qualcuno non lo fa ...
Adam Davis

Stranamente, tccesce con lo stato 10per impostazione predefinita. Sembra che tu debba aggiungere esplicitamente una return 0donazioneecho 'main(){puts("hello"); return 0;}' | tcc -run -
Gregory Nisbet

18

picoc - Un interprete C molto piccolo

PicoC è un interprete C molto piccolo per lo scripting. Originariamente era stato scritto come linguaggio di script per il sistema di volo di bordo di un UAV. È anche molto adatto per altre applicazioni robotiche, incorporate e non incorporate.


9

il progetto ROOT fornisce un interprete C e C ++ molto funzionale chiamato Cint . Mi piace molto. Tuttavia, ci vuole un po 'per abituarsi all'interpretazione.

Anche TCC è un'ottima scelta, ma non sono in grado di garantire la sua REPL


1
Il team ROOT non sta eliminando gradualmente Cint?
Bosone Z

@Zboson "Il CERN è passato a un nuovo interprete, aggrappati. CINT non è più supportato dal CERN"
endolith

ROOT ha sostituito cint con cling. Quindi aggrapparsi può essere considerato come raccomandazione aggiornata. (anche se - vedi altre risposte - cling è C ++, non C, se è rilevante, sebbene iirc cint abbia anche fatto un po 'di C ++)
pseyfert


7

Dai un'occhiata all'interprete Ch .

Ch è un interprete C / C ++ incorporabile per script multipiattaforma, programmazione shell, stampa 2D / 3D, calcolo numerico e scripting incorporato.


6

So che usiamo CINT in classe. Sembrava abbastanza buono che potresti provare!




3

ccons sembra soddisfare i tuoi vincoli:

L'obiettivo del progetto ccons è creare una console interattiva per il linguaggio di programmazione C, simile a "python" e "irb" rispettivamente per Python e Ruby. Il progetto si basa su clang e llvm.




1

È stato fatto, anche se la stragrande maggioranza del lavoro in C è compilata. Un esempio è CH


0

Il CERN ha un toolkit chiamato ROOT, che è pensato principalmente per scopi scientifici o di analisi dei dati, ecc. Ma ha un interprete C / C ++ basato su Clang chiamato Cling.

Stavano usando un interprete C chiamato CINT prima di adattarsi Cling. CINT è leggero e sembra essere ancora disponibile per il download.

Penso che potresti ottenerne qualcun altro cercando attentamente negli articoli dell'elenco di Wikipedia.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.