Fordítóprogramok gyakorlat tavaszi félév gyakorlatvezető:Kitlei Róbert szoba:D 2-616B honlap: időpontok:hétfő, 16:00-18:00 kedd, 16:00-18:00 ha a tárggyal kapcsolatban levelet szeretnétek írni, a tárgysor így nézzen ki: [fordprog] levél tárgya
Fordítóprogramok gyakorlat tavaszi félév a tárgy feltételei ETR-es jelentkezés 2 ZH, érvényesnek kell lenniük 3. ZH: lehet javítani az egyiket 3. ZH-val egyidőben gyakUV kötelező beadandó: fordítóprogram több részletben ajánlott jegyzet Csörnyei Zoltán: Fordítási algoritmusok
Beadandó fordítóprogram ● a nyelvtant 2 hét múlva kérem ● saját ötlet alapján ● ne egy már létező (program)nyelv egy része legyen ● egyszerű legyen ● ha a beadott szabályokról az derül ki, hogy nem teljesülnek rájuk a tanult elemzőfajták megkötései, később még lesz lehetőség módosítani őket (az eredeti jelleg megtartásával) ● pl.: kottázó, geometriai alakzatokat leíró, bibliai idézeteket felismerő nyelv
A félév során ezzel foglalkozunk lexikális elemzés felülről lefelé történő elemzések teljes visszalépéses korlátozott visszalépéses LL(1): egyszerű, epszilonmentes, normál alulról felfelé történő elemzések operátorprecedencia-grammatikák precedencia-grammatikák LR-elemzés: LR(0), SLR(0), LR(1), LALR(1) szimbólumtábla attribútum fordítási grammatikák
A félév során ezzel foglalkozunk ● adott – egy kettes típusú nyelvtan – az elemzendő szöveg (a nyelv egy mondata) ● keresendő a szintaxisfa, azaz a mondat levezetése ia=(){x()f}f=b ifazon(){ () } == feltételparaméter eljárás elágazás
Lexikális elemek ● a nyelvtan reguláris kifejezéssel, vagy azzal egyenértékű konstrukciókkal (hármas típusú nyelvtan, véges, determinisztikus automata) leírható része ● tipikusan ilyen szokott lenni – azonosító – konstans ● szám: egész, valós ● karakter, literál (string) – komment ● a lexikális elemző tervezőjétől függ, mit tekint lexikális elemnek
Lexikális elemek ● példa: mit tekintsünk lexikális elemnek? – S » A / A – A » aA | bA | a | b ● tekinthetnénk az egészet egy lexikális elemnek a következő reguláris szabállyal: (a | b) + / (a | b) + ● lehet, hogy csak A-t tekintjük annak: (a | b) + ● tekinthetjük még valamelyik A-t a perjellel, de ez nem hat természetesnek (ha nincs több előismeretünk)
Lexikális elemek
● feladat: keressük meg a következő nyelvtan lexikális elemeit, azok reguláris leírását, és az elemző automatát hozzájuk! – S » K A K M K A K ; S | K A K M K A K – A » karakter A | karakter – M » + | - | * | / – K » / * A F * / | – F » szóköz A F | ● egy célszerű lehetőség: – A: azonosító, karakter + – K: komment, / * kar + ( szóköz kar + )* * / | – M: műveleti jel, a nyelvtanban regulárisan szerepel – és ami megmaradt: a pontosvessző is lexikális elem
Lexikális elemek ● a lexikális elemzés szemantikai tartalommal is bír ● milyen lexikális elemek jelennek meg a következő programrészletekben? Cint j=*p/*q; FORTRANdo 10 i = 1.5 do 10 i = 1,5
Lexikális elemek ● adj meg olyan nyelvtant, amelynek eleme az alábbi szöveg! ● melyek a lexikális elemek benne? – add meg automatával és reguláris kifejezéssel is őket! ELTE