fall 2013-2014 compiler principles extending sethi-ullman for a ternary operator
DESCRIPTION
Fall 2013-2014 Compiler Principles Extending Sethi-Ullman for a Ternary Operator. Roman Manevich Ben-Gurion University. הנתונים. - PowerPoint PPT PresentationTRANSCRIPT
Fall 2013-2014Compiler Principles
Extending Sethi-Ullmanfor a Ternary Operator
Roman ManevichBen-Gurion University
2
הנתונים-side להקצאת אוגרים לביטויים חסרי Sethi-Ullmanהיזכרי באלגוריתם של
effects( הניתנים ע"י עצי ביטוי AST-בעלי דרגה קטנה או שווה ל )האלגוריתם 2 . על העץ שבו bottom-upעובד בשני שלבים: בשלב הראשון מתבצע מעבר
מחשבים לכל צומת את מספר האוגרים הנדרשת לה, ובשלב השני מקצים אוגרים ע"י מעבר על תתי העצים ה"כבדים" לפני ה"קלים".
. x?y:zלשפת התכנות הוסיפו אופרטור חדש לשפה בעל שלושה אופרנדים: ואחרת y שונה מאפס ערך הביטוי הוא ערכו של xהמשמעות שלו היא שכאשר
. נרצה להרחיב את אלגוריתם הקצאת האוגרים לטפל באופרטור zהוא ערכו של החדש.
נניח שנתונה לנו שפת ביניים הכוללת את הפקודות הבאות:y לתוך x אשר מעתיקה את mov x,y השמה)y )y := y + x ומאחסנת את התוצאה ב-y מ-x מחברת את add x,y חיבור שמשמעותה זהה לאופרטור שהוגדר למעלה, כאשר ite x,y,z ע"י הפקודה בחירה
)z )z:=x?y:zהתוצאה מאוחסנת ב-כמו-כן, קיימים האילוצים הבאים על האופרנדים של כל פקודה בשפת הביניים.
, iteלפקודות השמה וחיבור, לפחות אחד מהאופרנדים חיי להיות אוגר. בפקודת כל האופרנדים חייבים להיות אוגרים.
3
' א סעיףאת וסמני אופטימאלית אוגרים הקצאת מצאי הבאים מהביטויים אחד לכל
. הביטוי תוצאת מאוחסנת שבו האוגר ואת צומת בכל הדרוש האוגרים מספר
4
– ' חלק א 1סעיף
(a?b:c) ? (d?e:f) : (g?h:i) ?
?
a b c
?
d e f
?
g h i
5
– ' חלק א תשובה - 1סעיף
(a?b:c) ? (d?e:f) : (g?h:i) ?
?
a b c
?
d e f
?
g h i
3 3 3
5
R1 R2 R3
R1
R2 R3 R4
R2
R3 R4 R5
R3
R1
6
– ' חלק א 2סעיף
(a?b:c) ? (d?e:f) : g?
?
a b c
?
d e f
g
7
– ' חלק א תשובה - 2סעיף
(a?b:c) ? (d?e:f) : g?
?
a b c
?
d e f
gR1 R2 R3
3 3R1
R2 R3 R4
R2 R3
4 R1
8
– ' חלק א 3סעיף
(a?b:c) ? ((d+e)+(f+g)) : h
?
?
a b c
+ h
+
d e
+
f g
9
– ' חלק א תשובה - 3סעיף
(a?b:c) ? ((d+e)+(f+g)) : h
?
?
a b c
+ h
+
d e
+
f g
R1 R2 R3
3 R1
R2
1 1
R3
2 R2 R3
3 R1
R2 R3
10
– ' לתשובה כללי הסבר א סעיף
. - " הכבדים העצים תת למציאת ניסויים של קטן מספר י ע מתקבלות ההקצאותבפעולת המשתתף אופרנד לכל להקצות האילוץ ) iteדואגים לפי אוגר
אוגר(, מהמשתנים לאחד מקצים משתנים מעל חיבור ולפעולות שבשאלה .) אוגר) שאינו יחיד אופרנד מרשה שהפעולה ומשתמשים
11
2סעיף
ביטוי -Aכאשר A?B:Cנניח -Bו - Cו כמצוין אוגרים מספר הדורשים ביטויים תתי , ( ? . במה היעזר רמז הביטוי לכל הנדרש האוגרים מספר מהו הבאים במקרים
). להכליל כדי הקודם מהסעיף שלמדת.1| A|=k, |B|=k, |C|=k
.2|A|=k, |B|=k, |C|<|B|
.3|A|=k, |B|<|A|, |C|<|B|
12
2סעיף
ביטוי -Aכאשר A?B:Cנניח -Bו - Cו כמצוין אוגרים מספר הדורשים ביטויים תתי , ( ? . במה היעזר רמז הביטוי לכל הנדרש האוגרים מספר מהו הבאים במקרים
). להכליל כדי הקודם מהסעיף שלמדת.1| A|=k, |B|=k, |C|=k
k+2.2|A|=k, |B|=k, |C|<|B|
k+1.3|A|=k, |B|<|A|, |C|<|B|
k
13
3סעיף ) אוגרים ) להקצאת האפשריים המקרים כל את המכסה הכללי החוק את מצאי
אופטימאלית.
14
תשובה - 3סעיף : , שלהם המשקלות לפי לקטן מהגדול הענפים את מחשבים. a>b>cמסדרים עכשיו
max(a,b+1,c+2): כדלהלן. הוא הרעיון
דורש • ביותר הכבד , aהענף למשל ההגדרה לפי התוצאה R1,…,Raאוגרים את ומאחסןנניח – מסוים .R1באוגר
דורש • השני , bהענף מלבד אוגר בכל קח לשם להשתמש ויכול שהוא, R1אוגרים מכיוון- ה לפעולת דרושה שעדיין הראשון הענף של החישוב תוצאת את שהענף. iteמכיל נניח
באוגרים -R2,…,Rbמשתמש ב, התוצאה את .R2ומאחסןדורש • השלישי , cהענף מלבד אוגרים בכל קח לשם להשתמש ויכול -R1אוגרים מכיוון, R2ו
. באוגרים משתמש שהענף נניח הכבדים הענפים שני של החישוב תוצאות את מכילים שהםR3,…,Rc- ב, התוצאה את .R3ומאחסן
-iteהפעולה • ב -R1,R2,R3משתמשת ב התוצאה את דורש, R1ומאחסנת שאינו דבר. נוספים אוגרים
, אשר הפעולה לצורך בו שהשתמשנו המקסימאלי שהאינדקס לראות ניתן כעת , הינו הכולל האוגרים למספר .max(a,b+1,c+2)שווה
•- , ל ) קודם למשל שונה בסדר לענפים אוגרים להקצות -bניסיון " ל כ -aואח ל נותן( cואז. יותר גדול או שווה אוגרים מספר