Documente Academic
Documente Profesional
Documente Cultură
sintactic
< Q , , , f , q0 , F , Z >
Q - mulimea strilor
- alfabetul automatului
- alfabetul stivei
f: Q * P (Q *)
SI
ir de intrare
ISI
IST
Stiva
AF
ISO
ST
SO
ir de ieire
- coninutul stivei
(q0,w,),
Relaia de micare:
(q0,w,) * (q,,S),
1. f(q,a,) = {(q,a )}
3. f(q,$,$S) = {(q,)}
(accept)
4. f(q,$,$)
(error)
(shift)
Exemplu:
1. S aA
2. A bA
3. A b
Propozitia de analizat:
abbb *
( s , bbb$ , $a )
( s , bb$ , $ab )
( s , b$ , $abb )
( s , $ , $abbb )
r(3)
( r ,$ , $abbA )
3r(2) ( r ,$ , $abA )
r(2)
( r ,$ , $aA )
r(1)
( r ,$ , $S )
(a,,)
( q , abbb$ , $ )
10
11
SI
ISI
ISt1
AF
St1
ISt2
St2
12
Algoritmul de analiz:
(1) starea iniial:
(q,0,$,)
(2) reduce:
(q,i,,) (q,i,A,j) exist producia j: A
P
Productiile sunt ordonate crescator in funcie de
lungimea prii drepte.
(3) shift
(q,i,,) (q,i+1,a,/)
(4) accept
(q,n+1,$S,) (a,n+1,$S,)
(5) revenire
(q,n+1,,) (b,n+1,,)
si exista o productie k : B si j: A P
15
Ex:
1. S Bab
2. S Cac
3. A BA
4. A a
5. B a
6. C a
Propozitia de analizat:
aab
16
( q , 0 , $ , ) s ( q , 1 , $a , / )
r ( q , 1 , $A ,1/ )
s ( q , 2 , $Aa , /1/ )
r ( q , 2 , $AA , 1/1/ )
s ( q , 3 , $AAb , /1/1/ )
b ( b , 3 , $AAb , /1/1/ )
s ( q , 3, $ABb , /2/1/ )
17
19
A BC i A B
, (VN)*, B, C VN
(Adic n partea dreapt a oricrei reguli de producie nu
exist dou neterminale unul dup cellalt, i nici un
singur neterminal).
ntr-o astfel de gramatic operanzii sunt neterminalele, iar
operatorii sunt terminalele.
Orice gramatic independent de context poate fi adus la
forma operator fr a afecta limbajul.
20
22
(1) a
=o b
<=> () ( A ab P ) sau
( A aBb P )
23
24
25
26
27
29
Exerciiu
<instructiune > for <atribuire> to
<expresie> [step <expresie> ]
<instructiune > let <atribuire>
<instructiune > call i ( <lista> )
<lista> i | i, (<lista>)
<atribuire> i = <expresie>
<expresie> i * <expresie> | i **
<expresie> | i
30
F->F+F
F->F*F
F->(F)
F->a
31
/|\
/|\
F+F
F+F
/|\
F+F a
/|\
a F+F
a
32
F->F+F
F->F*F
F->(F)
F->a
33
+ < First F
Last F > +
* < First F
Last F > *
(=)
( < First F Last F > )
Last F = + * ) a
Fist F = + * ( a
34
+<+
+ > + (trebuie sa specificam asociativitatea lui +: la
stanga sau la dreapta)
+<*
*>+
+<(
)>+
+<a
a>+
*<+
+>*
*<*
*>*
(trebuie sa specificam asociativitatea lui *: la
stanga sau la dreapta)
*<(
)>*
*<a
a>*
(=)
(
(
(
(
<
<
<
<
+
*
)
a
+>)
*>)
)>)
a>)
35
$, a+a+a$ deplasare
$a, +a+a$ reducere
$, +a+a$ deplasare
$+, a+a$ deplasare
$+a, +a$ reducere
$+, +a$ reducere
$, +a$ deplasare
$+, a$ deplasare
$+a, $ reducere
$, $ accept
analog
36
Ex:
37
38
39
40
41
42
http://homedir.jct.ac.il/~rafi/formcomp.pdf
http://inst.eecs.berkeley.edu/~cs164/sp10/n
otes/notes.pdf
http://facultate.regielive.ro/cursuri/calculato
are/limbaje_formale_si_translatoare59028.html
http://homepages.gold.ac.uk/nikolaev/3246
-2.doc
43