O que é um front-end para o compilador GCC?

0

Pelo que sei, um front-end é uma GUI para um programa ou para um site que tenha um aplicativo da Web no "back-end".

Estou confuso com o fato de que para o GCC (GNU C Compiler) existem muitos front-ends, mas parece que existem diferentes definições para o "front-end" neste contexto.

    
por yoyo_fun 11.04.2017 / 23:10

1 resposta

1

Um front-end do GCC transforma o código em um formulário interno intermediário usado pelo GCC. Um back end do GCC transforma essa forma interna intermediária na forma final que o compilador gera.

Portanto, por exemplo, se você tiver um front end C ++ e um front end Java, poderá aceitar a entrada em C ++ e Java. Se você tiver um backend x86 e um back end MIPS, poderá produzir executáveis para CPUs x86 e MIPS.

Se você quisesse adicionar suporte do Go ao GCC, escreveria um front end Go para o GCC. Então você poderia compilar o código Go para cada plataforma suportada pelo GCC.

Se você quisesse adicionar suporte ao GCC para uma nova CPU, você escreveria um novo back-end para essa CPU. Então você poderia produzir código para essa CPU usando todos os idiomas suportados pelo GCC.

    
por 11.04.2017 / 23:34