Criar um Compilador C/C++ é algo muito difícil de escrever e leva anos, em muitos casos: décadas. E além disso é tentar competir com aqueles que dominam o mercado e serão quase impossíveis de serem substituidos.
A linguagem C teve seu primeiro compilador(cc
C Compiler) feito pelo seu próprio criador: Dennis Ritchie. Assim também foi o C++, o seu primeiro compilador(Cfront
) foi escrito pelo seu criador: Bjarne Stroustrup.
As pessoas sempre gostam de ferramentas alternativas por n motivos.
Então, nesse artigo veremos uma lista de 10 compiladores para C e C++ e eles estão separadas numericamente de acordo com sua eficiência e atualização da seguinte forma:
01
ao 03
- Os 3 melhores e mais atualizados do mercado;04
ao 07
- os compiladores alternativos que podem um dia entrar na lista dos melhores;08
e 09
- projetos recentes e com grande potencial;10
- por uma questão de honra! 😃Vamos à lista!
gcc/g++
Esse, com certeza, tinha e deve ser sempre o primeiro em qualquer lista de compiladores C/C++. Pois, é o que suporta o maior números de arquiteturas, o mais antigo entre os melhores e serviu de base/inspiração(em alguns casos até fork) para diversos outros, inclusive os outros dois melhores.
É um compilador completo e também otimizador produzido pelo Projeto GNU que suporta várias linguagens de programação, arquiteturas de hardware e sistemas operacionais. A Free Software Foundation (FSF) distribui o GCC como software livre sob a GNU General Public License (GNU GPL).
Com cerca de 15 milhões de linhas de código em 2019, o GCC é um dos maiores softwares gratuitos existentes.
Quando foi lançado pela primeira vez em 1987 por Richard Stallman, o GCC 1.0 foi nomeado o GNU C Compiler, pois lidava apenas com a linguagem de programação C. Foi estendido para compilar C++ em dezembro daquele ano. Hoje ele possui uma lista com diversas outras linguagens de programação
Exemplos de uso:
Compilar um código C++, ex.:
main.cpp
Compilar um código C, ex.:
main.c
clang/clang++
Esse compilador é, com certeza, o maior concorrente do GCC, podendo até(quem sabe um dia), ultrapassá-lo!
Foi desenvolvido inicialmente por Chris Lattner(talvez, atualmente o cara que mais entende de compiladores/interpretadores no mundo) e posteriomente por uma equipe, que inclui nomes, que o próprio Chris Lattner diz que: se não fosse eles o Clang/LLVM não seria tão bom.
O Chris Lattner já afirmou diversas vezes que foi entrevistado que sua maior fonte de inspiração foi o GCC.
O Clang nada mais é que um front-end para o LLVM.
LLVM é quem de fato transforma o código! Ele é escrito em C++ e levou cerca de duas décadas para ficar pronto, e isso só foi possível, pois a Apple foi a empresa responsável em sustentar financeiramente os programadores do LLVM durante todo esse tempo, mas também teve apoio das empresas: Google, Microsoft, ARM, Sony, Intel, e AMD.
O LLVM é também usado pelas linguagens: Zig, Swift, Rust, Codon e entre diversas outras. Por isso, essas novas linguagens são, na verdade, front-end para C++/LLVM, eis um dos motivos delas terem aparecido em tantos números nos últimos anos!
Além do C/C++ o Clang/LLVM também compila os códigos das linguagens: Objective-C, Objective-C++, OpenMP, OpenCL, RenderScript e CUDA.
Exemplos de uso:
Compilar um código C++, ex.:
main.cpp
Compilar um código C, ex.:
main.c
msvc/cl
MSVC era originalmente um produto autônomo, mas depois se tornou parte do Visual Studio. Possui ferramentas para desenvolver e depurar código C e C++.
Exemplos de uso:
Compilar um código C++, ex.:
main.cpp
Compilar um código C, ex.:
main.c
icpx/icx
Esse compilador faz parte do kit de ferramentas Intel OneAPI HPC que são compiladores Intel C, C++ ,SYCL e Data Parallel C++ (DPC++) para sistemas baseados em processador Intel, disponível para sistemas operacionais Windows, GNU/Linux e macOS
Exemplos de uso:
Compilar um código C++ no Linux, ex.:
main.cpp
Compilar um código C++ no Windows, ex.:
main.cpp
ibm-clang/ibm-clang++
XL C/C++ é o nome dos compiladores da IBM para C/C++.
São front-ends, incluindo um otimizador de alto nível. Apesar de independerem das arquiteturas de hardware, eles são destinados à: POWER, BlueGene/Q e IBM Z.
Exemplos de uso:
Compilar um código C++, ex.:
main.cpp
Compilar um código C, ex.:
main.c
CC
O compilador Oracle C++ consiste em um front-end, otimizador, gerador de código, montador, prelinker de modelo e editor de link. O comando CC
chama cada um desses componentes automaticamente, a menos que você use opções de linha de comando para especificar o contrário.
Exemplos de uso:
Compilar um código C++, ex.:
main.cpp
Compilar um código C, ex.:
main.c
eccp
Trata-se de um compilador front-end iC/C++ desenvolvido pela empresa: Edison Design Group.
Suporta o padrão ISO/IEC 14882. As versões C++17, C++14, C++11 e C++98/03 da linguagem são totalmente suportadas. O trabalho está em andamento para oferecer suporte aos recursos de linguagem C++20.
Exemplos de uso:
Compilar um código C++, ex.:
main.cpp
Compilar um código C, ex.:
main.c
circle
Circle é um compilador novo, diferente e inclui sua própria linguagem, a: Circle.
Ele se concentra em um novo mecanismo de versão que permite ao compilador corrigir defeitos e tornar o C++ mais seguro e produtivo, mantendo 100% de compatibilidade com os código existentes.
Apesar do projeto já haver versões disponíveis para uso, ele ainda está em desenvolvimento.
Se endereço na internet: https://www.circle-lang.org/
Até a data de publicação desse artigo, só versão disponível para distribuições GNU/Linux e a mais recente é o Build 198
.
Pode ser instalado da seguinte forma:
Testando o Circle:
Como o Circle não possui caminho definido para STL
, você deverá utilizar a biblioteca padrão de outro compilador para evitar o erro: cannot find header iostream
. Nesse caso, por exemplo, se você tem o GCC 11 instalado o caminho para compilar seria:
Para mais informações veja aqui.
Além de compilador e otimizador, o C++ Builder é também um ambiente de desenvolvimento rápido de aplicativos(RAD) para desenvolvimento de software na linguagem de programação C++.
Originalmente desenvolvido pela Borland ,a partir de 2009 é propriedade da Embarcadero Technologies , uma subsidiária da Idera. O C++ Builder pode compilar aplicativos para Windows (tanto IA-32 quanto x64 ), iOS, macOS e Android(somente 32 bits).
Seu endereço na internet e como instalar: https://www.embarcadero.com/products/cbuilder
O C++ Builder não possui ferramentas via linha de comando para usar diretamente no Terminal.
Lembra que no início do artigo falei sobre questão de honra? Pois é, o Comeau C/C++ é o novo nome do primeiro compilador C++: Cfront
.
Em 2006-2008, foi descrito como o único compilador C++ convencional a oferecer suporte total à palavra-chave export
.
Esse compilador é de propriedade da empresa Comeau Computing que é a membro-fundadora do comitê C++!
Hoje em dia, esse compilador está obsoleto, mas você pode obter mais informações aqui.
Espero que tenham gostado da lista e até a próxima!
cpp linguagemc gcc clang llvm cppdaily