Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév.

Hasonló előadás


Az előadások a következő témára: "Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév."— Előadás másolata:

1 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév Készítette: dr. Nagy Ferenc I.

2 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 2 Programnyelvek Magasszintű nyelvek számítógép függetlenek hardware funkciókat nem biztosítják fordítóprogram szükséges, amely adott operációs rendszer alatt fut és adott operációs rendszer alá fordít Vannak: felhasználó orientált nyelvek (általános probléma könnyen megfogalmazható) probléma orientált nyelvek (speciális terület pl folyamatirányítás) Alacsonyszintű nyelvek Gépi kód (utasításai bináris numerikus értékek (kódok), operandusok, memóriacímek szintén binárisak) Assembly (A gépi kód szimbolikus megfelelője) A Makro-assembly közelít a magasszintű struktúrákhoz

3 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 3 A fordítóprogram működési sémaja Adatok  Forrásnyelvű program  Compiler  Tárgynyelvű program  Tárgyprogram végrehajtása  Eredmények  Fordítási időFutási idő A fordítási és a futási idő jól elkülönül Matematikailag: Q=T(P) ahol P - forrásnyelvű program Q - tárgynyelvű program T - fordítás (Transzláció, transzformáció) Ha többmenetes a fordító, akkor: P n-1 =T n (P n ), P n-2 =T n-1 (P n-1 ), …, P 1 =T 2 (P 2 ), Q=T n (P 1 ) ahol P i - közbülső programforma

4 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 4 Az interpreter működési sémaja Adatok  Forrásnyelvű program  Interpreter  Eredmények  Fordítási és futási idő A fordítási és a futási idő nem válik szét A hardware által vezérelt („bedrótozott”) interpreter neve formulavezérelt számítógép

5 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 5 A fordítóprogram szerkezete A forrásprogram általában egy file-ban van. Compiler(forrásnyelvű program)(tárgyprogram, lista) A fordítás lépései: 1.Source-handler(forrásnyelvű program, hibák)(karaktersorozat, lista) Input-handler(forrásnyelvű program)(karaktrersorozat) Output-handler(forrásnyelvű program, hibák)(lista) 2.Compiler(karaktersorozat)(tárgykód, hibák) 3.Kód-handler(tárgykód)(tárgyprogram) Forrás program  Source-handler  Compiler  Kód-handler  ListaTárgyprogram

6 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 6 Az analízis feladata A compiler analizálja a kapott karaktersorozatot és szintetizálva építi fel a tárgykódot. 1.Lexikális elemzés: az input karaktersorozatban a szimbolikus egységek meghatározása (konstansok, változók, kulcsszavak, operátorok felismerése, szóközök, kommentárok kiszűrése). A szimbólumok általában kódoltak (típuskód, cím a szimbólumtáblába) Lexikális elemző(karaktersorozat)(szimbólumsorozat, lexikális hibák) 2.Szintaktikus elemző(szimbólumsorozat)(szintaktikusan elemzett program, szintaktikus hibák) A programstruktúra felismerése Szintaxisfa kialakítása Lengyel formák 3.Szemantikus elemző(szintaktikusan elemzett program)(analizált program, szemantikai hibák) Szemantikai tulajdonságok vizsgálata (pl A+B esetén deklarált-e A és B, azonosak-e a típusok, van-e értékük)

7 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 7 A szintézis 1.Kódgenerátor(Analizált program)(tárgykód) Szintaxisfából, lengyel formából kód generálása Gépfüggő, operációs rendszerfüggő assembly vagy gépi kód kimenet 2.Kódoptimalizáló(tárgykód)(tárgykód) Azonos programrészek kiemelése alprogramba Hurkok ciklusváltozótól független részeinek hurkon kívüli elhelyezése Optimális regiszterhasználat

8 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 8 A PL/0 nyelv A PL/0 nyelv lehetőségei, eszközei: Értékadó utasítás Struktúrálási elvek - Sorozatképzés - Feltételes végrehajtás - Ciklusképzés Szubrutin Adattípusok: integer konstans és változó Aritmetkiai és relációs műveletek

9 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 9 PL/0 szintaxis - 1 Program Blokk. Utasítás CONST=, ; VAR, ; PROCEDURE ; ; Blokk AzonosítóSzám Azonosító

10 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 10 PL/0 szintaxis - 2 Utasítás CALL WHILE BEGINEND Utasítás ; IF Feltétel THEN Utasítás Feltétel DO Utasítás := AzonosítóKifejezés Azonosító

11 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 11 PL/0 szintaxis - 3 Feltétel = Kifejezés ODD Kifejezés <><><=>= Kifejezés - Tag + - +

12 Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 12 PL/0 szintaxis - 4 Tag Tényező ) ( / * Azonosító Szám Kifejezés


Letölteni ppt "Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév."

Hasonló előadás


Google Hirdetések