90 likes | 290 Views
ניתוח סמנטי – השלמות. Aho, Sethi, and Ullman – Chapter 5. השקף החסר משבוע שעבר. תכונות נוצרות : תכונות המחושבות מהבנים של משתנה. תכונות נורשות : תכונות המחושבות מההורים ומהאחים של משתנה. תכונות של אסימונים, המיוצרות ע"י המנתח הלקסיקלי, נחשבות ל תכונות נוצרות מבחינה פורמאלית.
E N D
ניתוח סמנטי – השלמות Aho, Sethi, and Ullman – Chapter 5
השקף החסר משבוע שעבר • תכונות נוצרות: תכונות המחושבות מהבנים של משתנה. • תכונות נורשות: תכונות המחושבות מההוריםומהאחים של משתנה. • תכונות של אסימונים, המיוצרות ע"י המנתח הלקסיקלי, נחשבות לתכונות נוצרות מבחינה פורמאלית.
תכונות נורשות D T.type = real L.in = real תכונות נוצרות real L.in = real , id3 L.in = real , id2 מצביע לטבלת הסמלים id1 תכונות נוצרות; תכונות נורשות תכונות נורשות ונוצרות
דקדוקי S משפחה מצומצמת של דקדוקים ללא תכונות נורשות • מתאימים במיוחד לניתוח תחבירי ,bottom-up ללא בנית עץ הגזירה • פעולת הצמצום (reduce) היא "קולב" עליו תולים את ביצוע הפעולות הסמנטיות המתאימות לכלל • ניתן למקם את שדות הערך במחסנית הניתוח התחבירי כלומר, תכונות של משתנה מחושבות רק על-פי תכונות הבנים שלו. בזמן reduce ידועים הבנים, לכן בזמן reduce למשתנה ניתן לחשב את כל התכונות שלו.
דקדוקי S – דוגמא סוף שורה ערך המתקבל מהמנתח הלקסיקלי • אזהרה – הדוגמא מתאימה יותר לאינטרפרטר מאשר למהדר
חישוב bottom-up של התכונות בדקדוקי S • top – ראש המחסנית • ntop – הראש החדש של המחסנית – ntop = top – r + 1 • הנחה – המנתח הלקסיקלי שומר את התוצאה בשדה ה- val במחסנית
Yacc • הדקדוק הקודם, כשהוא כתוב ב-Yacc: line : expr ‘\n’ { printf(“%d\n”, $1); } ; expr : expr ‘+’ term { $$ = $1 + $3; } | term ; term : term ‘*’ factor { $$ = $1 * $3; } | factor ; factor : ‘(’ expr ‘)’ { $$ = $2; } | DIGIT ; העברת הערך במקרה זה מטופלת בפונקציה yylex (לא מוצגת כאן)
חישוב תכונות משמאל לימין procedure dfvisit (n: node); begin for each child m of n, from left to right dobegin evaluate inherited attributes of m; dfvisit (m) end; evaluate synthesized attributes of n end
L-attributed definition • הגדרה מונחית דקדוק תקרא L-attributed definition אם כל תכונה בכל כלל סמנטי הצמוד לחוק גזירה A → X1… Xn היא תכונה נוצרת, או תכונה נורשת של Xj, 1 < j < n, התלויה רק ב: • התכונות של סימני הדקדוק X1… Xj-1משמאל ל- Xjבכלל הגזירה • תכונות נורשות של A • הערה – המגבלות חלות רק על התכונות הנורשות של הדקדוק • הערה – תכונות מסוג L-attributed definition ניתן לחשב במעבר יחיד על עץ הגזירה משמאל לימין