Backpatching 1. תזכורת מתרגול קודם קוד ביניים - שפת הרביעיות שיטות לייצור קוד ביניים –שימוש בתכונת code –כתיבה ישירה ל-buffer של פקודות שיטות לתרגום מבני.

Slides:



Advertisements
Similar presentations
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
Advertisements

נושאים קוד מותנה Setting Testing Control Flow If-then-else Varieties of Loops Switch Statements שפת מכונה – מבוא מבוסס על פרק 3 של Computer Systems – a.
Backpatching: The syntax directed definition we discussed before can be implemented in two or more passes (we have both synthesized attributes and inheritent.
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
Backpatching 1. מה בתרגול ? שלבים בפתרון Backpatch דוגמא : SWITCH שאלה ממבחן 2.
תרגול 11: Backpatching שלבים בפתרון Backpatch דוגמא : SWITCH שאלה ממבחן 1.
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
נכתב ע"י קירה רדינסקי תרגום לקוד ביניים נכתב ע"י קירה רדינסקי סמסטר אביב, תשס"ט.
1 Formal Specifications for Complex Systems (236368) Tutorial #2 Z introduction and notation (contd.); Birthday book example (Chapter 1 in the book); Z.
מפה - Map חומרי עזר שהוכנו ע"י משתתפי קורס מורים מובילים תשע"א ניתן להשתמש בחומרים לצורך הוראה בלבד. אסור לפרסם את החומרים או לעשות בהם שימוש מסחרי כלשהו.
מתמטיקה בדידה תרגול 3.
פעולות מילון Insert, Delete, Search Binary Search Tree, AVL, 2-3 Tree, Skip List O(log n) האם יש מבנה עם סבוכיות (1)O? לא למפתח כלשהו.
מבני נתונים 1 – מבנה התרגולים
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
תכנות תרגול 9 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
רקורסיות נושאי השיעור מהן רקורסיות פתרון רקורסיות : שיטת ההצבה שיטת איטרציות שיטת המסטר 14 יוני יוני יוני 1514 יוני יוני יוני 1514.
תרגום לקוד ביניים 1. מבנה סכמתי של קומפיילר עד כה ראינו: בפועל: ניתוח לקסיקלי ניתוח תחבירי ניתוח סמנטי backend ניתוח לקסיקלי ניתוח תחבירי ניתוח סמנטי.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
שפות ביניים – Intermediate Languages/Representations Aho, Sethi and Ullman – Chapter 8 Cooper and Torczon – Chapter 5.
מבוא למדעי המחשב © אריק פרידמן 1 מצביעים כמערכים דוגמה.
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
עיבוד תמונות ואותות במחשב אלכסנדר ברנגולץ דואר אלקטרוני : שיטות קידוד שיטות קידוד אורך מלת קוד ואנטרופיה אורך מלת קוד ואנטרופיה קידוד.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
Multicycle MIPS תרגול כיתה מס' 13.
תכנות תרגול 6 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
תכנות תרגול 10 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
תכנות תרגול 4 שבוע : לולאות for לולאות for for (counter=1 ;counter
1 שלבי ביצוע הוראת מכונה (1) FETCH = קרא הוראה מהזיכרון ע " פ הכתובת שמכיל ה -PC. (2) DECODE = פענח את הפקודה וקרא את האוגרים הנחוצים ( אחד או שניים ).
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
אביב תשס"הDBMS , PostgreSQL1 PostgreSQL עבודה עם שרת PostgreSQL : PSQL – מפענח שורת פקודה LIBPQ – ספריית C WebDB – ממשק מבוסס Web (לסטודנטים של.
1 אופטימיזציה של קוד ASU פרק מה זה אופטימיזציה? שיפור ביצועי התוכנית. בניגוד למה שמשתמע מהשם, בדרך-כלל לא מגיעים לאופטימום.
מתמטיקה בדידה תרגול 2.
1 Formal Specifications for Complex Systems (236368) Tutorial #3 Z introduction and notation (contd.); Birthday book example (Chapter 1 in the book)
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
שלבי ביצוע הוראת מכונה (1) FETCH = קרא הוראה מהזיכרון ע " פ הכתובת שמכיל ה -PC. (2) DECODE = פענח את הפקודה וקרא את האוגרים הנחוצים ( אחד או שניים ). (3)
1 ׃1998 Morgan Kaufmann Publishers פקודת ה- jump 4 bits 26 bits 2 bits 00 : כתובת קפיצה במילים : כתובת קפיצה בבתים … …
Structure. מה לומדים היום ? דרך לבנות מבנה נתונים בסיסי – Structure מייצר " טיפוס " חדש מתאים כאשר רוצים לאגד כמה משתנים יחד דוגמאות : עובד : שם, טלפון,
Methods public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing.
Practice session 3 תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי ) שיטות חישוב : Applicative & Normal Evaluation Partial Evaluation.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
Practice session 3.  תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי )  שיטות חישוב : Applicative & Normal Evaluation.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
Practice session 6 Sequence Operations Partial Evaluation Lazy Lists.
Combo Box שלושה סוגים של Combo Box: Style 0 (default) - drop-down combo box המשתמש יכול להוסיף אפשרויות לרשימה או ללחוץ על החץ לבחירה מרשימת האפשרויות.
1 ניתוח שונות: Post-hoc analysis ניתוח שונות חד-כיווני עם אפקטים קבועים: Post-hoc analysis ד"ר מרינה בוגומולוב מבוסס חלקית על ההרצאות של פרופ' יואב בנימיני.
עקרונות תכנות מונחה עצמים תרגול 11: OOP in C++. Outline  Where do the objects live ?  Inheritance  Slicing  Overriding vs Shadowing.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
מחלקות classes.
Static and enum קרן כליף.
עבודה עם נתונים באמצעות ADO.NET
בעיות נוספות ב-NPC.
מבוא כללי למדעי המחשב פונקציות
אלגוריתם שינוי צורה למתקני טנזגריטי
תזכורת על מה דיברנו שיעור שעבר? בנינו אתר אינטרנט עם כותרות
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
מבוא לתכנות ב- Java תרגול 10 - רשימות מקושרות.
Presentation transcript:

