6. gyakorlat

1. feladat
Alakítsuk Greibach normál alakra a következő nyelvtant!
S -> AS | b
A -> SA | aa
2. feladat
  1. Rajzoljuk fel az aaa*a+a+* szó egy levezetési fáját az
    E -> EE+ | EE* | a
    nyelvtanban!
    Egyértelmű-e ez a nyelvtan?
  2. Írjuk át az aaa*a+a+* posztfix alakú kifejezést infix alakba!
3. feladat
Adjunk CF nyelvtant az alábbi nyelvekhez:
  1. {aibjck | i+k=j, i,j,k >= 0}
  2. {aibj | 0 <= i <= j <= 3i}
4. feladat
Milyen nyelvet generál az alábbi nyelvtan?
S -> AB | CD
A -> aAb | aEb
B -> Bc | c
C -> Ca | a
D -> bDc | bFc
E -> Eb | b
F -> Fc | c
5. feladat
Az infix aritmetika előadáson tanult nyelvtanát egészítsd ki a következő művelettel:
  • Hatványozás, melynek precedenciája nagyobb a szorzásénál és jobbról balra szabály szerint értékelődik ki.
Miután megszerkesztetted az új nyelvtant, szerkeszd meg az (a+a)^a*a kifejezés levezetési fáját is.
6. feladat
Vegyük a következő nyelvtant:
S -> if E then S | if E then S else S | a
E -> b
  1. Egyértelmű a nyelvtan?
  2. Egyértelmű a nyelvtan által generált nyelv?
7. feladat
Adjunk automatát arra a nyelvre, melyben
  1. az a-k száma megegyezik a b-k számával
  2. az a-k és a b-k száma legfeljebb eggyel térhet el egymástól
  3. az a-k és a b-k száma legfeljebb k-val térhet el egymástól minden prefixben
8. feladat
Tekintsük az infix aritmetika ismert nyelvtanát! Szerkesszünk hozzá veremautomatát, amely
  1. a baloldali
  2. a jobboldali levezetést valósítja meg.
Elemezzük mindkét veremautomatával az (a+a)*a mondatot!
9. feladat
Adottak az alábbi nyelvek (i,j >= 0):
ai+jbi cj
aibi+j cj
aibj ci+j
Készíts rájuk CF nyelvtant!
Varró Gergely gervarro@cs.bme.hu
Utolsó módosítás dátuma: 2004. március 13.