Compilador: Diferenzas entre revisións

Na Galipedia, a Wikipedia en galego.
Contido eliminado Contido engadido
SieBot (conversa | contribucións)
VolkovBot (conversa | contribucións)
m bot Modificado: ml:കംപൈലർ
Liña 72: Liña 72:
[[lv:Kompilators]]
[[lv:Kompilators]]
[[mk:Компајлер]]
[[mk:Компајлер]]
[[ml:കംപൈലര്‍]]
[[ml:കംപൈലർ]]
[[ms:Penyusun]]
[[ms:Penyusun]]
[[nl:Compiler]]
[[nl:Compiler]]

Revisión como estaba o 5 de febreiro de 2010 ás 08:46

Un compilador é un programa que transforma o código fonte (código escrito normalmente nunha linguaxe de alto nivel) nunha secuencia de instruccións (programa) que será executada por un sistema computacional. O código de alto nivel tamen se designa como código fonte ou source code. O código compilado designase como código obxecto ou obxect code.

A arquictetura convencional dun compilador dividese en Análise e Síntese. A análise pode ser subdividida á súa vez en análise léxica, análise sintática e análise semántica. A Síntese é máis variada, podendo estar composta polas etapas de xeración de código intermedio, optimización de código e xeración de código final (ou código máquina). Somente esta última etapa é obrigatoria.

Nas linguaxes de programación híbridas, o compilador ten o papel de converter o código fonte nun código chamado de "byte code", que é unha linguaxe de baixo nivel. Un exemplo deste comportamento é o do compilador da linguaxe Java que, en vez de xerar código da máquina hóspede (onde se está executando o compilador), xera un código universal, entendible por calquer "intérprete Java", chamado Java Byte Code.

Un compilador é un dos dous tipos máis xerais de tradutores, sendo que o segundo tipo que a el debe compararse é un intérprete.

Normalmente, o código fonte está escrito nunha linguaxe de programación de alto nivel, con gran capacidade de abstracción, e o código obxecto nunha linguaxe de baixo nivel, como unha secuencia de instrucións a executar pola CPU(s).

O proceso de compilación componse de análise e síntese. A análise ten como obxectivo entender o código fonte e representalo nunha estrutura intermedia. A síntese constrúe o código obxecto a partir desta representación intermedia.

A análise pode ser subdividida aínda en análise léxica, análise sintáctica e análise semántica. A síntese é máis variada, podendo estar composta polas etapas de xeración de código intermedio, optimización de código e xeración de código final (ou código máquina), e soamente esta última etapa é obrigatoria.

Clasicamente, un compilador traduce un programa dunha linguaxe textual facilmente entendida por un ser humano para unha linguaxe de máquina, específica dun procesador e sistema operativo. Porén, son comúns os compiladores que xeran código para unha máquina virtual que é, despois, procesada por un intérprete.

En linguaxes de programación híbridas, o compilador ten o papel de converter o código fonte nun código chamado byte code, que é unha linguaxe de baixo nivel. Un exemplo deste comportamento é o do compilador da linguaxe Java que, en vez de xerar código da máquina hospedeira (onde se está executando o compilador), xera código chamado Java Bytecode.

Un compilador chámase de compilador Just in Time (JIT) cando o seu proceso de compilación ocorre xusto cando se chama ao código. Normalmente, o usuario ten a percepción de que un compilador JIT é un intérprete.

Moitos compiladores inclúen preprocesadores. Un preprocesador normalmente é responsábel das mudanzas no código fonte destinadas de acordo coas decisións tomadas en tempo de compilación. Por exemplo, un programa en C permite instrucións condicionais para o preprocesador que, ao preprocesarse, incluirá ou non parte do código segundo que unha asertiva lóxica sexa verdadeira ou falsa, ou simplemente un termo estea definido ou non. Tecnicamente, os preprocesadores son moito máis simples que os compiladores e vense polos desenvolvedores como programas á parte, a pesar de que esa visión non sexa necesariamente compartida polo usuario.

Outra parte separada do compilador que moitos usuarios ven como integrada é o linker, coa función de unir varios programas xa compilados dunha forma independente e unificalos nun programa executábel. Iso inclúe colocar o programa final nun formato compatíbel coas necesidades do sistema operativo para cargalo en memoria e colocalo en execución.

Vexa tamén


Este artigo tan só é un bosquexo
 Este artigo sobre informática é, polo de agora, só un bosquexo. Traballa nel para axudar a contribuír a que a Galipedia mellore e medre.
 Existen igualmente outros artigos relacionados con este tema nos que tamén podes contribuír.