¿Hay intérprete para C? [cerrado]

111

Me preguntaba si hay algo así como un intérprete para C. Es decir, en una terminal de Linux puedo escribir "python" y luego codificar en ese intérprete. (No estoy seguro de interpretar la palabra correcta). Esto es realmente útil para probar diferentes cosas y tengo curiosidad por saber si existe algo similar para C. Aunque lo dudo. Lo único que puedo pensar que haría sería el shell C ...

Devin
fuente
5
La palabra correcta para lo que quiere es "shell" o "prompt" o "REPL" (Read-Eval-Print-Loop, en referencia a los 4 comandos Lisp que deben unirse para hacer un intérprete Lisp en Lisp), pero una el intérprete funcionaría.
Chris Lutz
1
Aparte, el término que está buscando es REPL (Leer, evaluar, bucle de impresión).
tsimon
La palabra preferida es en realidad entorno "interactivo" para C. Un entorno interactivo abre un shell o indicador específico del idioma. REPL también es bueno.
jcchuks
Puede encontrar una lista completa de intérpretes y compiladores para C / C ++ aquí: thefreecountry.com/compilers/cpp.shtml
froggsy

Respuestas:

71

Hay muchos : si reduce el alcance de su pregunta, podríamos sugerir algunos específicos para sus necesidades.

Un intérprete notable es " Ch: AC / C ++ Interpreter for Script Computing " detallado en Dr. Dobbs:

Ch es un intérprete de C completo que admite todas las características del lenguaje y las bibliotecas estándar del estándar ISO C90, pero extiende C con muchas características de alto nivel, como el tipo de cadena y las matrices computacionales como objetos de primera clase.

El estándar Ch es gratuito pero no de código abierto. Solo Ch professional tiene las capacidades de trazado y otras características que uno podría desear.

Nunca había visto esto antes, pero tener un intérprete de CA a mano suena muy útil y es algo que probablemente agregaré a mi conjunto de herramientas. ¡Gracias por la pregunta!


Editar:

Acabo de descubrir que uno de mis compiladores favoritos, TCC , ejecutará scripts en C:

También maneja archivos de script C (simplemente agregue la línea shebang "#! / Usr / local / bin / tcc -run" a la primera línea de su archivo de código fuente C en Linux para ejecutarlo directamente.

TCC puede leer el código fuente C de la entrada estándar cuando se usa '-' en lugar de 'infile'. Ejemplo:

echo 'main(){puts("hello");}' | tcc -run -
Adam Davis
fuente
2
Ojalá estuviera disponible una versión de CH bajo una licencia aprobada por OSI, para que pudiera distribuirse. Puede diseñar utilidades realmente agradables utilizando su intérprete, desafortunadamente son demasiado problemáticas para agruparlas.
Tim Post
Eso estaría bien. El software gratuito es mejor que nada, pero hasta que alguien lo haga ...
Adam Davis
Extrañamente, tccsale con estado 10de forma predeterminada. Parece que tienes que agregar explícitamente una return 0donaciónecho 'main(){puts("hello"); return 0;}' | tcc -run -
Gregory Nisbet
18

picoc - Un intérprete de C muy pequeño

PicoC es un intérprete de C muy pequeño para secuencias de comandos. Originalmente fue escrito como el lenguaje de escritura para el sistema de vuelo a bordo de un UAV. También es muy adecuado para otras aplicaciones robóticas, integradas y no integradas.

aleroot
fuente
9

el proyecto ROOT proporciona un intérprete de C y C ++ muy funcional llamado Cint . Me gusta mucho. Sin embargo, se necesita un poco para acostumbrarse interpretativamente.

TCC también es una muy buena opción, pero no puedo responder por su REPL

SingleNegationElimination
fuente
1
¿No está el equipo de ROOT eliminando gradualmente a Cint?
Bosón Z
@Zboson "El CERN ha cambiado a un nuevo intérprete, adhiérase. CINT ya no es compatible con el CERN"
endolith
ROOT reemplazó cint por aferrarse. Por lo tanto, el apego se puede tomar como recomendación actualizada. (aunque, vea otras respuestas, cling es C ++, no C, si eso es relevante, aunque iirc cint también hizo algo de C ++)
pseyfert
7

Eche un vistazo al intérprete de Ch .

Ch es un intérprete C / C ++ incrustable para scripting multiplataforma, programación de shell, trazado 2D / 3D, computación numérica y scripting incrustado.

CMS
fuente
6

Sé que usamos CINT en clase. ¡Parecía bastante bueno, es posible que desee probarlo!

Javed Ahamed
fuente
3

ccons parece satisfacer sus limitaciones:

El objetivo del proyecto ccons es crear una consola interactiva para el lenguaje de programación C, similar a "python" e "irb" para Python y Ruby respectivamente. El proyecto se basa en clang y llvm.

icktoofay
fuente
1

Se ha hecho, aunque la gran mayoría del trabajo en C está compilado. Un ejemplo es CH

Rob Lachlan
fuente
0

El CERN tiene un conjunto de herramientas llamado ROOT, que está diseñado principalmente para fines científicos o de análisis de datos, etc. pero tiene un intérprete C / C ++ basado en Clang llamado Cling.

Estaban usando un intérprete de C llamado CINT antes de adaptarseCling . CINT es liviano y todavía parece estar disponible para descargar.

Creo que puede obtener otros si busca cuidadosamente en los artículos de la lista de Wikipedia.

usuario9600383
fuente