Download presentation
Presentation is loading. Please wait.
Published byHerbert Wilkins Modified over 9 years ago
1
Backpatching 1
2
מה בתרגול ? שלבים בפתרון Backpatch דוגמא : SWITCH שאלה ממבחן 2
3
שלבים בפתרון פריסת קוד : ציור סכמאטי של הקוד שיווצר סכימת תרגום : כתיבת הכללים הסמנטיים 3
4
Switch: example Switch (x) { case 5: … break; case 7: … break; … case 12: …break; } 4
5
Translating Switch Case Case List 5
6
שלב I: פריסת קוד ציור סכימטי של הקוד שיווצר – מיקום יחסי של הקוד הנפלט ( קבוע ) –goto שנרצה לתפור – הקוד המאחה 6
7
פריסת קוד S 7
8
סכימת תרגום רשימת התכונות שנצטרך ומשמעותן הרחבת הדקדוק ( מרקרים ) כתיבת הכללים הסמנטיים 8
9
9
10
מרקרים שימושיים 10
11
הכללית הסמנטיים 11
12
הכללית הסמנטיים 12
13
הכללית הסמנטיים 13
14
הכללית הסמנטיים 14
15
שאלה ממבחן 15
16
Lisp style loops 16
17
17
18
דוגמא : 18
19
פתרון פריסת קוד סכימת תרגום 19
20
נניח, לרגע, דקדוק מצומצם 20
21
פריסת קוד B1 (While) S Bn (While) S1 nextlist falselist B2 (While) nextlist truelist 21
22
תכונות B: truelist, falselist COND: quad היכן התנאי מתחיל COND_LIST: truelist, falselist start_quad היכן התנאי הראשון 22
23
סכימת תרגום COND while M B { COND.quad = M.quad; COND.truelist = B.truelist; COND.falselist = B.falselist; } 23
24
סכימת תרגום COND_LIST COND { COND_LIST.start_quad = COND.quad; COND_LIST.truelist = COND.truelist COND_LIST.falselist = COND.falselist } 24
25
סכימת תרגום COND_LIST COND_LIST1 COND { COND_LIST.start_quad = COND_LIST1.start_quad; backpatch (COND_LIST1.truelist, COND.quad); COND_LIST.truelist = COND.truelist; COND_LIST.falselist = merge (COND_LIST1.falselist, COND.falselist); } 25
26
סכימת תרגום S loop COND_LIST do M S1 N { backpatch (COND_LIST.truelist, M.quad); backpatch (S1.nextlist, COND_LIST.start_quad); S.nextlist = COND_LIST.falselist; } 26
27
נניח כעת דקדוק לא מצומצם 27
28
פריסת קוד B1 (While) nextlist falselist B2 (Until) truelist B3 (While) falselist 28
29
בסכימת תרגום COND until M B { COND.quad = M.quad; COND.truelist = B.falselist; COND.falselist = B.truelist; } 29
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.