• Nenhum resultado encontrado

opencourses.auth | Ανοικτά Ακαδημαϊκά Μαθήματα ΑΠΘ | Σχεδίαση γλωσσών προγραμματισμού... | Πίνακες LR Ανάλυσης

N/A
N/A
Protected

Academic year: 2023

Share "opencourses.auth | Ανοικτά Ακαδημαϊκά Μαθήματα ΑΠΘ | Σχεδίαση γλωσσών προγραμματισμού... | Πίνακες LR Ανάλυσης"

Copied!
29
0
0

Texto

(1)

Σχεδίαση Γλωσσών &

Μεταγλωττιστζς

Ενότητα 8: Πίνακεσ LR Ανάλυςησ

Επ. Καθ. Π. Κατςαρόσ

Τμήμα Πληροφορικήσ

(2)

• Το παρόν εκπαιδευτικό υλικό υπόκειται ςε άδειεσ χρήςησ Creative Commons.

• Για εκπαιδευτικό υλικό, όπωσ εικόνεσ, που

υπόκειται ςε άλλου τφπου άδεια χρήςησ, η

άδεια χρήςησ αναφζρεται ρητώσ.

(3)

του εκπαιδευτικοφ ζργου του διδάςκοντα.

• Το ζργο «Ανοικτά Ακαδημαϊκά Μαθήματα ςτο Αριςτοτζλειο Πανεπιςτήμιο Θεςςαλονίκησ» ζχει χρηματοδοτήςει μόνο τη αναδιαμόρφωςη του εκπαιδευτικοφ υλικοφ.

• Το ζργο υλοποιείται ςτο πλαίςιο του Επιχειρηςιακοφ

Προγράμματοσ «Εκπαίδευςη και Δια Βίου Μάθηςη» και ςυγχρηματοδοτείται από την Ευρωπαϊκή Ζνωςη

(Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικοφσ πόρουσ.

(4)

Αναλσηής LR ώθηζης - απλοποίηζης Ι

Σσκβοιοζεηρά εηζόδοσ

Αιγόρηζκος αλάισζες LR

θεθαιή αλάγλωζες

4 Y

9

ζηοίβα (ζύκβοια δωηηθού

Πίλαθας ελεργεηώλ

Πίλαθας κεηαβάζεωλ

(5)

Αναλσηής LR ώθηζης - απλοποίηζης ΙI

push($); // $ ηο ζύκβοιο ηέιοσς ζσκβοιοζεηράς push(s0); // s0 ε αρτηθή θαηάζηαζε

lookahead = get_next_token();

repeat forever

s = top_of_stack(); // ACTION είλαη ο πίλαθας ελεργεηώλ if ( ACTION[s,lookahead] = = απλοποίηση  ) then

pop 2*|| ζύκβοια; //αθαηρούληαη ηα ζύκβοια & οη θαηαζηάζεης s = top_of_stack();

push();

push(GOTO[s,]); // GOTO είλαη ο πίλαθας κεηαβάζεωλ else if ( ACTION[s,lookahead] = = ώθηση si ) then

push(lookahead);

push(si);

lookahead = get_next_token();

else if ( ACTION[s,lookahead] = = αποδοχή and lookahead = = $ ) then return (επηηστής αλαγλώρηζε);

(6)

Αναλσηής LR ώθηζης - απλοποίηζης ΙIΙ

Μηα γραμμαηική είναι LR(k) αλ, δνζείζεο κηαο δεμηάο παξαγσγήο

S  

0

 

1

 

2

 …  

n-1

 

n

 πξόηαζε κπνξνύκε:

1. Να αλαγλσξίζνπκε κηα ιαβή απινπνίεζεο γηα θάζε δεμηά πξνηαζηαθή κνξθή 

i

, θαη

2. Να θαζνξίζνπκε ηνλ θαλόλα ηεο απινπνίεζεο

κε ηελ αλάγλσζε ηεο 

i

από αξηζηεξά πξνο ηα δεμηά,

πξνρσξώληαο ην πνιύ k ζύκβνια πην δεμηά από ην

(7)

Αναλσηής LR ώθηζης - απλοποίηζης ΙV

Αλ κία γξακκαηηθή είλαη LR(?)  ππάξρεη κία θαη κόλν κία δεμηά παξαγσγή ηεο θάζε πξόηαζεο

΢ην πάλσ κέξνο ηεο ζηνίβαο είηε

ππάξρνπλ όιεο νη ελεξγέο ιαβέο απινπνίεζεο πνπ πεξηιακβάλνπλ ηελ θνξπθή ηεο ζηνίβαο, είηε

σζνύληαη ζύκβνια κέρξη λα απνηειεί ε θνξπθή ην δεμί άθξν κηαο ιαβήο απινπνίεζεο

Η γιώζζα ησλ ιαβώλ απινπνίεζεο είλαη θαλνληθή θαη άξα

κπνξεί λα θαηαζθεπαζζεί έλα πξνζδηνξηζηηθό πεπεξαζκέλν απηόκαην πνπ λα εθηειεί αλαγλώξηζε ιαβώλ απινπνίεζεο

νη πίλαθεο ελεξγεηώλ θαη κεηάβαζεο νπζηαζηηθά εθθξάδνπλ ην ζπγθεθξηκέλν απηόκαην

Κάζε λέα θαηάζηαζε ηνπ απηόκαηνπ ηελ εηζάγνπκε ζηε ζηνίβα

Οη ηειηθέο θαηαζηάζεηο ηνπ απηόκαηνπ αληηζηνηρνύλ ζε ελέξγεηεο απινπνίεζεο

λέα θαηάζηαζε είλαη ε GOTO[αξηζηεξό ζύκβνιν θαλόλα , θαηάζηαζε θνξπθήο]

(8)

Αναλσηής LR ώθηζης - απλοποίηζης V

Πσο θηηάρλνπκε ηνπο πίλαθεο ελεξγεηώλ & κεηαβάζεσλ;

Λεμηθόο

αλαιπηήο Αλαιπηήο

Πίλαθεο Ελεξγεηώλ &

Μεηαβάζεωλ Γελλήηξηα

αλαιπηή (yacc) πεγαίος

θώδηθας

γρακκαηηθή

Ελδηάκεζε Αλαπαράζηαζε Σηνίβα

(9)

Αναλσηής LR ώθηζης - απλοποίηζης VΙ

Πσο θηηάρλνπκε ηνπο πίλαθεο ελεξγεηώλ & κεηαβάζεσλ (ρσξίο ην yacc);

θαηαζθεπάδνπκε από ηε γξακκαηηθή ην απηόκαην αλαγλώξηζεο ιαβώλ απινπνίεζεο

νξίδνπκε ηνπο πίλαθεο ελεξγεηώλ & κεηαβάζεσλ

αλ ε θαηαζθεπή ηνπ απηνκάηνπ πεηύρεη ηόηε ε γξακκαηηθή είλαη γξακκαηηθή LR(?)

αιιηώο είλαη πηζαλό λα πξνθύςνπλ ζπγθξνύζεηο ώζεζεο – απινπνίεζεο ή ζπγθξνύζεηο απινπνίεζεο – απινπνίεζεο

ηόηε ή ζα πξέπεη λα εθαξκνζζεί κία άιιε θαηαζθεπή LR(?) ή λα θαηαζθεπάζνπκε ηνλ αλαιπηή έηζη ώζηε ζε κία πεξίπησζε

ζύγθξνπζεο λα επηιέγεη θάζε θνξά κία ζπγθεθξηκέλε ελέξγεηα

οι αναλσηές ηοσ byacc όηαν έτοσμε ζύγκροσζη ώθηζης – απλοποίηζης εκηελούν κάθε θορά ηην ώθηζη

(10)

Αναλσηής LR ώθηζης - απλοποίηζης VΙΙ

Πσο θηηάρλνπκε ην απηόκαην αλαγλώξηζεο ιαβώλ απινπνίεζεο (ρσξίο ην yacc);

ρξεζηκνπνηνύκε ζηνηρεία LR(k) γηα λα θσδηθνπνηήζνπκε ην ζύλνιν ησλ θαλόλσλ πνπ κπνξεί ην δεμί ηνπο κέξνο λα απνηειέζεη ιαβή απινπνίεζεο ζε κία δεδνκέλε θαηάζηαζε

ππνινγίδνπκε γηα θάζε θαηάζηαζε ηα goto( s,  ) θαη closure( s ), δειαδή ην θιείζηκν (βι. ζπλέρεηα)

θαηαγξάθνπκε ηηο θαηαζηάζεηο θαη ηηο κεηαβάζεηο ηνπ απηόκαηνπ

ζπκπιεξώλνπκε ηνπο πίλαθεο ελεξγεηώλ & κεηαβάζεσλ

(11)

Αναλσηής LR ώθηζης - απλοποίηζης VΙΙΙ

΢ηνηρείν LR( k ) είλαη έλα δεύγνο [ A , B ], όπνπ

A είλαη κία παξαγσγή  κε κία • θάπνπ ζην δεμί κέξνο

B ζύκβνια εηζόδνπ κε κήθνο ≤ k (ηεξκαηηθά ή $)

Παξαδείγκαηα:

[• , a]

[• , a]

[• , a]

[• , a]

Η • δείρλεη ηελ ηξέρνπζα ζέζε πνπ κπνξνύκε λα ζεσξήζνπκε όηη αλαπαξηζηά ε θνξπθή ηεο ζηνίβαο

ζηνηρεία LR(0) [  •  ] (δελ ππάξρνπλ ζύκβνια εηζόδνπ)

ζηνηρεία LR(1) [  •  , a ] (έλα κόλν ζύκβνιν εηζόδνπ)

ζηνηρεία LR(2) [  •  , a b ] (δύν ζύκβνια εηζόδνπ) ...

(12)

Πίνακες ανάλσζης LR(1) I

Η παξαγσγή , κε ζύκβνιν εηζόδνπ a, παξάγεη 4 ζηνηρεία LR(1)

[• , a], [• , a], [• , a], & [• , a]

Σν ζύλνιν ησλ LR(1) ζηνηρείσλ κηαο γξακκαηηθήο είλαη πεπεξαζκέλν.

Πνηα είλαη ε ζεκαζία ησλ ζπκβόισλ εηζόδνπ ζηα ζηνηρεία;

ηα θαηαγξάθνπκε έηζη ώζηε λα νδεγνύκαζηε ζηε ζσζηή απινπνίεζε

αλ ε • βξίζθεηαη ζε ελδηάκεζε ζέζε ζε έλα κόλν ζηνηρείν δελ παίδεη θάπνην ηδηαίηεξν ξόιν

π.ρ. ζην [• , a], ην ζύκβνιν εηζόδνπ δελ έρεη ηδηαίηεξε ζεκαζία

ζην [• , a], ην ζύκβνιν a νδεγεί ζηελ απινπνίεζε 

ζην ζύλνιν { [• , a],[• , b] }

ζπκβόιν εηζόδνπ = a απλοποίηση ζε ;

ζύκβνιν εηζόδνπ  FIRST() ώθηση

(13)

Πίνακες ανάλσζης LR(1) II

Οη θαηαζηάζεηο ηνπ πξνζδηνξηζηηθνύ απηόκαηνπ αλαγλώξηζεο ιαβώλ απινπνίεζεο νξίδνληαη σο ζύλνια ζηνηρείσλ, I0 , I1 , ... , In

a. Δηζάγνπκε έλα λέν ζύκβνιν S’ θαη κία παξαγσγή S’ S όπνπ S ε αξρή ηεο γξακκαηηθήο b. Η αξρηθή θαηάζηαζε, I0 πεξηιακβάλεη ηα ζηνηρεία

[S’ •S, $] θαη όια ηα ηζνδύλακα πνπ δίλνληαη σο

closure( I0 )

c. Γηα θάζε ζύλνιν Ik θαη θάζε ζύκβνιν , βξίζθνπκε ην goto(Ik , )

αλ ην ζύλνιν ηεο goto(Ik , ) δελ έρεη ήδε δεκηνπξγεζεί ηόηε ην δεκηνπξγνύκε

θαηαγξάθνπκε όιεο ηηο κεηαβάζεηο goto( )

2 ΢πκπιεξώλνπκε ηνπο πίλαθεο ελεξγεηώλ θαη κεηαβάζεσλ ηεο αλάιπζεο

(14)

Πίνακες ανάλσζης LR(1) IIΙ

ΤΠΟΛΟΓΙ΢ΜΟ΢ closure(I)

Σν closure(I) πξνζζέηεη ζην ζύλνιν I όια ηα ζηνηρεία πνπ πξνθύπηνπλ από ηα ήδε ππάξρνληα ζην I

θάζε ζηνηρείν [ , a] δεκηνπξγεί επίζεο όια ηα [  , x] γηα θάζε παξαγσγή κε  ζηα αξηζηεξά θαη γηα όια ηα x FIRST(a)

εθόζνλ ζπκπεξηιεθζνύλ όια ηα ζηνηρεία ηεο παξαγσγήο 

πεξηιακβάλνληαη θαη όζα πξνθύπηνπλ από απηά εθαξκόδνληαο ηελ ίδηα πξάμε

Closure( I )

while ( το σύνολο I μεγαλώνει ) for κάθε [  , a] I

for κάθε παραγωγή P

for κάθε τερματικό b FIRST(a) if [ , b] I

(15)

Πίνακες ανάλσζης LR(1) IV

ΤΠΟΛΟΓΙ΢ΜΟ΢ goto(I,x)

Τπνινγίδεη ηε λέα θαηάζηαζε πνπ ν αλαιπηήο πξνζεγγίδεη αλ απηόο βξίζθεηαη ζηελ θαηάζηαζε I θαη αλαγλσξίδεη ην ηεξκαηηθό x

goto( { [   , a] },  ) παξάγεη θαηάζηαζε πνπ πεξηιακβάλεη ην [   , a]

αλ δελ ππάξρεη δεκηνπξγείηαη θαη πεξηιακβάλεηαη ζε απηή θαη ην closure( [   , a] )

Goto( I, x ) new = Ø

for κάθε [ x , a] I

new = new [ x , a]

return closure(new)

(16)

Πίνακες ανάλσζης LR(1) V

ΑΛΓΟΡΙΘΜΟ΢ ΚΑΣΑ΢ΚΔΤΗ΢ ΑΤΣΌΜΑΣΟΤ Ξεθηλάκε από ην I

0

= closure( [ S’ • S , $] )

Γεκηνπξγνύκε ζπλέρεηα λέεο θαηαζηάζεηο κέρξη ηε ζηηγκή πνπ δελ ζα κπνξεί λα δεκηνπξγεζνύλ άιιεο

I0 = closure( [S’ S , $] ) C = { I0 }

while ( προστίθενται στο C νέα σύνολα στοιχείων ) for κάθε Ii C και κάθε x ( TNT )

Inew = goto(Ii , x) if Inew C then C = C Inew

κατέγραψε τη μετάβαση Ii Inew με αναγνώριση του x

(17)

Πίνακες ανάλσζης LR(1) VΙ

ΑΛΓΟΡΙΘΜΟΙ ΚΑΣΑ΢ΚΔΤΗ΢ ΠΙΝΑΚΩΝ LR(1)

Closure( I )

while ( το σύνολο I μεγαλώνει ) for κάθε [  , a] I

for κάθε παραγωγή P

for κάθε τερματικό b FIRST(a) if [ , b] I

then προσέθεσε το [ , b] στο I

Goto( I, x ) new = Ø

for κάθε [ x , a] I

new = new [ x , a]

return closure(new)

I0 = closure( [S’ S , $] ) C = { I0 }

while ( προστίθενται στο C νέα σύνολα στοιχείων ) for κάθε Ii C και κάθε x ( TNT )

Inew = goto(Ii , x) if Inew C then C = C Inew

(18)

Παράδειγμα ανάλσζης LR(1) Ι

S έθθραζε

έθθραζε όρος - έθθραζε έθθραζε όρος

όρος παράγοληας * όρος όρος παράγοληας

παράγοληας id

Σύκβοιο FIRST

S { id }

έκυραση { id}

όρος { id } παράγοντας { id}

- { - }

* { * }

id { id}

(19)

Παράδειγμα ανάλσζης LR(1) ΙΙ

I0= {[S •έκυραση,\0], [έκυραση•όρος - έκυραση, \0], [έκυραση•όρος, \0],

[όρος•παράγοντας * όρος, {\0,-}], [όρος•παράγοντας, {\0,-}], [παράγονταςid ,{\0,-,*}]}

I5= {[έκυρασηόρος - •έκυραση, \0], [έκυρασηόρος - έκυραση, \0], [έκυραση•όρος, \0], [όρος•παράγοντας * όρος, {\0,-}], [όρος•παράγοντας, {\0,-}], [παραγονταςid, {\0,-,*}] }

I8= { [όροςπαράγοντας * όρος •, {\0,-}] } I1= {[S έκυραση•, \0]}

I2 = { [έκυρασηόρος- έκυραση, \0], [έκυρασηόρος•, \0] }

I3= {[όροςπαράγοντας* όρος, {\0,-}], [όροςπαράγοντας•, {\0,-}]}

I4= { [παράγονταςid •, {\0,-,*}] }

I6={[όροςπαράγοντας * • όρος, {\0,-}], [όρος• παράγοντας * όρος, {\0,-}], [όρος• παράγοντας, {\0,-}], [παράγονταςid , {\0, -, *}]}

έκυραση

παράγοντας id

όρος

id

id

όρος

παράγοντας

*

- παράγοντας

έκυραση

(20)

Παράδειγμα ανάλσζης LR(1) ΙΙΙ

ΓΗΜΙΟΤΡΓΙΑ ΠΙΝΑΚΩΝ

for θάζε ζύλοιο ζηοητείωλ Ix C for θάζε ζηνηρείν Ix

if ζηοητείο είλαη [ •a,b] θαη a T θαη goto(Ix,a) = Ik , then ACTION[x,a] ώζεζε k”

else if ζηοητείο είλαη [S’S •,$]

then ACTION[x ,$] απνδνρή

else if ζηοητείο είλαη [ •,a]

then ACTION[x,a] απινπνίεζε 

for θάζε n NT

if goto(Ix ,n) == Ik

then GOTO[x,n] k

(21)

Παράδειγμα ανάλσζης LR(1) ΙV

ΔΝΔΡΓΔΙΔΣ ΜΔΤΑΒΑΣΔΙΣ id - * $ έκυραση όρος παράγο

ντας

0 ωζ 4 1 2 3

1 απνδ

2 σζ 5 απ 3

3 απ 5 σζ 6 απ 5

4 απ 6 απ 6 απ 6

5 σζ 4 7 2 3

6 σζ 4 8 3

7 απ 2

8 απ 4 απ 4

(22)

Σσγκρούζεις ενεργειών

Ση γίλεηαη αλ ε θαηάζηαζε s πεξηέρεη [   • a , b] θαη [   • , a] ;

Σν πξώην ζηνηρείν παξάγεη “ώζεζε” θαη ην δεύηεξν “απινπνίεζε”

Γελ κπνξνύκε ζην ACTION[s,a] λα ζπκπιεξώζνπκε δύν ελέξγεηεο

Σύγκροσζη ώθηζης – απλοποίηζης (shift – reduce conflict)

Μπνξνύκε ή λα αιιάμνπκε ηε γξακκαηηθή ή

απζαίξεηα λα επηιέμνπκε ηελ εθηέιεζε ώζεζεο, θάηη πνπ έρεη απνδεηρζεί όηη ζπλήζσο απνδίδεη ηε ζσζηή ζεκαζία (π.ρ. Πξόβιεκα κεηέσξνπ else) ή

λα επηιέμνπκε θάπνηα άιιε αλάιπζε LR

Ση γίλεηαη όηαλ ε θαηάζηαζε s πεξηέρεη [   • , a] θαη [   • , a] ;

Κάζε ζηνηρείν παξάγεη “απινπνίεζε”, αιιά κε δηαθνξεηηθό θαλόλα

Γελ κπνξνύκε ζην ACTION[s,a] λα ζπκπιεξώζνπκε δύν ελέξγεηεο

Σύγκροσζη απλοποίηζης – απλοποίηζης (reduce – reduce conflict)

Έλδεημε ιάζνπο ζηε γξακκαηηθή

(23)

Παραλλαγές ανάλσζης LR: LR(0)

• Βαζηθά είλαη οη ίδηοη αιγόρηζκοη όπως θαη γηα ηελ αλάισζε LR(1)

• Η κόλε δηαθορά είλαη όηη ζηα ζηοητεία LR(0) δελ σπάρτεη ζύκβοιο εηζόδοσ θαη γη΄

ασηό δελ παράγοληαη ποιιά ζηοητεία ζε θάζε ζύλοιο

• Η αλάισζε LR(0) παράγεη ιηγόηερες θαηαζηάζεης

• Γελ κπορεί λα αλαγλωρίζεη όιες ηης γρακκαηηθές ποσ αλαγλωρίδεη ε LR(1)

• Δίλαη πηο πηζαλό λα οδεγήζεη ζε

θιείζηκο ζσλόιοσ ζηοητείωλ LR(0): κεηαβάζεης ζσλόιωλ ζηοητείωλ LR(0):

θαηαζθεσή ζσλόιωλ ζηοητείωλ LR(0):

Closure( I )

while ( το σύνολο I μεγαλώνει )

for κάθε στοιχείο [  ] I for κάθε παραγωγή P if [ ] I

then προσέθεσε το [ ] στο I

Goto( I, x ) new = Ø

for κάθε [ x ] I

new = new [ x ] return closure(new)

I0 = closure( [S’ S ] ) C = { I0 }

while ( προστίθενται στο C νέα σύνολα στοιχείων) for κάθε Ii C και κάθε x ( TNT )

Inew = goto(Ii , x) if Inew C then C = C Inew

κατέγραψε τη μετάβαση Ii Inew με αναγνώριση του x

(24)

Παραλλαγές ανάλσζης LR: SLR(1)

Ο αιγόξηζκνο SLR(1) γηα λα θαζνξίζεη πόηε ζα γίλεη απινπνίεζε ρξεζηκνπνηεί θαη ηα ζύλνια FOLLOW

Οη αλαιπηέο SLR(1) έρνπλ ιηγόηεξεο θαηαζηάζεηο από όηη νη LR(1)

for θάζε ζύλνιν ζηνηρείωλ Ix C for θάζε ζηνηρείν Ix

if ζηοητείο είλαη [ •a] θαη a T θαη goto(Ix,a) = Ik , then ACTION[x,a] ώζεζε k”

else if ζηοητείο είλαη [S’S •]

then ACTION[x ,\0] απνδνρή

else if ζηοητείο είλαη [ •]

then for θάζε a FOLLOW()

then ACTION[x,a] απινπνίεζε 

for each n NT

(25)

Παραλλαγές ανάλσζης LR: LALR(1)

Βαζηθή ηδέα: ζπλέλσζε θαηαζηάζεσλ LR(1)

θξαηάκε ηνλ ππξήλα LR(0) ησλ ζηνηρείσλ LR(1) (αγλννύκε ηα ζύκβνια εηζόδνπ)

αλ δύν ζύλνια LR(1) έρνπλ ηνλ ίδην ππξήλα, ηόηε ηα ζπλελώλνπκε θαη ελεκεξώλνπκε ηνπο πίλαθεο ACTION θαη GOTO

Οη αλαιπηέο LALR(1) κπνξνύλ λα θηηαρηνύλ κε δύν ηξόπνπο

1. Καηαζθεπή ησλ ζπλόισλ ζηνηρείσλ LR(1) θαη ζπλέλσζε

2. Αγλννύκε ηα ζηνηρεία κε ηειεία ζηελ αξρή ηνπ δεμηνύ κέξνπο θαη θαηαζθεπάδνπκε ππξήλεο ζπλόισλ ζηνηρείσλ LR(0). ΢ηε ζπλέρεηα ρξεζηκνπνηνύκε έλαλ αιγόξηζκν πξνώζεζεο ζπκβόισλ εηζόδνπ γηα λα ππνινγίζνπκε ηα ζύκβνια εηζόδνπ.

Η δεύηεξε πξνζέγγηζε είλαη πην απνδνηηθή επεηδή απνθεύγεη ηε

δεκηνπξγία κεγάισλ ελδηάκεζσλ LR(1) πηλάθσλ

(26)

Παραλλαγές ανάλσζης LR: LALR(1)

Έλαο αλαιπηήο LALR(1) γηα κηα γξακκαηηθή G έρεη ηνλ ίδην αξηζκό θαηαζηάζεσλ κε ηνλ αληίζηνηρν αλαιπηή SLR(1)

Αλ έλαο αλαιπηήο LR(1) γηα κηα γξακκαηηθή G δελ παξνπζηάδεη ζπγθξνύζεηο ώζεζεο - απινπνίεζεο, ηόηε δελ ζα έρεη

ζπγθξνύζεηο ώζεζεο – απινπνίεζεο θαη ν αλαιπηήο LALR(1)

Έλαο αλαιπηήο LALR(1) κπνξεί λα εκθαλίδεη ζύγθξνπζε

απινπνίεζεο - απινπνίεζεο ρσξίο απηό λα ζπκβαίλεη θαη ζηνλ αληίζηνηρν LR(1)

Οη αλαιπηέο LALR(1) είλαη πην γεληθνί από ηνπο SLR(1) θαη

ζπγρξόλσο έρνπλ ην ίδην κηθξό ρώξν θαηαζηάζεσλ

(27)

Γλώζζες τωρίς ζσμθραζόμενα Ι

Γιώζζεο ρωξίο ζπκθξαδόκελα

Πξνζδηνξηζηηθέο γιώζζεο (LR(k))

Γιώζζεο LL(k) Γιώζζεο απιήο πξνήγεζεο

Γιώζζεο LL(1) Γιώζζεο πξνηεξαηόηεηαο ηειεζηώλ

LR(k) LR(1)

Η ηεραρτία γιωζζώλ τωρίς ζσκθραδόκελα

(28)

Γλώζζες τωρίς ζσμθραζόμενα ΙΙ

Ιεραρτία γιωζζώλ τωρίς ζσκθραδόκελα

Οη γιώζζεο πξνηεξαηόηεηαο ηειεζηώλ πεξηιακβάλνπλ θαη θάπνηεο γιώζζεο κε

αζάθεηεο

LL(1) είλαη ππνζύλνιν ηωλ Γιώζζεο ρωξίο ζπκθξαδόκελα

Γιώζζεο ρωξίο αζάθεηεο

Πξνηεξαηόηεηαο ηειεζηώλ

LR(k) LR(1) LALR(1)

SLR(1)

LL(k)

LL(1)

(29)

Τζλος ενότητας

Επεξεργαςία: Εμμανουζλα Στάχτιαρη

Θεςςαλονίκη, 21/07/2014

Referências

Documentos relacionados

Ο Piaget 1981, απφ ηε κεξηά ηνπ ηζρπξίδεηαη φηη : «θάζε γλψζε πξνυπνζέηεη αλακθίβνια κηα παξέκβαζε ηεο εκπεηξίαο θαη θαίλεηαη αλακθηζβήηεην φηη ρσξίο ην ρεηξηζκφ ησλ αληηθεηκέλσλ ην