Backpatching 1

תזכורת מתרגול קודם קוד ביניים - שפת הרביעיות שיטות לייצור קוד ביניים –שימוש בתכונת code –כתיבה ישירה ל-buffer של פקודות שיטות לתרגום מבני בקרה –שימוש בתוויות נורשות –היום: שיטת ה-backpatching 2

שיטת Backpatching הרעיון הכללי: –למספר משתנים בדקדוק תהיה תכונה לכל נקודת המשך אפשרית עבור המשתנה –התכונה תכיל "רשימת התחייבויות" רשימת כתובות של פקודות קפיצה, שבכל אחת מהן חסרה הכתובת אליה יש לקפוץ –ברגע שנדע סוף סוף מהו יעד של קפיצה, נשלים את הכתובת הנכונה בכל אחת ואחת מהפקודות החסרות האלה נשתמש בפונקציה מיוחדת לשם כך 3

שיטת Backpatching (המשך) נעבוד בשיטת יצור קוד המשתמשת ב-buffer נניח שימוש במשתנים סטנדרטיים: –B - גוזר ביטויים בוליאניים תכונות: truelist, falselist –S - גוזר פקודות / רשימה של פקודות תכונה: nextlist נניח שתמיד בסיום ביצוע רצף הפקודות ב- S, קופצים לאותה כתובת אשר בה נמלא את החסר בכל אחד מאיברי הרשימה nextlist –E - גוזר ביטויים אריתמטיים תכונה: place 4

שיטת Backpatching (המשך) נניח קיום של פונקציות הבאות: –makelist (item) - יוצרת רשימה ובה quad –merge (list1, list2) - מאחדת את שתי הרשימות list1 ו-list2 ומחזירה מהם רשימה חדשה –emit (command) - מדפיסה פקודה ל-buffer –nextquad() - מחזירה את הכתובת הפנויה הבאה ב-buffer –backpatch (list, address) - מטליאה את כל ה"חורים" בפקודות שכתובותיהן ב-list. בכל "חור" תוכנס כתובת address 5

הערות טכניות חשובות אין להשתמש בפונקציות נוספות שניגשות ל-buffer אין להניח דבר לגבי אורך הפקודות –כתובת הפקודה הבאה מתקבלת רק בעזרת nextquad() – לא על ידי הוספת 1 לכתובת של פקודה קודמת פונקצית backpatch() מקבלת רשימה –אם רוצים לתקן כתובת מסוימת, יש לייצר רשימה של איבר אחד בעזרת קריאה ל-makelist() 6

דוגמאות לפריסת קוד דוגמה: כתבו פריסת קוד עבור ביטויים בוליאניים ומבני בקרה בשיטת backpatching. איך ניגשים לשאלה? –מחליטים איך רוצים שהקוד ייפרס ומציירים דיאגרמה –כותבים סכימת תרגום על סמך הדיאגרמה 7