Compilator

De Wikipedia, le encyclopedia libere
Saltar a: navigation, cercar
Le processo de compilation (anglese)

Un compilator es un programma de computator que prende codice fontal (in anglese: source code) e traduce lo a in un linguage de programmation plus fundamental. Iste linguages plus simple son linguage de assemblea (assembly language) o codice de machina (machine code). Le action de traducer le codice de alte nivello es appellate compilation. Le codice que ha essite simplificate es appellate codice compilate.

Pro plure programmatores, usar un compilator es plus facile que scriber le codice de machina a causa que il ha plure different codices de machina (il pote prender un longe tempore scriber pro cata del codices de machina). Per exemplo, le GNU C Compiler compila C a in codice de machina.

Compilation del linguage[modificar | modificar fonte]

Le codice fontal de un programma de computator es legite per un analysator lexical que scinde le texto a in parolas e symbolos cognoscite como "tokens". Le tokens son analyzed per un analysator syntactic (parser) que cerca patronos grammatic in le uso del tokens. Le analysator syntactic collige le datos de linguage pro un generator de codice intermedie pro converter le datos a in iste forma de codificar. Un optimisator (optimizer) lege le codice intermedie, que esseva generate ab le datos del analysator syntactic, e simplifica o omitte codice supernumerari, scribente un texto in linguage plus efficiente, que es alora cambiate a in le codice de machina del computator de objectivo.

Variantes[modificar | modificar fonte]

Al fin de cata passo de compilation le producto partial finite poteva esser immagazinate e alora solmente processate plus tarde. Linguages como Java usa isto succeditemente, ubi illos care le passo del traduction final pro instructiones que le processor comprende. Illos solmente face le passo del traduction final un vice que le programma in Java es currente super un computator. Isto es appellate interpretation o facer JIT (compilation just-in-time), dependente del technica usate.

Exemplo[modificar | modificar fonte]

Per exemplo, le codice fontal poterea continer un equation, como "x = 5*10 + 6 + 1" (lo que es de facto un assignamento). Le analysator lexical separarea cata numero e symbolo (como "*" o "+") a in tokens separate. Le analysator syntactic notarea le patrono de tokens, como essente un equation. Le generator de codice intermedie scriberea un forma de codificar que defini un variabile de immagazinage nominate "x" e assigna le producto numeric de 5*10 plus 6 e 1. Le optimisator simplificarea le calculation, de 5*10+6+1, como essente justo 57. In consequentia, le generator de codice de machina collocarea un variabile nominate "x" e pone le valor 57 a in iste loco de immagazinage in le memoria de computator, usante le instructiones de qualcunque chip de computator es usate.

Traducción.png
Iste articulo es un traduction a completar ab le Wikipedia in Simple English, articulo compiler