Existe um intérprete para C? [fechadas]

111

Gostaria de saber se existe algo como um interpretador para C. Ou seja, em um terminal Linux posso digitar "python" e, em seguida, codificar nesse interpretador. (Não tenho certeza se o intérprete é a palavra certa). Isso é realmente útil para testar coisas diferentes e estou curioso para saber se algo semelhante existe para C. Embora eu duvide disso. A única coisa que posso pensar que faria seria o shell C ...

Devin
fonte
5
A palavra correta para o que você deseja é "shell" ou "prompt" ou "REPL" (Read-Eval-Print-Loop, em referência aos 4 comandos Lisp que devem ser unidos para fazer um interpretador Lisp em Lisp), mas um intérprete funcionaria.
Chris Lutz
1
À parte, o termo que você está procurando é REPL (Read Evaluate Print Loop).
tsimon
duplicado de Existe um REPL para programação C?
Janus Troelsen
A palavra preferida é, na verdade, ambiente "interativo" para C. Um ambiente interativo abre um shell ou prompt específico para o idioma. REPL também é bom.
jcchuks
Uma lista abrangente de interpretadores e compiladores para C / C ++ pode ser encontrada aqui: thefreecountry.com/compilers/cpp.shtml
froggsy

Respostas:

71

Existem muitos - se você restringir o escopo de sua pergunta, poderemos sugerir alguns específicos para suas necessidades.

Um intérprete notável é " Ch: AC / C ++ Interpreter for Script Computing " detalhado no Dr. Dobbs:

Ch é um interpretador C completo que oferece suporte a todos os recursos de linguagem e bibliotecas padrão do padrão ISO C90, mas estende C com muitos recursos de alto nível, como tipo de string e matrizes computacionais como objetos de primeira classe.

O padrão Ch é freeware, mas não é de código aberto. Apenas Ch professional tem os recursos de plotagem e outros recursos que você pode desejar.

Eu nunca olhei para isso antes, mas ter um intérprete AC disponível parece muito útil e algo que provavelmente adicionarei ao meu conjunto de ferramentas. Obrigado pela pergunta!


Editar:

Acabei de descobrir que um dos meus compiladores favoritos, o TCC , executa scripts C:

Ele também lida com arquivos de script C (basta adicionar a linha shebang "#! / Usr / local / bin / tcc -run" à primeira linha de seu arquivo de código-fonte C no Linux para que seja executado diretamente.

O TCC pode ler o código-fonte C da entrada padrão quando '-' é usado no lugar de 'infile'. Exemplo:

echo 'main(){puts("hello");}' | tcc -run -
Adam Davis
fonte
2
Gostaria que uma versão do CH estivesse disponível sob uma licença aprovada pela OSI, para que pudesse ser distribuída. Você pode projetar utilitários realmente legais usando seu interpretador; infelizmente, eles são muito problemáticos para agrupar.
Tim Post
Isso seria legal. Freeware é melhor do que nada, mas até que alguém o faça ...
Adam Davis
Estranhamente, tccsai com status 10por padrão. Parece que você precisa adicionar explicitamente uma return 0doaçãoecho 'main(){puts("hello"); return 0;}' | tcc -run -
Gregory Nisbet
18

picoc - Um interpretador C muito pequeno

PicoC é um interpretador C muito pequeno para scripts. Foi originalmente escrito como a linguagem de script para o sistema de vôo a bordo de um UAV. Também é muito adequado para outros aplicativos robóticos, incorporados e não incorporados.

aleroot
fonte
9

o projeto ROOT fornece um interpretador C e C ++ muito funcional chamado Cint . Gosto muito disso. Demora um pouco para se acostumar interpretativamente, no entanto.

TCC também é uma escolha muito boa, mas não posso garantir seu REPL

SingleNegationElimination
fonte
1
A equipe ROOT não está eliminando Cint?
Bóson Z
@Zboson "CERN mudou para um novo intérprete, cling. CINT não é mais compatível com CERN"
endolith
ROOT substituiu cint por cling. Portanto, o cling pode ser considerado uma recomendação atualizada. (embora - veja outras respostas - cling seja C ++, não C, se for relevante, embora iirc cint também tenha feito um pouco de C ++)
pseyfert
7

Dê uma olhada no Ch Interpreter .

Ch é um interpretador C / C ++ embutido para script de plataforma cruzada, programação shell, plotagem 2D / 3D, computação numérica e script embutido.

CMS
fonte
6

Eu sei que usamos CINT nas aulas. Parece muito bom que você queira tentar!

Javed Ahamed
fonte
3

ccons parece satisfazer suas restrições:

O objetivo do projeto ccons é criar um console interativo para a linguagem de programação C, semelhante a "python" e "irb" para Python e Ruby, respectivamente. O projeto se baseia no clang e no llvm.

icktoofay
fonte
1

Isso foi feito, embora a grande maioria do trabalho C seja compilado. Um exemplo é CH

Rob Lachlan
fonte
0

O CERN tem um kit de ferramentas chamado ROOT, que é destinado principalmente para fins científicos ou de análise de dados, etc., mas tem um interpretador C / C ++ baseado em Clang chamado Cling.

Eles estavam usando um interpretador C chamado CINT antes de se adaptarem Cling. CINT é leve e ainda parece estar disponível para download.

Acho que você pode conseguir algum outro pesquisando cuidadosamente nos artigos da lista da Wikipedia.

user9600383
fonte