FORMÁLIS NYELVEK ÉS FORDÍTÓPROGRAMOK. LABORGYAKORLATOK

Hasonló dokumentumok
LIMBAJE FORMALE ȘI COMPILATOARE Lucrări de laborator FORMÁLIS NYELVEK ÉS FORDÍTÓPROGRAMOK


A TANTÁRGY ADATLAPJA

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

A számítógépes nyelvészet elmélete és gyakorlata. Automaták

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

Formális nyelvek és automaták vizsgához statisztikailag igazolt várható vizsgakérdések

A TANTÁRGY ADATLAPJA

Automaták mint elfogadók (akceptorok)

9. előadás Veremautomaták 1.


Automaták és formális nyelvek

Emlékeztető: LR(0) elemzés. LR elemzések (SLR(1) és LR(1) elemzések)

Számítástudomány matematikai alapjai segédlet táv és levelező

Feladatok. 6. A CYK algoritmus segítségével döntsük el, hogy aabbcc eleme-e a G = {a, b, c}, {S, A, B, C}, P, S nyelvtan által generált nyelvnek!

A TANTÁRGY ADATLAPJA

A TANTÁRGY ADATLAPJA

Fordítóprogramok (A,C,T szakirány) Feladatgy jtemény

Számításelmélet. Második előadás

,,BABEŞ-BOLYAI TUDOMÁNYEGYETEM LINEÁRIS ALGEBRA

Atomataelmélet: A Rabin Scott-automata

A TANTÁRGY ADATLAPJA

TANTÁRGYI ADATLAP 1. A

LINEÁRIS EGYENLETRENDSZEREK október 12. Irodalom A fogalmakat, definíciókat illetően két forrásra támaszkodhatnak: ezek egyrészt elhangzanak

A számítógépes nyelvészet elmélete és gyakorlata. Formális nyelvek elmélete

A TANTÁRGY ADATLAPJA

Formális nyelvek és gépek (definíciós és tétel lista - 09/10/2)

I. Specifikáció készítés. II. Algoritmus készítés

A TANTÁRGY ADATLAPJA

Fordítóprogramok. Aszalós László szeptember 7.

A TANTÁRGY ADATLAPJA

A TANTÁRGY ADATLAPJA

A Számítástudomány alapjai

A TANTÁRGY ADATLAPJA

Turing-gép május 31. Turing-gép 1. 1

A szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete

Meghirdetés féléve 2 Kreditpont Összóraszám (elm+gyak) 2+0

2 Ó b u d a i E g y e t e m

TANTÁRGYI ADATLAP. Mechatronika/Mechatronikus mérnök Végzettség

Formális nyelvek és automaták

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.

Szakirodalmi összefoglaló készítése

Irodalom. (a) A T, B T, (b) A + B, C + D, D C, (c) 3A, (d) AD, DA, B T A, 1 2 B = 1 C = A = 1 0 D = (a) 1 1 3, B T = = ( ) ; A T = 1 0

Informatika 1 2. el adás: Absztrakt számítógépek

Differenciál - és integrálszámítás. (Kreditszám: 7) Tantárgyfelelős: Dr. Losonczi László egyetemi tanár. Meghirdető tanszék: Analízis Tanszék

ALEXANDRU IOAN CUZA TUDOMÁNYEGYETEM, JÁSZVÁSÁR

A TANTÁRGY ADATLAPJA

A TANTÁRGY ADATLAPJA

Véges automaták, reguláris nyelvek

Formális Nyelvek - 1.

A TANTÁRGY ADATLAPJA

A TANTÁRGY ADATLAPJA

Programozási módszertan

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Logaritmus

Egész számok. pozitív egész számok: 1; 2; 3; 4;... negatív egész számok: 1; 2; 3; 4;...

Rekurzió. Dr. Iványi Péter

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Sorozatok II.

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

SYLLABUS. Partiumi Keresztény Egyetem, Nagyvárad Bölcsészettudományi Kar magyar nyelv és irodalom

