Programación en linguaxes estruturadas/Programas tradutores

En Galilibros, o Wikibooks en galego.


Chámaselle linguaxe base á linguaxe na que está escrito o programa tradutor. Estes programas tradutores clasifícanse en dous grandes grupos:

Compiladores[editar]

Un compilador traduce o código fonte xerando un programa equivalente ao contido do código fonte pero en linguaxe máquina. O compilador trata o código fonte que se lle fornece coma un todo, polo que o programa non pode compilarse se non se rematou a súa edición. Os diagnósticos de erros, en caso de habelos, aparecen todos á vez ao rematar o intento de compilación. A modificación dunha simple instrución no programa fonte require reiniciar de novo o proceso de compilación.

Tras a tradución executarase automaticamente un programa denominado ligador, encargado de incorporar o código das funcións da biblioteca de funcións da linguaxe utilizada ao programa.

O programa ligador obterá un único ficheiro executable unindo os módulos do programa compilados separadamente e as funcións da biblioteca de funcións do compilador chamadas dende o programa.

A miúdo o produto do compilador é un conxunto de módulos en código máquina que se corresponden cos distintos programas subordinados, funcións ou módulos de biblioteca chamados dende o programa, todos estes módulos están relacionados uns cos outros mediante chamadas cruzadas e poden compartir estruturas de datos comúns. Todos estes segmentos adoitan expresarse en código móbil, que contén enderezos relativos e que por tanto non poderán ser executados ata que estes non sexan substituídos por enderezos absolutos.

A misión do programa montador de ligazóns (ligador) consiste en fornecer todos os enderezos axeitados para todas as instrucións de chamada e de retorno, de modo que os módulos correctamente ligados entre si, xerando o módulo executable ou programa executable.

Un exemplo de uso do compilador é o dun programa en C. Un programa escrito en C precisa dun compilador. A partires do código en C o compilador xera un programa que se poderá executar en toda máquina do mesmo tipo de aquela para a que se compilou.

Intérpretes[editar]

A diferencia do programa compilador, un intérprete non xera no disco duro un ficheiro co programa executable a partires do programa fonte, senón que efectúa a tradución e maila execución simultaneamente para cada unha das sentencias ou instrucións do programa.

Un intérprete verifica cada liña do programa cando se escribe, o que ten a vantaxe de facilitar a posta a punto do programa. Porén, a execución do programa resulta máis lenta xa que sempre supón unha tradución simultánea.

Algunhas linguaxes coma Python interprétanse en lugar de compilarse.