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

Slides:



Advertisements
Similar presentations
Java Control Statements
Advertisements

Chapter 6 Intermediate Code Generation
Decision Structures – The Syntax Tree Lecture 22 Fri, Apr 8, 2005.
Backpatching: The syntax directed definition we discussed before can be implemented in two or more passes (we have both synthesized attributes and inheritent.
Lecture 08a – Backpatching & Recap Eran Yahav 1 Reference: Dragon 6.2,6.3,6.4,6.6.
Generation of Intermediate Code Compiler Design Lecture (03/30//98) Computer Science Rensselaer Polytechnic.
Compiler Construction Sohail Aslam Lecture Boolean Expressions E → E 1 and M E 2 {backpatch(E 1.truelist, M.quad); E.truelist = E 2.truelist; E.falselist.
Compiler Designs and Constructions
תרגול 11: Backpatching שלבים בפתרון Backpatch דוגמא : SWITCH שאלה ממבחן 1.
Three Address Code Generation Backpatching-I Prepared By: Siddharth Tiwary 04CS3010.
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
צורה נורמלית של גרייבך הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
פונקציונל פונקציה מספר פונקציונל דוגמאות לא פונקציונל פונקציונל.
נכתב ע"י קירה רדינסקי תרגום לקוד ביניים נכתב ע"י קירה רדינסקי סמסטר אביב, תשס"ט.
Backpatching דוגמא : switch. דוגמא switch : הדקדוק.
Lecture 09 – IR (Backpatching) Eran Yahav 1 Reference: Dragon 6.2,6.3,6.4,6.6
Theory of Compilation Erez Petrank Lecture 7: Intermediate Representation Part 2: Backpatching 1.
Theory of Compilation Erez Petrank Lecture 6: Intermediate Representation 1.
מתמטיקה בדידה תרגול 3.
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
תכנות תרגול 2 שבוע : שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה שלהם את ההפרש שלהם ואת הסכום שלהם.
ניתוח תחבירי (Parsing) Wilhelm, and Maurer – Chapter 8 Aho, Sethi, and Ullman – Chapter 4 Cooper and Torczon – Chapter 3.
תרגום לקוד ביניים 1. מבנה סכמתי של קומפיילר עד כה ראינו: בפועל: ניתוח לקסיקלי ניתוח תחבירי ניתוח סמנטי backend ניתוח לקסיקלי ניתוח תחבירי ניתוח סמנטי.
שפות ביניים – Intermediate Languages/Representations Aho, Sethi and Ullman – Chapter 8 Cooper and Torczon – Chapter 5.
צורות נורמליות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 10.
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות:  המשתמש בוחר קובץ שעליו הוא רוצה לבצע את האנליזה, ולוחץ עליו עם כפתור ימני בעכבר.  נפתח תפריט.
Backpatching 1. תזכורת מתרגול קודם קוד ביניים - שפת הרביעיות שיטות לייצור קוד ביניים –שימוש בתכונת code –כתיבה ישירה ל-buffer של פקודות שיטות לתרגום מבני.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
CS Introduction to AI Tutorial 6 AB Questions Tutorial 6 AB Questions.
Galileo Navigation System Software Systems lab Software Systems lab סמסטר חורף תשס " ט סמסטר חורף תשס " ט מנחה: ולדימיר זדורנוב משה חיות מבצעים: גליה סימנובסקי.
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
Test Yourself #2 Test Yourself #3 Initial code: a := x ** 2 b := 3 c := x d := c * c e := b * 2 f := a + d g := e * f.
R. Bar-Yehuda © 1 Graph theory – תורת הגרפים 4. ORDERED TREES 4.1 UNIQUELY DECIPHERABLE CODES מבוסס על הספר : S. Even,
בנייה ופישוט דקדוקים הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 9.
1 Structure of a Compiler Front end of a compiler is efficient and can be automated Back end is generally hard to automate and finding the optimum solution.
sequence of execution of high-level statements
ㅎㅎ logical operator if if else switch while do while for Third step for Learning C++ Programming Repetition Control Structures.
1 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים עוברים לג ' אווה.
Control Structures sequence of execution of high-level statements.
תרגיל כיתה 7 מבוא לטכנולוגיות מחשב CPE. – 2 – ארכיטקטורה של מעבד מודרני Execution Functional Units Instruction Control Integer/ Branch FP Add FP Mult/Div.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
Topic #7: Intermediate Code EE 456 – Compiling Techniques Prof. Carl Sable Fall 2003.
Intermediate Code Generation CS308 Compiler Theory1.
1 Intermediate Code Generation Abstraction at the source level identifiers, operators, expressions, statements, conditionals, iteration, functions (user.
Emilia Katz, Shahar Dag 1 Formal Specifications for Complex Systems (236368) Tutorial #13 Algebraic Specification and Larch.
Boolean expressions 1 productionsemantic action E  E1 or E2E1.trueLabel = E.trueLabel; E1.falseLabel = freshLabel(); E2.trueLabel = E.trueLabel; E2.falseLabel.
Chap. 4, Intermediate Code Generation
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
Theory of Compilation Erez Petrank Lecture 6: Intermediate Representation and Attribute Grammars 1.
1 February 28, February 28, 2016February 28, 2016February 28, 2016 Azusa, CA Sheldon X. Liang Ph. D. Computer Science at Azusa Pacific University.
C syntax (simplified) BNF. Program ::= [ ] Directives ::= [ ] ::= | |… ::=#include > ::=#define.
Computer Architecture and Assembly Language
Unit-1 Introduction to Java
Subject Name:COMPILER DESIGN Subject Code:10CS63
Intermediate Code Generation Part II
Carnegie Mellon Wrap-up of Machine-Level Programming II: Control : Introduction to Computer Systems Sept. 18, 2018.
Intermediate Code Generation Part II
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Intermediate Code Generation Part II
Three Address Code Generation – Backpatching
It’s Time for a Break!!!.
It’s Time for a Break!!!.
Program Flow.
Intermediate Code Generation Part II
Boolean Expressions Lecture 25 Fri, Apr 22, 2005.
Intermediate Code Generation
Compiler Construction
Intermediate Code Generation Part II
G6DICP - Lecture 5 Control Structures.
Presentation transcript:

Backpatching 1

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

שלבים בפתרון פריסת קוד : ציור סכמאטי של הקוד שיווצר סכימת תרגום : כתיבת הכללים הסמנטיים 3

Switch: example Switch (x) { case 5: … break; case 7: … break; … case 12: …break; } 4

Translating Switch Case Case List 5

שלב I: פריסת קוד ציור סכימטי של הקוד שיווצר – מיקום יחסי של הקוד הנפלט ( קבוע ) –goto שנרצה לתפור – הקוד המאחה 6

פריסת קוד S 7

סכימת תרגום רשימת התכונות שנצטרך ומשמעותן הרחבת הדקדוק ( מרקרים ) כתיבת הכללים הסמנטיים 8

9

מרקרים שימושיים 10

הכללית הסמנטיים 11

הכללית הסמנטיים 12

הכללית הסמנטיים 13

הכללית הסמנטיים 14

שאלה ממבחן 15

Lisp style loops 16

17

דוגמא : 18

פתרון פריסת קוד סכימת תרגום 19

נניח, לרגע, דקדוק מצומצם 20

פריסת קוד B1 (While) S Bn (While) S1 nextlist falselist B2 (While) nextlist truelist 21

תכונות B: truelist, falselist COND: quad היכן התנאי מתחיל COND_LIST: truelist, falselist start_quad היכן התנאי הראשון 22

סכימת תרגום COND  while M B { COND.quad = M.quad; COND.truelist = B.truelist; COND.falselist = B.falselist; } 23

סכימת תרגום COND_LIST  COND { COND_LIST.start_quad = COND.quad; COND_LIST.truelist = COND.truelist COND_LIST.falselist = COND.falselist } 24

סכימת תרגום 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

סכימת תרגום 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

פריסת קוד B1 (While) nextlist falselist B2 (Until) truelist B3 (While) falselist 28

בסכימת תרגום COND  until M B { COND.quad = M.quad; COND.truelist = B.falselist; COND.falselist = B.truelist; } 29