Movatterモバイル変換


[0]ホーム

URL:


Saltar para o conteúdo
Wikipédia
Busca

GNU Compiler Collection

Origem: Wikipédia, a enciclopédia livre.
(Redirecionado deGCC)
Esta página cita fontes, mas não cobrem todo o conteúdo
Esta páginacita fontes, mas quenão cobrem todo o conteúdo. Ajude ainserir referências (Encontre fontes:ABW  • CAPES  • Google (notícias • livros • acadêmico)).(Julho de 2020)
GNU Compiler Collection
GNU Compiler Collection
Logótipo do GCC
GNU Compiler Collection
Programa Olá Mundo gerado pelo GCC
GNU Compiler Collection
Programa Olá Mundo gerado pelo GCC
DesenvolvedorProjecto GNU
PlataformaGNU
Modelo do desenvolvimentoSoftware livre
Lançamento23 de maio de1987 (37 anos)
Versão estável11.2[1](28 de julho de 2021; há 3 anos)
Versão em teste11.2 RC[2](21 de julho de 2021; há 3 anos)
Escrito emC; eC++ desde 1 de junho de 2010[3]
Sistema operacionalMulti plataforma
Gênero(s)Compilador
LicençaGNU General Public License v3 com Exceção da Biblioteca de Tempo de Execução do GCC[4]
Estado do desenvolvimentoCorrente
Página oficialgcc.gnu.org

OGNU Compiler Collection (chamado usualmente porGCC) é um conjunto decompiladores delinguagens de programação produzido peloprojecto GNU para construir um sistema operativo semelhante ao Unix livre.[5] Faz parte do sistema operativoGNU eFSF, sendo uma das ferramentas essenciais para manter osoftware livre, pois permite compilar ocódigo-fonte em binários executáveis para as várias plataformas informáticas mais comuns. É distribuído pelaFree Software Foundation (FSF) sob os termos da licençaGNU GPL, disponível parasistemas operativosUNIX eLinux e certos sistemas operativos derivados tais como oMac OS X.

Visão geral

[editar |editar código-fonte]

O compilador GCC foi escrito porRichard Stallman em1987 para servir de compilador para o Projecto GNU. Em1997, um grupo de desenvolvedores descontentes com o ritmo lento e a natureza fechada do desenvolvimento oficial do compilador GCC, formou-se o projectoEGCS, que juntou váriasbifurcações experimentais num único projecto bifurcado do GCC. O desenvolvimento do EGCS, ao provar-se suficientemente mais vital que o GCC, foi finalmente "abençoado" como a versão oficial do GCC em Abril de1999. O projecto GCC é agora mantido por um grupo variado de programadores de todo o mundo e até à data tem sido adaptado a mais tipos deprocessadores esistemas operativos que qualquer outro compilador.

O GCC tem sido adaptado como compilador principal para construir e desenvolver para um número de sistemas, incluindoGNU/Linux, osBSDs,Mac OS X,NeXTSTEP,BeOS eHaiku.

O GCC é frequentemente eleito o compilador preferido para desenvolversoftware que necessita de ser executado em vários tipos dehardware. Diferenças entre compiladores nativos levam a dificuldades em escrever código que seja compilado correctamente em todos os compiladores e construir guiões que corram em todas as plataformas. Ao usar os compiladores do projecto GCC, o mesmoanalisador gramatical é usado em todas as plataformas, fazendo com que o se o código compila numa, muito provavelmente compilará em todas. O código poderá ser executado um pouco mais lento mas o potencial de redução de custos de produção tende a fazer com que seja a melhor opção disponivel.

Linguagens de programação

[editar |editar código-fonte]

Originalmente suportava somente alinguagem de programação C e era designadoGNU C Compiler(compilador C GNU). Com o tempo ganhou suporte às linguagensC++,Fortran,Ada,Java eObjective-C, entre outras.[6]

A partir da versão 4.0, o lançamento padrão da GCC inclui fachadas para:

Uma fachada paraCHILL foi previamente incluida mas posteriormente abandonada devido à falta de manutenção. A fachada G77 foi abandonada e substituida pela nova fachada GFortran que suporta Fortran 95. Também existem fachadas paraPascal,Modula-2,Modula-3,Mercury,VHDL,PL/1 eObjective-C++.

Arquitecturas

