Sunteți pe pagina 1din 1

Examen TD – 4.02.

2022

1. Construiti un parser descendent recursiv pentru urmatoarea gramatica:


be → be or bt | bt
bt → bt and bf | bf
bf → not bf | ( be ) | true | false

2. Se considera gramatica expresiilor algebrice, care contin termeni, factori si


operatorii aditivi si multiplicativi. Un factor poate sa fie identificatorul x, o constanta
intreaga zecimala sau o alta expresie intre doua paranteze rotunde.
Scrieti o definitie orientata pe sintaxa pentru derivarea simbolica a expresiilor algebrice
(in acext caz identificatorul x reprezinta variabila x), folosind doua attribute sintetizate.
Regulile semantice folosesc operatorul ||, ce reprezinta operatia de concatenare a
doua stringuri. Nu se va face nicio simplificare. De exemplu, derivata expresiei 2/x +
1 este -2/(x*x).
Indicatie. Formula de derivare pentru oparatia de impartire: (f/g)’ = (f’*g-f*g’)/(g*g).

3. Convertiti definitia orientata pe sintaxa de la problema 2 intr-o schema de traduere


orientata pe sintaxa.

4. Se considera notatia algebrica a mutarilor pentru jocul de sah. Piesele sunt notate
cu litere mari (P, N, B, R, Q, K pentru pion, cal, nebun, turn, regina si rege). Patratele
tablei de sah sunt numerotate cu litere mici (a, b, c, d, e, f, g, h) pe linii si cu numere
(1, 2, 3, 4, 5, 6, 7, 8) pe coloane. Exemple de patrate: a1, a2, ..., h7, h8. Mutarile se
specifica prin piesa ce se muta (din pozitia curenta) urmata de patratul in care se muta.
De exemplu: Nd5, Rc6, Pb4. Pionul se poate omite la o mutate (de exemplu, b4 in loc
de Pb4). In plus, in cazul in care piesa care se muta va lua piesa din patratul destinatie,
acest lucru se specifica prin litera x pusa intre piesa mutata si patratul destinatie. De
exemplu, Nxd5 inseamna ca se muta calul in patratul d4 si ia piesa aflata acolo. Scrieti
definitiile regulate care desemneaza limbajul tuturor mutarilor de pe tabla de sah. Nu
se fac verificari asupra validitatii patratelor in care se muta piesele.

S-ar putea să vă placă și