תרגיל בית – 2קומפילציה הפיתרון של ניר ומנשה עם תיקונים קלים -אסתי שאלה 1 א .נבנה את הטבלה: follow $ first w ב .הביטוי אינו ) .LL(1ננסה להפוך אותו ל ) LL(1ע"י ביטול הרקורסיה השמאלית ו :left factoring - :Left factoring במקום הכללים במקום הכללים ו ו ביטול רקורסיה שמאלית: נכתוב: במקום נכתוב את הדקדוק החדש: נכתוב: נכתוב: נבדוק אם הדקדוק החדש הינו ):LL(1 נבנה את טבלת firstו :follow follow $ $ First ' , W ניתן לראות שגם לאחר ביטול הרקורסיה השמאלית וביצוע left factoringעדיין יש קונפליקטים (מסומנים בצהוב), לכן הדקדוק עדיין לא ) LL(1וגם אי אפשר להפוך אותו לכזה. שאלה 2 א .לא נכון .דוגמא: follow First $ a,b $ $ A a,ε a,b a b למשל :ניתן לגזור את abבשתי צורות: ב .לא נכון ,דוגמא: Follow $ $ $ First a a a $ a למשל :ניתן לגזור את abבשתי צורות: ג. שני הדקדוקים מייצגים את השפה הדקדוק הראשון אינו ) ,LL(2והשני כן. . שאלה 3 א .נבדוק אם הדקדוק ):LR(0 On G goto S2 On H goto S3 On F goto S4 On F goto S4 On a shift S5 S1 On b shift S6 On a shift S5 On b shift S6 On G goto S7 On a shift S5 On H goto S8 On b shift S6 On a shift S9 On b shift S10 Accept Reduce 1, G Accept Reduce 1, H On b shift S11 On a shift S12 Accept Accept Accept Accept S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 a S5 S5 b S6 S9 Acc R1,G Acc R1,H S12 Acc Acc Acc Acc S6 S10 Acc R1,G Acc R1,H S11 Acc Acc Acc Acc $ G 2 7 H 3 F 4 8 Acc R1,G Acc R1,H Acc Acc Acc Acc .S6 - וS5 - עבור על הטרמינלים בreduce-reduce conflict קיים:LR(0) הדקדוק אינו :SLR(1) נדבוק עבור F G H First a,b a b a Follow a,b a,b b,a b $ G H F - S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S5 S5 S9 Acc R1,G Acc R1,H S12 Acc Acc Acc Acc S6 S6 S10 Acc R1,G Acc R1,H S11 Acc Acc Acc Acc 2 7 3 4 8 Acc Acc Acc Acc Acc Acc SLR(1) עדיין קיימים קונפליקטים – הדקדוק אינו .ב LR(1) נבדוק עבור S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 $,a,b $,a,b $,a,b $,a,b $,a,b $,a,b a b $,a,b b $,a,b a $,a,b $,a,b $,a,b a $,a,b b $,a,b b $,a,b a $,a,b $,a,b $,a,b $,a,b On G goto S2 On H goto S3 On F goto S4 On F goto S4 On a shift S5 On b shift S6 On a shift S5 On b shift S6 On G goto S7 On a shift S8 On H goto s9 On b shift s10 On a shift s11 On b shift s12 On $,a,b reduce On a reduce On $,a,b reduce On b reduce On b shift s13 On b reduce On a shift s14 On a reduce On $,a,b reduce On $,a,b reduce On $,a,b reduce On $,a,b reduce .ד+ג :טבלת גזירה S6 a S5 S8 S10 S11 R1,F R1,G R1,F S7 S8 S9 S10 S11 S12 S13 S14 S14 R1,H R2,F R2,F R3,F R3,F S1 S2 S3 S4 S5 B S6 $ F 4 G 2 7 H 3 9 S12 R1,F R1,F R1,F R1,H S13 R1,G R1,F R2,F R2,F R3,F R3,F R2,F R2,F R3,F R3,F .S6 - בb עבור הטרמינלreduce-reduce conflict למשל קיים:LR(1) הדקדוק אינו - 4 שאלה LR(1) דוגמא לדקדוק שאינו.א S1 S2 S3 $ $ b b On A goto S2 On B goto S2 On a shift S3 On a shift S3 b b On b reduce On b reduce …….. .LR(1) הדקדוק אינו,reduce-reduce conflict ישS3-ב :SLR אבל כןLL(1) דוגמא לדקדוק שאינו.ב , כי יש בו ריקורסיה שמאליתLL(1) הדקדוק בהכרח אינו :SLR נראה שהוא כן S1 On S goto S2 On a shift S3 - S2 S3 Accept Accept S1 S2 S3 a S3 acc acc $ S 2 Acc acc .SLR הדקדוק הוא,אין קונפליקטים LL(1) וכןSLR דקדוק שהוא לא :LL(1) נראה שהדקדוק הינו S A B a first a,b Follow $ a,b a,b B S A B .LL(1) לכן הדקדוק הוא,אין קונפליקטים :SLR כעת נראה שהדקדוק אינו S1 S2 S3 S4 S5 S6 S7 On A goto S2 Reduce 0, A On A goto S3 Reduce 0, B On a shift s4 On b shift s5 On A goto S6 Reduce 0, A On B goto s7 Reduce 0, B On b shift s8 On a shift s9 .ג S8 S9 Accept Accept a R0,A R0,B S4 1 2 3 4 5 6 7 8 9 B R0,B R0,A $ S S5 R0,A R0,B S8 R0,A R0,B A 2 B 3 6 7 S9 Accept Accept Accept Accept .SLR לכן הדקדוק אינו,S1 בreduce – reduce יש קונפליקט LR(1) וכןSLR דקדוק שהוא לא.ד :SLR נראה שהדקוק אינו S A B first a,b a a - Follow $ c,b c - S1 S2 S3 S4 S5 S6 S7 S8 S9 On A goto S2 On B goto S3 On a shift s4 On a shift s4 On b shift s5 On b shift s6 On c shift s7 R1,A R1,B On A goto s8 On a shift s4 On a shift s4 Accept Accept On c shift s9 Accept 1 2 3 4 5 6 7 8 9 a S4 b S5 S6 c $ S S7 R1,A R1,A r1,B S4 S4 A 2 B 3 8 Acc Acc S9 Acc SLR יש קונפליקטים – הדקדוק אינו LR(1) נראה שהדקדוק הינו S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 $ $ b c $ $ $ b c $ c $ $ c $ $ On A goto s2 On B goto s3 On a shift s4 On a shift s4 On b shift s5 On b shift s6 On c shift s7 On b reduce On c reduce On A goto s8 On a shift s9 On $ reduce On $ reduce On c reduce On c shift s10 On $ reduce a b c $ 1 S4 S5 2 S6 3 S7 4 R1,A r1,B 5 S9 6 R2,S 7 R2,S 8 S10 9 R1,A 10 R3,S S A 2 B 3 8 LR(1) אין קונפליקטים – הדקדוק - SLR וכןLR(0) דוגמא לדקדוק שאינו.ה :LR(0) נראה שהדקדוק אינו S1 On A goto s2 On B goto s3 On a shift s4 On a shift s4 On B goto s5 On a shift s4 Accept Reduce 1, A Reduce 1, B Accept S2 S3 S4 S5 S1 S2 S3 S4 S5 - a S4 S4 acc R1,A R1,B acc $ S A 2 B 3 5 Acc R1,A R1,B Acc LR(0) יש קונפליקטים – הדקדוק לא :SLR נראה שהוא כן S A B S1 S2 S3 S4 S5 a S4 S4 acc R1,A acc first a a a $ - Follow $ A $ S A 2 B 3 5 Acc R1,B Acc SLR אין קונפליקטים – הדקדוק כן LALR שאינוLR(1) דוגמא לדקדוק .ו S1 $ $ $ a a $ $ a a a a $ a a S2 S3 S4 S5 S6 S7 S8 S9 S1 S2 S3 S4 S5 S6 S7 S8 S9 a S2 S6 On a shift s2 On b shift s3 On A goto s4 On b shift s5 On a shift s6 On $ reduce On a goto s7 On a reduce On A goto s8 On b shift s5 On a shift s6 On $ reduce On a shift s9 On a reduce b S3 S5 $ A 4 R1,A 7 R1,A S6 S5 8 R3,A S9 R3,A .LR(1) אין קונפליקטים – הדקדוק הוא לכן האוטומט ניתן, שלהםlook ahead- זהים פרט ל5/3 ,9/7 ניתן לראות כי זוגות המצבים,אולם .LALR לצמצום והדקדוק אינו . לא יתכןLALR וכןLR(1) דקדוק שהוא לא.ז בהכרח גם דקדוקLALR לכן כל דקדוק,LR(1) נוצר ע"י צמצום מצבים זהים באוטומט שתואםLALR יצירת .LR(1)
© Copyright 2024