[editar |editar código-fonte]

O conjunto dos processadores suportados pelo GCC inclui:

Já foi suportado um vasto conjunto de processadores menos conhecidos que incluiA29K,ARC,Atmel AVR,C4x,CRIS,D30V,DSP16xx,FR-30,FR-V,Intel i960,IP2000,M32R,68HC11,MCORE,MMIX,MN10200,MN10300,NS32K,ROMP,Stormy16,V850 eXtensa. Processadores adicionais, tais como oD10V,PDP-10 eZ8000 já foram suportadas por versões do GCC mantidas separadamente da versão FSF.

Estrutura

[editar |editar código-fonte]

A interface externa do GCC é geralmente o padrão para os vários compiladores disponibilizados no sistema operativoLinux. Os utilizadores invocam um programadriver chamadogcc, que interpreta os argumentos do comando dado e decide que tipo de compiladores usar para cada ficheiro de entrada, depois corre oassembler (processo de compilação) na sua saida e então possivelmente corre olinker, que liga as bibliotecas de binários necessárias para produzir um ficheiro executável que é um programa de computador funcional e completo.

Cada compilador de linguagem é um programa separado que recebe código-fonte e produz código de linguagemAssembly. Todos os compiladores tem uma estrutura de interface comum; uma fachada relativa a cada linguagem de programação queanalisa gramaticalmente as linguagens e produz umaárvore abstracta de sintaxe e umback end que converte as árvores naRegister Transfer Language do GCC, executa várias optimizações e de seguida produz linguagem Assembly usandopattern matching específico de cada arquitectura.

Quase todo o GCC é escrito em C, apesar de grande parte da fachada deAda ser escrito em Ada.

Fachada

[editar |editar código-fonte]

Os front-ends variam internamente, tendo de produzir árvores que possam vir a ser usadas pelo backend. Alguns analisadores gramaticais usam uma especificação gramatical semelhante a do YACC. Outras são analisadores gramaticais recursivos por ordem decrescente.

Até recentemente, a representação da árvore do programa não era totalmente independente do processador-alvo.

Back-end

[editar |editar código-fonte]

Execução emBack-end ocorre quando o programa, após ter as informações necessárias, ocupa o tempo do processador para executar os comandos definidos anteriormente no código fonte. Neste momento, o programa se "retira", não dependendo de entradas manuais.

Programas em linguagem C podem ter sua alta performance melhor avaliada quando executam sem necessidade de entradas manuais. Isto ocorre em sistema que executam embackground onde, depois de executado, o programa processa as informações que lhe foram passadas ou as lê de um arquivo ou banco de dados. Desta forma, pode-se mensurar o tempo de execução deste programa, escrito na Linguagem C, com um programa escrito em outra linguagem. Quanto menor for a interface com o usuário, melhor para se avaliar a performance do programa.

Por definição, a implementação do compilador da Linguagem C deve gerar um código de máquina bem similar a da LinguagemAssembly (baixo nível). Esta característica possibilita que a execução emBack-end tenha uma quantidade mínima de instruções necessárias para obter o resultado que foi determinado no código fonte.

Bibliografia

[editar |editar código-fonte]

Referências

  1. «GCC 11 Release Series». gcc.gnu.org. 28 de julho de 2021. Consultado em 8 de abril de 2022 
  2. Richard Biener (21 de julho de 2021).«GCC 11.2 Release Candidate available».gcc (Lista de grupo de correio). Consultado em 8 de abril de 2022 
  3. «GCC allows C++ – to some degree».The H. 1 de junho de 2010 
  4. «Exceção da Biblioteca de Tempo de Execução do GCC». Projeto GNU. Consultado em 3 de maio de 2019 
  5. GNU.«Linux e o Sistema GNU».FSF. Consultado em 6 de março de 2018 
  6. «GCC Front Ends». Projeto GNU. Consultado em 13 de março de 2020 

Ver também

[editar |editar código-fonte]

Ligações externas

[editar |editar código-fonte]
História
GNU não é um gnu
Licenças
Software
Porta-Vozes
Outros assuntos
Obtida de "https://pt.wikipedia.org/w/index.php?title=GNU_Compiler_Collection&oldid=65454191"
Categorias:
Categorias ocultas:

[8]ページ先頭

©2009-2025 Movatter.jp