„Fordítóprogram” változatai közötti eltérés
[nem ellenőrzött változat] | [nem ellenőrzött változat] |
a GrinBot - robot Adding:fi |
Egyértelműsítés |
||
1. sor: | 1. sor: | ||
:''Ez a szócikk azokkal a fordítóprogramokkal foglalkozik, melyek egyik programozási nyelvről a másikra alakítanak át kódot. A nyelvi fordítással kapcsolatban lásd a [[Gépi fordítás]] szócikket.'' |
|||
⚫ | |||
⚫ | |||
== Csoportosítás == |
== Csoportosítás == |
||
10. sor: | 12. sor: | ||
== Kivitelezés == |
== Kivitelezés == |
||
Régebben a fordítóprogramok több [[fázis]]ban működtek. Mikor egy fázis véget ért, a fordítóprogram felszabadíthatta a használatban levő [[memória (számítástechnika)|memóriát]]. |
Régebben a fordítóprogramok több [[fázis]]ban működtek. Mikor egy fázis véget ért, a fordítóprogram felszabadíthatta a használatban levő [[memória (számítástechnika)|memóriát]]. |
||
A mai modern fordítóprogramok csak két [[fázis]]t használnak: |
A mai modern fordítóprogramok csak két [[fázis]]t használnak: |
A lap 2004. augusztus 31., 16:43-kori változata
- Ez a szócikk azokkal a fordítóprogramokkal foglalkozik, melyek egyik programozási nyelvről a másikra alakítanak át kódot. A nyelvi fordítással kapcsolatban lásd a Gépi fordítás szócikket.
A fordítóprogram (angolul compiler) olyan számítógépes program, amely valamely programozási nyelven írt programot képes egy másik programozási nyelvre lefordítani.
Csoportosítás
A fordítandó programot forrásprogramnak (nyelvét forráskód), a lefordított programot tárgyprogramnak (nyelvét tárgynyelvnek) nevezzük.
E szerint a fordítóprogramokat a következőképp csoportosíthatjuk:
- natív-kódra fordítók
- több platformra fordítók
- magasszintű nyelvből egy másik magasszintű nyelvre
Kivitelezés
Régebben a fordítóprogramok több fázisban működtek. Mikor egy fázis véget ért, a fordítóprogram felszabadíthatta a használatban levő memóriát. A mai modern fordítóprogramok csak két fázist használnak:
- az elsőben lefordítja a forráskódot egy közbeeső kódra (előrész)
- a masodik fázisban torténik az úgynevezett fordítási eljárás. (hátrész)
Előrész
Az első fázis maga is több al-fázisból áll:
- lexikai ellenőrzés: a forráskód felbontása több egységre (jelkép), például: fenntartott szavak, változók vagy jelek.
- szintaktikai ellenőrzés: megfelel-e forráskód a nyelv szintaktikai specifikációinak
- szemantikai ellenőrzés: a típusellenőrzéseket hatja végre a fordítóprogram
- a közbeeső kód generálása
Hátrész
Itt történik a közbeeső kód lefordítása gépi kódra. Ez is több lépésből tevődik össze:
- optimizálás: a közbeeső kód átalakítása kisebb és gyorsabb formába (a program működése ettől nem változik)
- kódgenerálás: a gépi kód generálása.
Fordítóprogram vagy interpreter?
A magasszintű nyelveketkét kategóriába lehet sorolni: lefordított nyelvek és interpretált nyelvek. Általában a lefordított nyelvek sokkal gyorsabbak, mivel az interpreter is kénytelen a kódot lefordítani gépi kódra futás közben.
Történet
Az 1990-es évek során nagyszámban jelentek meg szabadfordítóprogramok a GNU projekt és az nyílt forráskód mozgalomban. Sok közűlük nagyon jó minőségűek és jó példaként szolgálhatnak bárkinek, aki ebben a témában érdeklődik.