1 / 34

דקדוקים

דקדוקים. תורת הקומפילציה עומר ביהם מבוסס על שקפי הרצאה מהקורס אוטומטים ושפות פורמאליות בטכניון פרופ' שמואל זקס. מבוא. הזכרנו שלוש דרכים להגדרת שפה: הדרך הישירה, ע"י שימוש בכלים מתמטיים לסימון קבוצות הגדרת מכונה ש מזהה את השפה: עד כה היו אלה אוטומטים סופיים

pakuna
Download Presentation

דקדוקים

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. דקדוקים תורת הקומפילציה עומר ביהם מבוסס על שקפי הרצאה מהקורס אוטומטים ושפות פורמאליות בטכניון פרופ' שמואל זקס אוניברסיטת חיפה - חורף 2007

  2. מבוא • הזכרנו שלוש דרכים להגדרת שפה: • הדרך הישירה, ע"י שימוש בכלים מתמטיים לסימון קבוצות • הגדרת מכונה ש מזהה את השפה: עד כה היו אלה אוטומטים סופיים • סימון המגדיר נוהל פורמלי לייצור המילים בשפה "מחולל שפות". • עד כה הודגמו בשתי הדרכים הראשונות. • לביטויים רגולריים יש דמיון לסוג השלישי. אוניברסיטת חיפה - חורף 2007

  3. מבוא • אוטומט – מודל אנליטי • דקדוק – מודל סינטטי אוניברסיטת חיפה - חורף 2007

  4. דקדוק שכתוב • כל צעד בנוהל ליצירת מילים הינו שכתוב חלק מהמילה, עפ"י קבוצת כל לי שכתוב מוגדרים היטב. • התהליך מפסיק כאשר מגיעים למילה טרמינלית,כלומר מילה שלא ניתן לשכתב אותה עוד. אוניברסיטת חיפה - חורף 2007

  5. דקדוק שכתוב - דוגמא • נהוג לציין מספרים עשרוניים עם פסיקים המפרידים בין כל שלוש ספרות עוקבות (מימין), כגון: • 1,984 • 345 • 314,159,265 • מהו הדקדוק היוצר שפה זו מעל הא"ב ? Σ* = {0,1, …9}∪{,} אוניברסיטת חיפה - חורף 2007

  6. דקדוק שכתוב - דוגמא • N →N1-3| N1-3,L • L →N3 | L,N3 • N1-3→N1| N2| N3 • N3→N1N1N1 • N2→N1N1 • N1 → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 אוניברסיטת חיפה - חורף 2007

  7. דקדוק שכתוב - עץ גזירה • N ⇒* 1,000,000 < N > < N1-3 > < , > < L > < N3 > < , > < L > < N1> < N3 > < 1 > < N1> < N1> < N1> < 0 > < 0 > < 0 > < N1> < N1> < N1> < 0 > < 0 > < 0 > אוניברסיטת חיפה - חורף 2007

  8. דקדוק שכתוב -ביטויים אריתמטיים • נציג דקדוק היוצר ביטויים אריתמטיים בסגנון המקובל בשפות תכנות רבות, כגון: • a/z - c ,(a+b)*c • הא"ב אשר מעליו תוגדר השפה הוא Σ = {a,b, … ,z}∪ {+,-,*,/,(,)} אוניברסיטת חיפה - חורף 2007

  9. דקדוק שכתוב- ביטויים אריתמטיים (1) <Expression> → <Variable> (2) | <Expression> + <Expression> (3) | <Expression> - <Expression> (4) | <Expression> * <Expression> (5) | <Expression> / <Expression> (6) | (<Expression>) (7) <Variable> → a | b | … | z אוניברסיטת חיפה - חורף 2007

  10. דקדוק שכתוב - דו-משמעות לעיתים קיימים עצי גזירה שונים עבור אותה מילה < Expression.> גזירה א' < Expression.> < Expression.> * <Variable> <Variable> <Variable> + a c b גזירה ב' < Expression.> < Expression.> < Expression.> + <Variable> <Variable> <Variable> * b c a אוניברסיטת חיפה - חורף 2007

  11. דקדוק שכתוב- הגדרה • דקדוק G מוגדר ע"י הרביעייהG = (V,T,P,S) • V - קבוצה סופית לא ריקה של משתנים • T - קבוצה סופית לא ריקה של טרמינלים • S - משתנה תחילי S ∈V • P - קבוצה סופית של כללי שכתוב מהצורה α → β כאשר α ∈ (V ∪ T)+ וגם β ∈ (V ∪ T)* אוניברסיטת חיפה - חורף 2007

  12. דקדוק שכתוב- סימונים • אותיות לטיניות גדולות מתחילת הא"ב כגון C,B,A לציון סימנים קבועים מתוך קבוצת המשתנים הדקדוקיים V. • אותיות לטיניות קטנות מתחילת הא"ב כגון c,b,a לציון סימנים קבועים מתוך קבוצת הטרמינלים T. • אותיות יווניות קטנות כגון α,β,γ,ϕ,ξ לציון מילים מ (V ∪ T)* כלומר סדרות של טרמינלים ומשתנים דקדוקיים • אותיות לטיניות גדולות מסוף הא"ב כגון Z,Y,X לציון משתנים מתוך (V ∪ T) • אותיות לטיניות קטנות מסוף הא"ב כגון z,y,x לציון איברים מתוך T*, כלומר מילים טרמינליות אוניברסיטת חיפה - חורף 2007

  13. דקדוק שכתוב- גזירה • יהי G = (V,T,P,S) דקדוק, ויהיו ϕ1,ϕ2∈(V ∪T)*, נאמר כי ϕ1 נגזר ישירות מ ϕ2 ונסמן אמ"מ קיימים ψ,χ,α,β ∈(V ∪T)* וגם α→β ∈P כך ש: ϕ2 = ψβχ וגם ϕ1 = ψαχ • במילים אחרות . ניתן לעבור מ ϕ1 ל ϕ2 ע"י הפעלת כלל אחד מ -P. • נסמן אמ"מ ניתן לעבור מ ϕ1 ל ϕ2 ע"י הפעלת מספר סופי של כללים מ -P • הסימון יציין גזירה ב- i שלבים. אוניברסיטת חיפה - חורף 2007

  14. דקדוק שכתוב– גזירה הפוכה • בהינתן מילה, ניתן לבדוק האם היא שייכת לשפה שהדקדוק מגדיר, ע"י ביצוע גזירה הפוכה, כלומר להתחיל מהמילה ולהפעיל חוקי גזירה רק בכיוון ההפוך, מימין לשמאל. • מילה כלשהי שייכת לשפה אם ע"י גזירה הפוכה נגיע ל-S, המשתנה ההתחלתי אוניברסיטת חיפה - חורף 2007

  15. גזירה הפוכה - דוגמא • עבור הדקדוק הבא:S → (S )| (SS )| ( ) • נבדוק האם המילה (()()) שייכת לשפה שהדקדוק מגדיר: • ואכן המילה (()()) שייכת לשפה שהדקדוק מגדיר: • S ⇒(SS) ⇒(()()) ( ) ) ( ) ( הפעלת S → () < S > < S > הפעלת S → (SS) < S > אוניברסיטת חיפה - חורף 2007

  16. שפה של דקדוק - הגדרה • יהי G = (V,T,P,S) דקדוק. השפה הנוצרת ע"י הדקדוק L(G), מוגדרת ע"י L(G) = {x ∈T* | S ⇒* x} • מילה α ∈ (T∪V)* נקראת תבנית פסוקית אמ"מ .S ⇒*α • α אינה חייבת להיות מילה טרמינלית! • שני דקדוקים יקראו שקולים אמ"מ L(G1) = L(G2) אוניברסיטת חיפה - חורף 2007

  17. שפה של דקדוק - דוגמא • השפה L = {a^nb^n | n ≥ 1}, אינה רגולרית. • נראה כי ניתן ליצור אותה בעזרת דקדוק • G = ({S}, {a,b}, P, S), כללי P הם • (1) S →aSb • (2) S →ab • S ⇒* aaabbb < S > < a> < S > < b > < a> < S > < b > < a> < b > אוניברסיטת חיפה - חורף 2007

  18. ההיררכיה של חומסקי אוניברסיטת חיפה - חורף 2007

  19. דקדוקים רגולריים - הערות • שקולים לשפות רגולריות • אפשר להוכיח כי לכל אס"ד M קיים דקדוק היוצר את L(M) • לכל שפה רגולרית L קיים דקדוק ליניארי (ימיני וגם שמאלי) כך ש: L(G) = L • קיימת שקילות בין דקדוק ליניארי ימני לדקדוק ליניארי שמאלי אוניברסיטת חיפה - חורף 2007

  20. דקדוקים חסרי הקשר • דקדוק חסר-הקשר (דח"ה) הוא דקדוק בעל כללים מהצורה A →α, כאשר α ∈ (V∪T)*, A ∈V. אוניברסיטת חיפה - חורף 2007

  21. עצי גזירה - מוטיבציה • המוטיבציה העיקרית לדיון בעצי גזירה היא הרצון לתפוס גזירות בסדר משתנים שונה כשקולות • לדוגמא, בדקדוק שכלליו A →BC, B→b, C→c, ניתן לגזור את bc בשתי בדרכים הבאות: • A ⇒BC ⇒bC ⇒bc • A ⇒BC ⇒Bc ⇒bc • נרצה לראות את שתי הגזירות שקולות. • נוכל לעשות זאת ע"י הצגת עץ הגזירה המתאים: < S > < A> < B > < a> < b > אוניברסיטת חיפה - חורף 2007

  22. גזירות קנוניות • ע"י הצגת עץ גזירה אנו מתמצתים את כל הסדריםהאפשריים בגזירה מסוימת. אך עם זאת, מבנהו המסתעףלא תמיד נוח, לדוגמא בהוכחות באינדוקציה. • לכל סדרת גזירה מתאים עץ גזירה יחיד. עם זאת, לאותו עץגזירה עשויות להתאים מספר סדרות גזירה שונות. • נרצה להתאים גזירה סטנדרטית (קנונית) יחידה לכל עץגזירה של דקדוק חסר הקשר, הקובעת חד-משמעית אתסדר גזירות המשתנים. אוניברסיטת חיפה - חורף 2007

  23. גזירות קנוניות - הגדרה • תהי α⇒β גזירה בדח"ה ,כלומר , α = δ1Αδ2 , β = δ1γδ2 עבור משתנה A ותבניות פסוקיות δ1,δ2 כלשהן • הגזירה α⇒β תקרא שמאלית ביותר אם δ1∈T* • הגזירה α⇒β תקרא ימנית ביותר אם δ2∈T* • סדרת הגזירהα⇒*β נקראת שמאלית ביותר אםכל גזירה בה היא שמאלית ביותר. • סדרת הגזירהα⇒*β נקראת ימנית ביותר אםכל גזירה בה היא ימנית ביותר. • לכל עץ גזירה בדח"ה G, מתאימה לכל היותר גזירה שמאלית ביותר אחת! אוניברסיטת חיפה - חורף 2007

  24. < S > < a> < A > < S > < S > < b > < A > < a> < a> < b > גזירה קנונית - דוגמא • נתבונן בדקדוק L בעל הכללים הבאים: (1) S →aAS (2) S → a (3) A → SbA (4) A → b S ⇒ aAS ⇒ aSbAS ⇒ aabAS ⇒ aabbS ⇒ aabba S ⇒ aAS ⇒ aAa ⇒ aSbAa⇒aSbbS ⇒ aabba ע ץ גזירה עבור המילה:aabbba גזירה שמאלית ביותר (1) (3) (2) (2) (4) גזירה ימנית ביותר (3) (4) (2) (1) (2) אוניברסיטת חיפה - חורף 2007

  25. חד-משמעיות ורב-משמעיות • נתון הדקדוק עבור ביטויים אריתמטיים : G = ({E}, {a, + , *, (, )}, P, E) כאשר כללי הגזירה הם: E →E + E | E * E | (E) | a • לדקדוק זה תכונה לא רצויה והיא שלאותה מילה יכולים להיות מספר עצי גזירה שונים (פתרונות מימושיים יוסברו בתרגול על yacc/bison) אוניברסיטת חיפה - חורף 2007

  26. רב משמעיות - דוגמא • להלן דוגמא של שני עצי גזירה שונים עבור המילה a + a * aיחד עם הגזירות השמאליות ביותר המתאימות. < E > < E > < E > < * > < E > < + > < E > < E > < E > < E > < a > < * > < E > < E > < + > < a > < a > < a > < a > < a > E ⇒ E*E ⇒ E+E*E⇒ a+E*E⇒ a+a*E ⇒a+a*a E ⇒ E+E ⇒ a+E⇒ a+E*E ⇒ a+a*E⇒a+a*a אוניברסיטת חיפה - חורף 2007

  27. רב משמעיות - הגדרה • דקדוק G יקרא רב משמעי אמ"מ קיימת מילה w ∈L(G) שיש לה שני עצי גזירה שונים. • אחרת הדקדוק יקרא חד משמעי • נשים לב כי תכונת הרב משמעיות מתייחסת לדקדוק, ולא לשפה. • עם זאת, קיימות שפות אשר כל דקדוק היוצר אותן הוא רב משמעי. שפות אלו נקראות שפות רב משמעיות, אוניברסיטת חיפה - חורף 2007

  28. דקדוקים רגולריים ושקילות לאס"ד • דקדוק G יקרא רגולרי אם כל החוקים בו הם ליניארים ימניים S → ε, A → Bα , A → α ליניאריים שמאליים S → ε, A → αB , A → α אוניברסיטת חיפה - חורף 2007

  29. דקדוקים רגולריים דוגמא • חוקי דקדוק G • S → aB | a • A → aB | a • B → bA • L(G) = (ab)*a לדוגמא w=ababa נגזרת • S ⇒ aB ⇒ abA ⇒ abaB ⇒ ababA ⇒ ababa (1) (4) (3) (4) (5) אוניברסיטת חיפה - חורף 2007

  30. מעבר מאס"ד לדקדוק רגולריים (ימני) • נתון M המקבל את ab* • נדגים בניית דקדוק GM עבור M • לכל מצב qi נבנה כלל גזירה ליניארי ימני מתאים • המשתנה התחילי יהיה כמובן זה שהוגדר עבור מצב q0 התחילי b a q2 q0 b a q1 a,b אוניברסיטת חיפה - חורף 2007

  31. b a q2 q0 b a q1 a,b מעבר מאס"ד לדקדוק רגולריים (ימני) • עבור המעבר δ(q0,b)=q1נבנה כלל גזירה מהצורה • V0→ bv1 • באופן דומה עבור המעבר δ(q0,a)=q2נבנה כלל גזירה מהצורה • V0→ aV2 • מכיוון ש q2מצב מקבל נוסיף כלל מהצורה • V0→ a אוניברסיטת חיפה - חורף 2007

  32. b a q2 q0 b a q1 a,b מעבר מאס"ד לדקדוק רגולריים (ימני) • באופן דומהנקבל כללי גזירה מהצורה • V1→ aV1 | bV1 • V2→ bV2 | b | aV1 • המשתנה התחילי יהיה V0 אוניברסיטת חיפה - חורף 2007

  33. b a q2 q0 b a q1 a,b מעבר מאס"ד לדקדוק רגולריים (ימני) • דוגמא למעבר מ M ל GM עבור והמילה w=‘abb’ ∈ L(G) • q0⇒q2⇒q2⇒q2 • הגזירה המתאימה תהיה (a) (b) (b) < V0 > < V2 > < a> < V2 > < b > < b > אוניברסיטת חיפה - חורף 2007

  34. b a q2 q0 b a q1 a,b מעבר מאס"ד לדקדוק רגולריים (ימני) • והמילה w=‘ba’ • q0⇒q1⇒q1 • הגזירה המתאימה תהיה • עץ הגזירה אינו של מילה טרמינלית! (b) (a) < V0 > < V1 > < b > < V1 > < a > אוניברסיטת חיפה - חורף 2007

More Related