Cfront - Cfront

Cfront foi o compilador original para C ++ (então conhecido como " C com Classes") por volta de 1983, que converteu C ++ em C; desenvolvido por Bjarne Stroustrup na AT&T Bell Labs. O pré-processador não entendia toda a linguagem e muito do código foi escrito por meio de traduções . Cfront tinha um analisador completo , construía tabelas de símbolos e construía uma árvore para cada classe , função , etc. Cfront era baseado em CPre, um compilador C iniciado em 1979.

Como o Cfront foi escrito em C ++, foi um desafio inicializar em uma máquina sem um compilador / tradutor C ++. Junto com as fontes Cfront C ++, uma versão especial "meio pré-processada" do código C resultante da compilação do Cfront com ele mesmo também foi fornecida. Este código C deveria ser compilado com o compilador C nativo, e o executável resultante poderia então ser usado para compilar as fontes Cfront C ++.

A maior parte do esforço de portabilidade para colocar o Cfront em execução em uma nova máquina estava relacionada à E / S padrão. Os fluxos de C ++ do Cfront estavam intimamente ligados aos fluxos de E / S em buffer da biblioteca C, mas havia pouca interação com o resto do ambiente C. O compilador poderia ser portado para a maioria dos derivados do System V sem muitas mudanças, mas os sistemas baseados em BSD geralmente tinham muito mais variações em suas bibliotecas C e estruturas stdio associadas.

Cfront definiu a linguagem até por volta de 1990, e muitos dos casos mais obscuros em C ++ estavam relacionados à sua abordagem de tradução de C ++ para C. Alguns vestígios do método de tradução do Cfront ainda são encontrados nos compiladores C ++ de hoje; name mangling foi originado por Cfront, já que os linkers relativamente primitivos na época não suportavam informações de tipo em símbolos, e alguns modelos de instanciação de template são derivados dos esforços iniciais de Cfront. C ++ (e Cfront) foi diretamente responsável por muitas melhorias em vinculadores Unix e formatos de arquivo de objeto , já que foi a primeira linguagem amplamente usada que exigia verificação de tipo de link-time, símbolos fracos e outros recursos semelhantes.

O Cfront 4.0 foi abandonado em 1993 após uma tentativa fracassada de adicionar suporte a exceções . A linguagem C ++ cresceu além de suas capacidades; no entanto, um compilador com abordagem semelhante tornou-se disponível posteriormente, ou seja, Comeau C / C ++ .

Referências

Notas
  • Bjarne Stroustrup. "Evoluindo uma linguagem no e para o mundo real: C ++ 1991-2006" (PDF) . Arquivado do original (PDF) em 20/11/2007.
  • Bjarne Stroustrup. "FAQ de Bjarne Stroustrup" .
  • Bjarne Stroustrup. "O Design e a Evolução do C ++" .

links externos