Tiny C Compiler

May 30th, 2003 § 4 comments

O TCC, ou Tiny C Compiler, é um interessantíssimo e minúsculo compilador e otimizador C para o Linux. Além de ter tudo o que um compilador normal tem, ele pode gerar código com verificação de limites e memória.

Os seus criadores dizem que ele é mais rápido que o GCC, o que provavelmente é verdade já que o objetivo do GCC é ser um compilador genérico. Mas o que torna o TCC útil é que ele pode compilar e executar código diretamente permitindo que ele seja usado para scripts dentro do Linux.

Na minha opinião, porém, a sua maior vantagem é que, como ele gera código real, ele pode ser usado também como a retaguarda de uma outra linguagem qualquer. Isso torna a implementação da linguagem muito mais simples.

Para os interessados, como eu, vale a pena dar uma olhada. O melhor é que ele é licenciado sob a LGPL, o que permite sua utilização em qualquer tipo de projeto além de ter o código aberto.

§ 4 Responses to Tiny C Compiler"

  • Dennis says:

    Você trabalha com linguagem C aplicada a internet ou para outro tipo de aplicação ?

    Não vai me dizer que você está implementando uma nova linguagem !

  • Ronaldo says:

    Respondendo à sua primeira pergunta, em minha carreira de programador, na verdade, o C foi uma das linguagens que menos usei. Eu me interessei pelo TCC por que qualquer coisa relacionada a compiladores me interessa.

    Para responder à sua segunda pergunta, eu estou realmente implementando um linguagem. É um dos meus projetos pessoais a longo prazo. Eu venho lendo e recolhendo informações ao longo dos últimos poucos anos procurando dar forma à linguagem e esse TCC pode ser uma maneira de resolver a parte da geração de código com mais facilidade já que a sintaxe e a semântica são os aspectos que me interessam mais.

  • A sintaxe a a semântica, aparentemente, vão influenciar as entranhas do compilador/interpretador. A meu ver, é por aí ue se deve começar: “Como eu devo escrever um programa?”. Só que, até hoje, o que eu vejo são linguagens espelhadas em linguagens mais velhas que foram espelhadas nas velhas linguagens matemáticas renascentistas, muito anteriores a informática. Usam coisas consumidoras de recursos como uso excessivo de parêntesis, a notação matemática infixed (“1 + 1” em vez de “1 1 +” ou “soma 1 1”, p.ex.), o uso excessivo de separadores de comandos, etc.

  • Ronaldo says:

    Escrever a gramática da linguagem primeiro é de praxe. Resolve os problemas imediatos de sintaxe. A semântica é mais complicada e tende a mudar um pouco na implementação, com as barreiras e avanços encontrados.

    Eu discordo um pouco é da questão da notação. Acho que a notação não deve influenciar a linguagem no sentido de limitar a escolha. Ela deve ser o que resolve o problema. Afinal de contas, o processamento dessa parte é o que menos custoso.

What's this?

You are currently reading Tiny C Compiler at Superfície Reflexiva.

meta