Informatika szigorlat. A lexikális elemző feladatai közé tartozik a whitespace karakterek (a

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI

Chomsky-féle hierarchia

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Tantátgyi követelmények Család- és nevelésszociológiai alapismeretek

Fordítóprogramok felépítése, az egyes programok feladata. A következő jelölésmódot használjuk: program(bemenet)(kimenet)

Gyakorló feladatok az 1. nagy zárthelyire

A szemantikus világháló oktatása

Felvételi tematika INFORMATIKA

A TANTÁRGY ADATLAPJA

A TANTÁRGY ADATLAPJA

Informatika feladatmegoldó verseny. Kiss Elemér Szakkollégium február 19. Dr. Kovács Lehel István

Bevezetés az informatikába

TANTÁRGYI ADATLAP. Mechatronika/Mechatronikus mérnök Végzettség

FIGYELEM! NE NYISSA KI ADDIG, AMÍG A FELVIGYÁZÓ TANÁR NEM AD ERRE VONATKOZÓ UTASÍTÁST!

A TANTÁRGY ADATLAPJA

A 2018-as Modellező (A) specializáció tanegységei. Számítógépes rendszerek

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

TANTÁRGYI ADATLAP. 2.7 A tantárgy jellege DI

A TANTÁRGY ADATLAPJA

Általános információk az előadásokról, szemináriumokról, szak- vagy laborgyakorlatokról

A Turing-gép. Formális nyelvek III.

A TANTÁRGY ADATLAPJA

Diszkrét matematika 2 (C) vizsgaanyag, 2012 tavasz

A TANTÁRGY ADATLAPJA


Felmentések. Logika (1. gyakorlat) 0-adrendű szintaktika 2009/10 II. félév 1 / 21

1. Az informatika alapjai (vezetője: Dr. Dömösi Pál, DSc, egyetemi tanár) Kredit

Hamming-kód. Definíció. Az 1-hibajavító, perfekt lineáris kódot Hamming-kódnak nevezzük. F 2 fölötti vektorokkal foglalkozunk.

Turing-gépek. Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1

INFORMATIKAI ALAPISMERETEK

A TANTÁRGY ADATLAPJA

Felmentések. Ha valaki tanár szakos, akkor mivel neki elvileg a hálóban nincs logika rész, felmentést kaphat a logika gyakorlat és vizsga alól.

A TANTÁRGY ADATLAPJA

Lineáris egyenletrendszerek Műveletek vektorokkal Geometriai transzformációk megadása mátrixokkal Determinánsok és alkalmazásaik

Teljes visszalépéses elemzés

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

A digitális számítás elmélete

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Átírás:

FORMÁLIS NYELVEK ÉS FORDÍTÓPROGRAMOK LABORGYAKORLATOK http://www.ms.sapientia.ro/~kasa/formalis.htm 0

Formális nyelvek és fordítóprogramok http://www.ms.sapientia.ro/~kasa/formalis.htm Jelenlét kötelezõ! Ez a követelmény azokra is vonatkozik, akik a tárgyat nem elõször veszik fel. Akinek ütközik az órarendje, keressen meg. A vizsgajegy: 50% laborjegy, 50% írásbeli vizsga. 1. elõadás 2. elõadás 3. elõadás 4. elõadás 5. elõadás 6. elõadás 7. elõadás 8. elõadás 9. elõadás 10. elõadás 11. elõadás 12. elõadás 13. elõadás 14. elõadás Szakirodalom 1. Csörnyei Z., Kása Z.: Formális nyelvek és fordítóprogramok, Kolozsvári Egyetemi Kiadó, 2007. PDF Zip 2. Csörnyei Zoltán, Fordítóprogramok, Typotex Kiadó, Budapest, 2006. 3. Csörnyei Zoltán, Fordítási algoritmusok, Erdélyi Tankönyvtanács, Kolozsvár, 2000. 4. Demetrovics János, Denev, J., Pavlov, R., A számítástudomány matematikai alapjai, Nemzeti Tankönyvkiadó, Budapest, 1999. 5. Fülöp Zoltán, Formális nyelvek és szintaktikus elemzésük, Polygon, Szeged, 1999. 6. Livovschi, L., Popovici, C. P., Georgescu, H., Tãndãreanu, N., Bazele informaticii, Editura Didacticã si Pedagogicã, Bucuresti, 1981. 7. Manna, Z., Programozáselmélet, Műszaki Könyvkiadó, Budapest, 1981. 8. Révész György, Bevezetés a formális nyelvek elméletébe, Akadémiai Kiadó, Budapest, 1979. 9. Bach Iván, Formális nyelvek, Typotex, Budapest, 2005. http://mek.oszk.hu/05000/05099/ 10. Motogna Simona, Metode de poiectare a compilatoarelor, Editura Albastrã, Cluj-Napoca, 2006. 11. Grigoras Gheorghe, Constructia compilatoarelor - Algoritmi fundamentali, Editura Universitatii Al. I. Cuza, Iasi, ISBN 973-703-084-2, 2005. 12. Gyimóthy Tibor, Havasi Ferenc, Kiss Ákos: Fordítóprogramok, Typotex Kiadó, 2011. PDF 13. Aszalós László, Herendi Tamás: Fordítóprogramok feladatgyûjtemény. PDF 1

1. labor (2016. szept. 19 28.) 1. Oldjuk meg a 18. oldalon levő gyakorlatokat. (CsZ, KZ: Formális nyelvek és fordítóprogramok. Innen letölthető!) 2. Írjunk programot, amely megjelenít a képernyõn egy szövegállományt. Bekér egy szót, megkeresi és megjelöli annak elsõ elõfordulását, majd kérésre folytatja a következõ elõfordulással. CsZ, KZ: Formális nyelvek és fordítóprogramok, 18. old. 2

2. labor (2016. okt. 3. okt. 8.) Determinisztikus véges automata működése Írjunk programot, amely szimulálja egy determinisztikus véges automata működését! A program szövegállományból olvassa be az automata adatait, írja ki azokat a képernyőre, majd tetszőleges számú szóra vizsgálja meg, hogy az automata felismeri-e őket. A bemeneti állomány alakja: első sor: állapotok, szóközökkel elválasztva második sor: bemeneti ábécé elemei, szóközökkel elválasztva harmadik sor: kezdő állapot negyedik sor: végállapotok, szóközökkel elválasztva következő sorokban egy-egy átmenet: állapot betű állapot (szóközökkel elválasztva) Példa bemeneti állományra: bemeneti állomány: q0 q1 q2 0 1 2 q0 q0 q0 0 q0 q0 1 q1 q0 2 q2 q1 0 q1 q1 1 q2 q1 2 q0 q2 0 q2 q2 1 q0 q2 2 q1 3

3. labor (2016. okt. 10 15.) Oldjuk meg a CsZ, KZ: Formális nyelvek és fordítóprogramok c. könyv 59-60. oldalán levô 2-1., 2-2., 2-3. és 2-4. gyakorlatot. Innen letölthetô! 59 60 old. 4

4. labor. (2016. okt. 17 22.) Két determinisztikus véges automata ekvivalenciájának vizsgálata Írjunk programot két véges automata ekvivalenciájának vizsgálatára. A bemeneti adatok két különböző állományban vannak. Egy bemeneti állomány alakja: első sor: állapotok, szóközökkel elválasztva második sor: bemeneti ábécé elemei, szóközökkel elválasztva harmadik sor: kezdő állapot negyedik sor: végállapotok, szóközökkel elválasztva következő sorokban egy-egy átmenet: állapot betű állapot (szóközökkel elválasztva) 5

5. labor (2014. okt. 24 29.) Oldjuk meg a CsZ, KZ: Formális nyelvek és fordítóprogramok c. könyv 60-61. oldalán levő 2-8., 2-9., 2-10. és 2-11. gyakorlatokat. Innen letölthetô! 60-61. old. 6

6. labor (2016. okt. 31 nov. 5.) Oldjuk meg a CsZ, KZ: Formális nyelvek és fordítóprogramok c. könyv 59 60. oldalán levő 2-5., 2-6., 2-7. és 2-8. gyakorlatokat. Innen letölthetô! 59 60. old. 7

7. labor. (2016. nov. 7. nov. 12.) Determinisztikus veremautomata működésének szimulálása A program szövegállományból olvassa be az automata adatait, írja ki azokat a képernyõre. A bemeneti állomány alakja: elsõ sor: állapotok, szóközökkel elválasztva második sor: bemeneti ábécé elemei, szóközökkel elválasztva harmadik sor: veremábécé elemei, szóközökkel elválasztva negyedik sor: kezdõ állapot ötödik sor: verem kezdõszimbóluma hatodik sor: végállapotok, szóközökkel elválasztva (vagy üres sor) következõ sorokban egy-egy átmenet: állapot bemeneti-betü verembetü szó állapot (szóközökkel elválasztva) Írjunk programot az automata működésére! Példa bemeneti állapotra: q0 q1 q2 a b z0 z1 q0 z0 q0 q0 a z0 z0z1 q1 q1 a z1 z1 z1 q1 q1 b z1 eps q2 q2 b z1 eps q2 q2 eps z0 eps q0 8

8. labor (2016. nov. 14 19.) Zárthelyi dolgozat 9. labor (2016. nov. 21 26.) Oldjuk meg a CsZ, KZ: Formális nyelvek és fordítóprogramok c. könyv 83. oldalán levô gyakorlatokat. Innen letölthetô! 83. old. 9

10

10. labor (2016. nov. 28 dec. 3.) 11

11. labor (2016. dec. 5 10.) Adott LL(1) nyelvtan esetében írjunk programot az L*BF* mátrix kiszámítására. Bemeneti adatként adjuk meg az F, B, L mátrixokat. Az F+ és L+ kiszámítására használjuk a WARSHALL-algoritmust (8. elôadás, 7. oldal). Két mátrix szorzatára használjuk a 11. elôadás 4. oldalán megadott Warshall nevu eljárást. Példa innen letölthetô. Warshall-algoritmus (8. elôadás, 7. oldal): Két mátrix szorzatára használjuk a 11. elôadás 4. oldalán lévő algoritmust; 12

13

Példa innen letölthető. 14

15

16

17

18

19

20

12. labor (2016. dec. 12. dec. 17.) a. Ellenõrizzük a mellékelt példa számításait, felhasználva az elemzõ táblázat elkészítésére szolgáló algoritmust! 21

Az elemză táblázat elkészítésére szolgáló algoritmus: 22

23

b. Bizonyítsuk be, hogy a köv. nyelvtan nem LL(1): c. Készítsünk elemzõ táblázatot az alábbi LL(1) nyelvtanra! 24

25