Nota: Estou surpreso que isso não tenha sido solicitado antes e, se tiver, não consegui encontrá-lo em uma pesquisa.
Estive em vários sites, li muitos artigos e ouvi muitas explicações. A maioria deles era boa, mas todos eram muito amplos ou muito complicados ou simplesmente ruins. Então, minha pergunta é: como um compilador funciona?
Se esta é uma pergunta ampla e difícil, por favor me diga. Se não, responda à pergunta.
Respostas:
Um compilador é um programa que converte o código fonte de outro programa de uma linguagem de programação em código executável.
O código fonte normalmente está em uma linguagem de programação de alto nível (por exemplo, Pascal, C, C ++, Java, Perl, C # etc.). O código executável pode ser uma sequência de instruções da máquina que podem ser executadas diretamente pela CPU ou pode ser uma representação intermediária que é interpretada por uma máquina virtual (por exemplo, código de bytes Java).
Em resumo, um compilador converte um programa de um formato legível por humanos em um formato legível por máquina.
Quanto ao funcionamento de um compilador, isso é realmente complicado. Existem livros e cursos universitários sobre o assunto. Tentarei descrever brevemente as principais etapas do processo, mas essa será uma visão geral muito superficial.
Mais uma vez, enfatizo que esta é uma descrição muito breve. Os compiladores modernos são muito inteligentes e, consequentemente, muito complicados.
fonte
Um compilador é um programa de computador (ou conjunto de instruções) que transforma o código-fonte escrito em uma linguagem de programação (o idioma-fonte) em outra linguagem de computador (o idioma-alvo, geralmente tendo uma forma binária conhecida como código-objeto). O motivo mais comum para querer transformar o código-fonte é criar um programa executável.
Os compiladores fazem a ponte dos programas de origem em linguagens de alto nível com o hardware subjacente. Um compilador requer:
fonte