Lista dos 10 Melhores Compiladores C/C++

Aqueles que estão atualizados!


Lista dos 10 Melhores Compiladores C/C++


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:

  • 1. do número 01 ao 03 - Os 3 melhores e mais atualizados do mercado;
  • 2. entre os números 04 ao 07 - os compiladores alternativos que podem um dia entrar na lista dos melhores;
  • 3. os números: 08 e 09 - projetos recentes e com grande potencial;
  • 4. e finalmente o número 10 - por uma questão de honra! 😃

Vamos à lista!


01. GNU Compiler Collection gcc/g++

GCC

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

g++ main.cpp

Compilar um código C, ex.: main.c

gcc main.c


02. Clang/LLVM clang/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

clang++ main.cpp

Compilar um código C, ex.: main.c

clang main.c


03. Microsoft Visual C++ msvc/cl

MSVC

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

cl main.cpp

Compilar um código C, ex.: main.c

cl main.c


04. Intel C++ Compiler icpx/icx

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

icpx main.cpp

Compilar um código C++ no Windows, ex.: main.cpp

icx main.cpp


05. IBM XL C/C++ Compilers ibm-clang/ibm-clang++

IBM XL C/C++

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

ibm-clang++ main.cpp

Compilar um código C, ex.: main.c

ibm-clang main.c

06. Oracle C++ Compiler CC

Oracle

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

CC main.cpp

Compilar um código C, ex.: main.c

CC main.c

07. EDG C++ Front End eccp

EDG

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

eccp -c main.cpp

Compilar um código C, ex.: main.c

eccp -c main.c

08. Circle circle

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:

mkdir bin-circle
cd bin-circle
wget https://www.circle-lang.org/linux/build_198.tgz
tar zxvf circle_build_198.tgz
sudo install -v circle /usr/local/bin/

Testando o Circle:

cat << EOF >> main.cpp  
> #include <iostream>
> 
> int main(){
>   std::cout << "Hello Circle\n";
> }
> EOF

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:

circle -nostdinc \
      -I/usr/include/c++/11 \
      -I/usr/include/x86_64-linux-gnu/c++/11 \
      -I/usr/lib/gcc/x86_64-linux-gnu/11/include \
      main.cpp

Para mais informações veja aqui.


09. C++ Builder

C++ Builder

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.


10. Comeau C/C++

Cfront

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


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo

Artigos Relacionados




Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!