Presentation is loading. Please wait.

Presentation is loading. Please wait.

Backpatching 1. מה בתרגול ? שלבים בפתרון Backpatch דוגמא : SWITCH שאלה ממבחן 2.

Similar presentations


Presentation on theme: "Backpatching 1. מה בתרגול ? שלבים בפתרון Backpatch דוגמא : SWITCH שאלה ממבחן 2."— Presentation transcript:

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


Download ppt "Backpatching 1. מה בתרגול ? שלבים בפתרון Backpatch דוגמא : SWITCH שאלה ממבחן 2."

Similar presentations


Ads by Google