(Categ2) Construirea unui automat
push-down pentru o gramatic IDC
Enunµ
S se scrie o aplicaµie care pentru o gramatic generativ IDC G construie³te un
automat push-down M = (Q, Σ, Γ, δ, q0 , Z0 , ∅), pentru care T (M ) = L(G).
Cerinµe
I. Se cere denirea unei clase Grammar: se poate prelua din tema 1. În plus
trebuie s dispun de urm toarele metode:
O metod care veric dac gramatica este IDC
O metod care simplic gramatica (vezi teorie)
O metod care aduce gramatica la FNG
II. Se cere denirea unei clase PushDownAutomaton
Membrii clasei vor : Q, Σ, Γ, δ, q0 , Z0 (daµi denumiri semnicative acestor
membri).
Metodele clasei - obligatorii. (Pot exista ³i altele, dac este necesar)
1. PrintAutomaton - a³area frumoas a elementelor unui automat. Aici
se poate lua în calcul ³i supraînc rcarea operatorului specic.
2. CheckWord - o funcµie care veric dac un cuvânt este acceptat sau
nu de automat.
3. IsDeterministic - veric dac automatul este determinist sau nu.
II. Deniµi o funcµie care preia ca parametru o gramatica independent de con-
text (IDC) G ³i returneaz un obiect de tip automat push-down. Automatul
returnat trebuie s recunoasc limbajul generat de G.
1
III. În funcµia principal se cite³te din ³ier o gramatic IDC. Se veric dac
gramatica este valid ³i IDC. Numai în caz armativ se obµine APD-ul core-
spunz tor ³i devine activ meniul urm tor:
(a) a³area gramaticii G
(b) generarea unui cuvânt în gramatic .
(c) a³area rezultatului gramaticii simplicate.
(d) a³area gramaticii in FNG.
(e) generarea unui cuvânt în G ³i vericarea dac e acceptat de automat.
(f) vericarea dac un cuvânt citit de la tastatur e acceptat de automat.
IV. BAREM:
1. I - Denire corect a clasei Grammar, cu membrii corespunz tori. Ad u-
garea celor 3 metode suplimentare de validare si transformare. Prima
metod 0.5pct, ecare dintre celelalte dou (de transformare) câte 0.75pct
- 2pct
2. II - Denire corect a clasei PushDownAutomaton, cu membrii corespun-
z tori. - 1pct
3. Metoda PrintAutomaton - 0.5pct
4. Metoda CheckWord - 0.5pct
5. Metoda IsDeterministic - 0.5pct
6. Funcµia care preia ca parametru o IDC ³i returneaz un obiect de tip
PushDownAutomaton - 3pct
7. Manipulare meniu (0.5pct)& subpuncte (e) ³i (f) (1pct împreun ) - 1.5pct