מנתח LL(1) נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח 1.

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

שיטות ניתוח - דוגמא משווה
מבוא למדעי המחשב לתעשייה וניהול
מבוסס על הרצאות של יורם זינגר, האוניברסיטה העברית י"ם
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
צורה נורמלית של גרייבך הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
ניתוח תחבירי (Parsing)
Presentation by Dudu Yanay and Elior Malul 1.  מה משותף לכל אלגוריתם המשתמש ב -Bucket Elimination: ◦ נתון מודל הסתברותי ורשת ביסיאנית מתאימה. ◦ נתונה.
מכונת מצבים תרגול מס' 4 Moshe Malka.
מתמטיקה בדידה תרגול 3.
ניתוח תחבירי Top-Down.
מנתח LL(1) נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
עבודה סמינריונית Prelude to Ukkonen algorithm ON-LINE CONSTRUCTION OF SUFFIX TREES מגישים : עיד מוחמד טיבי פיראס.
ניתוח תחבירי (Parsing) Wilhelm, and Maurer – Chapter 8 Aho, Sethi, and Ullman – Chapter 4 Cooper and Torczon – Chapter 3.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
מסדי נתונים תשס " ג 1 תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
ניתוח תחבירי (Parsing) - המשך. תזכורת : סוגי הניתוח התחבירי top-down – מהשורש לעלים ( נקרא גם – " ניתוח תחזית " – predictive) bottom-up – מהעלים לשורש.
צורות נורמליות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 10.
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
מנפה שגיאות - DEBUGGER מבוא למדעי המחשב (234114) רועי מלמד
תזכורת: גרפים גרף (G=(V,E V|=n, |E|=m| מכוון \ לא מכוון דרגה של קדקד
ערמות ; מבני נתונים 09 מבוסס על מצגות של ליאור שפירא, חיים קפלן, דני פלדמן וחברים.
Backpatching 1. תזכורת מתרגול קודם קוד ביניים - שפת הרביעיות שיטות לייצור קוד ביניים –שימוש בתכונת code –כתיבה ישירה ל-buffer של פקודות שיטות לתרגום מבני.
מודל ONLINE לומדמורה 1. כל ניתן לחישוב בזמן פולינומיאלי 2. אחרי מספר פולינומיאלי של טעיות ( ) הלומד לא טועה ז"א שווה ל- Littlestone 1988.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
קורס תכנות – סימסטר ב ' תשס " ח שיעור שישי: מערכים
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
Ray 7 דוגמא אלגוריתם 1.קבל דוגמאות 2. פלט f a עבור הדוגמה a המינימלית החיובית ?
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
תחשיב היחסים (הפרדיקטים)
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א.
ניתוח תחבירי Top-Down נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח 1.
גיאולוגיה סטרוקטורלית מעגלי מוהר למעוות סופי (המשך...)
מתמטיקה בדידה תרגול 2.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #3 Internet Control Message Protocol (ICMP)
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
1 מבוא למדעי המחשב backtracking. 2 מוטיבציה בעיית n המלכות: נתון: לוח שחמט בגודל. המטרה: לסדר על הלוח n מלכות כך שאף אחת לא תאיים על השנייה. דוגמא: עבור.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
ניתוח תחבירי (Parsing) של דקדוקי LL(1)
בנייה ופישוט דקדוקים הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 9.
- אמיר רובינשטיין מיונים - Sorting משפט : חסם תחתון על מיון ( המבוסס על השוואות בלבד ) של n מפתחות הינו Ω(nlogn) במקרה הגרוע ובממוצע. ניתן לפעמים.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Tirgul 12 Trees 1.
מבוא למדעי המחשב סיבוכיות.
פרק 4 ניתוח התחביר תורת הקומפילציה איתן אביאור.
מבנה נתונים ואלגוריתמים
SQL בסיסי – הגדרה אינדוקטיבית
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
עבודה עם נתונים באמצעות ADO.NET
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
Marina Kogan Sadetsky –
בניית מחסנית סטטית Static Stack Implementation מורים מובילים תשע"ה
תזכורת מתרגולים אחרונים
Presentation transcript:

מנתח LL(1) נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח 1

תזכורת ניתוח Top-Down: מתחילים מ-S, מפעילים כללי גזירה עד שמגיעים למילת הקלט S A A  α A  β ? שיטת Recursive Descent שיפור מנגנון ההחלטה –כדי להחליט איזה כלל להפעיל על סמך טרמינל הבא בקלט, הגדרנו פונקצית select 2

תזכורת (המשך) select(A  α): טרמינלים שיגרמו לבחור בכלל זה כאשר רוצים להפעיל כלל של A לצורך חישוב select, הגדרנו פונקציות עזר first ו-follow first(A): כל הטרמינלים שיכולים להופיע בתחילת מילה שנגזרת מ-A first(α): ההרחבה של first לתבניות פסוקיות follow(A): כל הטרמינלים שיכולים להופיע אחרי A בגזירה כלשהי 3

מנתח LL(1) קורא קלט משמאל לימין, מייצר ניתוח שמאלי ביותר ונעזר ב- lookahead של טרמינל אחד מסתמך על פונקצית select בעת הניתוח לדקדוק G קיים מנתח LL(1) אם ורק אם לא קיים קונפליקט בדקדוק, כלומר לכל שני כללים בדקדוק A  α, A  β: select(A  α) ∩ select(A  β) = Ø הרעיון: לחקות בעזרת מחסנית את תכנית ה - Recursive Descent –שקול בכוח הניתוח ל-RD 4

מבני נתונים של המנתח Q: מחסנית הניתוח שמחזיקה את מה שרוצים עדיין לראות –בראש המחסנית - מה שרוצים לראות מייד –איתחול: בראש המחסנית יהיה S –תומכת בפעולות pop, push, top M: טבלה שאומרת איזה כלל גזירה להפעיל בהינתן משתנה וטרמינל M (X,t) = X  α t  select(X  α) error otherwise X  V t  T כאשר אין קונפליקטים, כל תא של M מכיל איבר אחד בלבד 5

דוגמה נתון דקדוק הבא: S  Ab | bC A  a C  cA נבנה טבלת M של מנתח LL(1) לצורך כך, נחשב תחילה select עבור כל כלל גזירה 6

דוגמה (המשך) select(S  Ab) = {a} select(S  bC) = {b} select(A  a) = {a} select(C  cA) = {c} $cba S  bCS  AbS AaAaA C  cAC בניית הטבלה המקומות הריקים מכילים error M: 7

פעולות המנתח SHIFT: הוצאת טרמינל מהקלט REPLACE X,t: החלפת משתנה X בצד ימין של כלל גזירה מתאים –חפש ב-M(X,t) איזה כלל גזירה להפעיל אם מצאת error, עצור עם הודעת שגיאה אחרת, נניח שזהו כלל X  Y 1 Y 2 …Y n. הוצא את X מהמחסנית ודחוף Y 1 Y 2 …Y n למחסנית בסדר הפוך כאשר Y 1 בראש המחסנית A b B C d b REPLACE A,e כאשר M(A,e) = A  BCd ראש 8

אלגוריתם הניתוח Init: push(Q,S), t is the next terminal in input 1.If (isEmpty(Q)) – if (t == $), report success // $ - end of input – else, report error 2.else – X = top(Q) – if (X is terminal) if X ≠ t, report error else, SHIFT and pop(Q) – if (X is variable) if M[X,t] == error, report error else do REPLACE (X,t) 3.goto 1 9

דוגמה (המשך) ריצת המנתח על המילה bca: פעולהקלטמחסנית bca$S 10

דוגמה (המשך) ריצת המנתח על המילה bca: פעולהקלטמחסנית replace S,bbca$S Cb ראש המחסנית 11

דוגמה (המשך) ריצת המנתח על המילה bca: פעולהקלטמחסנית replace S,bbca$S shiftbca$Cb replace C,cca$C shiftca$Ac replace A,aa$A shifta$a success$ 12

שאלה לדוגמה תנו דוגמה לדקדוק ח"ה G אשר מקיים: 1.L(G) מכילה לפחות שתי מילים. 2.G אינו דקדוק LL(1). 3.G הינו דקדוק LL(k) עבור k>1. 4.מספר המשתנים, הטרמינלים וכללי הגזירה ב-G הוא המינימלי שניתן לבחור כך שהדרישות 1-3 יתקיימו. הסבירו מדוע הדקדוק מקיים את הדרישות. 13

פתרון השאלה הדקדוק חייב להכיל לפחות שני כללי גזירה מאותו משתנה –מדוע? חייב להיות לפחות משתנה אחד –מדוע? חייב להיות לפחות טרמינל אחד –מדוע? לפיכך, נציע: S  aa | a 1.L(G) מכילה לפחות שתי מילים. 2.G אינו דקדוק LL(1). 3.G הינו דקדוק LL(k) עבור k>1. 4. G מינימלי עבור

שאלה ממבחן (מועד א', אביב, תשס"ז) נתון הדקדוק הבא: S  AAB A  a B  b עבור כל אחת מהאפשרויות הבאות, קבעו האם תוכן המחסנית הנתון בה, יכול להתקבל בריצה של המנתח LL(1) עבור הדקדוק על מילת קלט כלשהי (שאינה בהכרח בשפה). הסבירו 15

שאלה ממבחן - המשך S  AAB A  a B  b הסימן הימני ביותר הוא בראש המחסנית א.BA ב.Ba ג.bA ד.Aa 16

שאלה ממבחן - המשך S  AAB A  a B  b הסימן הימני ביותר הוא בראש המחסנית א.BA ב.Ba ג.bA ד.Aa שלב 1: נבנה את הטבלה: 17 b a S - <AAB S A -> a A B -> b B

S  AAB A  a B  b הסימן הימני ביותר הוא בראש המחסנית א.BA ב.Ba ג.bA ד.Aa שלב 2: נבנה לפי הטבלה את המצבים האפשריים במחסנית: S, BAA, BAa, BA, Ba, B, b  BA and Ba are ok … 18 b a S - <AAB S A -> a A B -> b B