47
Abstract State Machines

Abstract State Machines

  • Upload
    chet

  • View
    44

  • Download
    2

Embed Size (px)

DESCRIPTION

Abstract State Machines. נתחיל בהגדרות. אלגברה יהי סט U , ותהי f: U n -> U . במידה ו- n=0 , fϵU היא למעשה קבוע בשפה. n תקרא ה- arity של הפונקציה F . יהיו n 1 ,…., n k ϵN . אזי לכל i =1,…,k תהי f i פונק' מעל U עם arity n i . אזי - PowerPoint PPT Presentation

Citation preview

Page 1: Abstract State Machines

Abstract State Machines

Page 2: Abstract State Machines

נתחיל בהגדרות אלגברה

. במידה f: Un -> U, ותהי Uיהי סט • היא למעשה קבוע n=0, fϵUו-

של arity תקרא ה- nבשפה. . Fהפונקציה

i=1,…,k. אזי לכל n1,….,nkϵNיהיו •. אזי arity ni עם U פונק' מעל fiתהי

S = (U, f1,…,fk)תקרא אלגברה .U הוא התחום שלה )קבוצת הערכים

הם הסוג שלה.niהסמנטיים שלה(,ו-

Page 3: Abstract State Machines

סיגנטורה נותנת שמות לפונק' של האלגברה. יהיו •

f1,…,fk -סמלים ו n1,….,nk ϵ N אזי . Σ = )f1,…,fk, n1,….,nk( היא

arity הוא ה-i, niסיגנטורה. כאשר לכל , אזי מדובר 0 הוא arity. אם ה-fiשל

בסמל קבוע.

Page 4: Abstract State Machines

Σאלגברה-כל סיגנטורה מגדירה אוסף של •

,Σ = )f1,…,fkסיגמות-אלגברות. תהי n1,….,nk( .סיגנטורה

עם )S = )U, g1,…,gkכל אלגברה •arity )n1,….,nk( -תקרא סיגמא תקרא Sאלגברה. לעיתים

תכתב Σ. Giאינטרפרטציה של כדי לסמן שהיא fisלעיתים

.S ב-fiהאינטרפרטציה של

את קבוצת כל algΣ נסמן ב- סימון:•הסיגמות- אלגברות.

Page 5: Abstract State Machines

[ Σ-ground termsשמות עצם ]מוגדר רקורסיבית: • הוא שם עצם.arity=0כל סימן עם •כל פונקציה על שמות עצם היא גם שם עצם.•.TΣסימון: נסמן את קבוצת שמות העצם ב- •

Page 6: Abstract State Machines

לרוב מניחים סימונים כלשהם של מצבים •ופעולות.

כל מבנה ,יורי גורביץ'לפי המודל של •מתמטי )לוגי מסדר ראשון( יכול לשמש

כמצב. מודל חישובי זה הוא חזק יותר ואוניברסלי •

יותר מהמודלים הסטנדרטיים. נציג את מודל מכונות המצבים •

מערכות מעברים האבסטרקטיות כסוג של (transition systems .)

Page 7: Abstract State Machines

הגדרה: מערכת מעברים דטרמיניסטית מאותחלת

. כאשר:)C=)Q,I,Fהשלשה: ••Qאוסף של מצבים – •I≤Qאוסף המצבים ההתחלתיים •F:Q->Qפונק' המעברים בנוסף, מניחים קיום קבוצת מצבים •

F)q( = q, עבורם מתקיים Ω"סופיים" של fix-points. אלה בעצם qϵΩלכל

F.

Page 8: Abstract State Machines

רצף :Cהגדרה - רצף חישובי של •x0x1x2 של מצבים …xiϵQ כאשר ,x0ϵI,

xi+1 = F)xi( לכל i .

Ω xkϵ" אם סופיהרצף הנ"ל ייקרא "• כלשהו.kעבור

•C אם כל רצף חישובי אלגוריתם ייקרא הוא סופי.Cשל

Page 9: Abstract State Machines

מתודה ששווה )בכוח מתודה אפקטיבית:•החישוב שלה( למכונת טיורינג או לכל

מכניזם לפונק' חישוביות. כיום, לזה בד"כ מתכוונים כשאומרים "אלגוריתם".

אנחנו נשתמש במושג "מערכת מעברים" •במקום "מתודה חישובית", ו"מערכת מעברים אפקטיבית" במקום "מתודה

חישובית אפקטיבית".

Page 10: Abstract State Machines

בהמשך השיעור ננסה להבין למה מכונות מצבים אבסטרקטיות הן למעשה יותר

אוניברסליות ממודלים חישוביים סטנדרטיים. כמו כן, נספק סיבות

אינטואיטיביות להצלחת מכונות המצבים האבסטרקטיות.

נתחיל מהצגת דוגמא.

Page 11: Abstract State Machines

ASTדוגמא ל-

Page 12: Abstract State Machines

בדוגמא הבאה ננסה להראות אלגוריתם שלא יכולים להיות שמוגדר ע"י מצבים

. מיוצגים ע"י סמלים פונק' שמקבלת שני augmentתהי

ארגומנטים: הראשון קבוצה כלשהי, m ואובייקט Mוהשני אובייקט. לקבוצה

נגדיר: augment)M, m( =def M U {m} .

נרצה לכתוב אלגוריתם שמאחד שני אלמנטים לקבוצה אחת, תוך שימוש

.augmentבפונק'

Page 13: Abstract State Machines

,C0 = )Q0, I0נרצה לבנות מערכת מעברים F0( כך שכל קבוצה ,M ביחד עם שני

. רצף xM,m,n יהוו מצב סופי m, nאלמנטים צריך xM,m,nחישובי שמתחיל ברצף

M Uלהסתיים במצב שמייצג את הקבוצה {m, n} כעת נבחר משתנים שיתארו את .

ישתנה עם הקבוצות – Xהאלגוריתם. X הערך של C0של xM,m,nבמצב התחלתי

. Mהוא

Page 14: Abstract State Machines

:P0נתאר ע"י אלגוריתם C0את הצעדים של

P0 : begin X := augment)X,m(;

X := augment)X, n(end.

מצב התחלתי של P0: S0ע"פ האלגוריתם C0 שמוביל למצב ,S1 שמציב את הקבוצה ,

M U {m}-ב X לאחר מצב .S1 מגיע מצב ,S2 שמציב את M U {m, n}-ב X. S2

.C0של מצב סופי הוא

Page 15: Abstract State Machines

,"X"בתיאור הפונקציה השתמשנו בסימנים "begin", "end באובייקטים ,"=:" , ";" ,"

m, n 'ובפונק augment נעדיף כעת .ייצוג שכולו עם סימנים. נשיג זאת ע"י

, וסימן אופרטור x, yהוספת שני משתנים, C0 של xM,m,n. במצב התחלתי gבינארי,

M, m ,n הוא X, x, yנניח שהערך של הוא gבהתאמה, והערך של האופרטור

. augmentהפונקציה

Page 16: Abstract State Machines

נייצג זאת כך:P1 : begin X := g)X, x(;

X := g)X, y( end. ,Mהייצוג של מצבים עדיין כולל סימנים כמו

m, n augment, M U {m, n} נרצה גם . ייצוג בסימנים למצבים. ייצוג כזה יכלול רצף

. Σשל סימנים מעל אלף-בית סופי כלשהו, אבל יש רק מספר בן מנייה של מילים מעל

Σ והרבה יותר ממספר בן-מנייה של ,קבוצות.

Page 17: Abstract State Machines

בלתי אפשרי לייצג את כל לכן, זה . המצבים הללו באמצעות סימנים

בלתי אפשרי להגדיר השמה של ערכים ?למשתנים באמצעות סימנים.

לסיכום, פונק' המעברים יכולה להיות מיוצגת ע"י סימנים, בעוד המצבים עצמם לא

יכולים.

Page 18: Abstract State Machines

ASTסדרתיות

Page 19: Abstract State Machines

הדוגמא הקודמת לא מתאימה להגדרה •ה"מוכרת" של מודל חישובי, היא

מתאימה למודל חישובי כללי יותר. ,C = )Q, Iכדי להדגיש את ההבדל, תהי •

F( מערכת מעברים דטרמיניסטית מאותחלת.

היא מערכת מעברים Cנניח ש-•אפקטיבית.

מיוצג ע"י רצף S ϵ Qנניח שכל מצב • גם )F)Sסופי של סימנים. המצב העוקב

הוא מיוצג ע"י רצף של סימנים, שונה .Sמזה שמייצג את

לסיכום, ארגומנטים ותוצאות הפעלת •פונק' המעברים הם רצף סופי של

בסימנים של סופי סימנים, לכן קיים ייצוג .Fפונק' המעברים

Page 20: Abstract State Machines

היא מערכת מעברים ע"פ Cכעת נניח ש-• לא C ב-Sהמודל הכללי יותר. מצב

מיוצג ע"י סימנים, אלא הוא אובייקט )ייתכן Uסמנטי. הוא מכיל קבוצה

,u1אינסופית(, מספר סופי של אלמנטים …,uk-ב U ומספר סופי של פונקציות g1,…,gk מעל U 'כך שלכל פונק ,gi

.ui שלה הוא arityה-

מסמן אובייקט xi, משתנה Sבכל מצב •ui לכן נסמן .xis עבור ui נסמן בהתאם .

.gj את הפונק' fjsב-

Page 21: Abstract State Machines

לכל המצבים במערכת מעברים אותם •סימני משתנים ופונקציות, שמשמשים כדי

.C של Fלייצג את פונק' המעברים טכנית, הסימנים הללו מהווים סיגנטורה •

Σ-כל מצב ב ,C הוא Σ .אלגברה-משתנים בד"כ מסומנים כקבועים, או

.arity=0פונק' עם

Page 22: Abstract State Machines

נגדיר כעת את פונק' המעברים. נסמן •. סימן ההשמה בעצם x := tהשמה כך:

)s(xf, מתקיים )F)Sאומר שבמצב הבא, = ts .

השמות לא מוגדרות רק לקבועים, אלא •לכל סימני היחס בשפה. נסמן השמה

f)t1,…,tn( := t0כללית לסימן יחס כך: כך f– בעצם מעדכנת את הפונקציה

,s()t1s(fF, יתקיים )F)Sשבמצב העוקב, …,tns( = t0s .

נאפשר שתי השמות על אותה פונק' בו •.קונסיסטנטיותזמנית, רק בהנתן שהן

Page 23: Abstract State Machines

סיגנטורה.Σ תהי הגדרה פורמלית:. אזי )t = f)t1,…,tk כאשר t,t0 ϵ TΣיהיו •

f)t1,…,tk( := t0.היא סיגמא-השמה

. שתי סיגמא-השמות S ϵ algΣיהי •f)t1,…,tk( := t0 , f)t1',…,tk'( := t0 '

אם"ם Sב-קונסיסטנטיות ייקראו f)t1s,…,tks( = )t1s',…,tks'( גורר .t0s' = t0sש:

סט של סיגמא-השמות ייקרא • אם"ם האיברים שלו S ב-קונסיסטנטי

בזוגות.Sקונסיסטנטיים ב-

Page 24: Abstract State Machines

אנחנו מתעסקים בסיגנטורות שכוללות את , true, false, undefinedהסימנים:

ואת הסימנים הרגילים ל"וגם", "או" ו- "not זו תהיה סיגנטורת ."ASM.

Page 25: Abstract State Machines

.ASM סיגנטורת Σ תהי הגדרה: היא הקבוצה הקטנה guardΣהקבוצה •

)= t, t' ϵ TΣביותר של תנאים כך שלכל שמות עצם( מתקיים:

1 .t=t' ϵ guardΣ .

מתקיים b,b' ϵ guardΣ. לכל 2 Y b ϵ guardΣ וגםb˄b'ϵ

guardΣ.

. אזי b ϵ guardΣ-השמה ותהי r Σתהי • sigma- guarded" היא r אז b"אם

assignment. q1,…,qm sigma-guardedיהיו •

assignments" אזי .par q1,…,qm

endpar היא תכנית "ASM סדרתית .Σחסומה מעל

Page 26: Abstract State Machines

סיגמא-אלגברה S סיגנטורה, Σתהי הגדרה: סט של Z, ויהי Uעם עולם

.Sסיגמא-השמות, קונסיסטנטיות ב- :k-ary, Σ f ϵעבור סמל •

FZ,S : Uk -> U )t1s,…,tks( -> t0 iff f)t1,…,tk( := t0 ϵ Z

U -> fs)u( , otherwise

סיגמא-אלגברה עם )R = def semz)Sתהי • = fR כך: Σ f ϵ, מגדירה כל סימן Uעולם

fZ,S כלומר .R הוא המצב הבא אחרי .S על Fהפעלת

Page 27: Abstract State Machines

.ASM סיגנטורת Σ תהי הגדרה: = bs. אזי b ϵ guardΣ, S ϵ algΣיהי •

true אם"ם b = )t = t'( וגם ts = t's או , b, או אם b's = true' וגם לא b = Y bאם

= b' ˄ b וגם ''b's = b''s = true.

]זו סמנטיקה שמוכרת לנו משיעורי לוגיקה[

Page 28: Abstract State Machines

:Σ מעל ASM תכנית M תהי •Par: If b1 then r1

…. If bm then rm endpar.

<- semM : algΣאזי הפונקציה הסמנטית algΣ :מוגדרת כך

יהיS ϵ algΣעבור

Z := {ri | bis = true , 1 ≤ i ≤ m}אזי .

SemM)S( := { semZ)S( if Z is consistent on S

{S otherwise

Page 29: Abstract State Machines

יכולה Σ מעל סיגנטורה ASM, Mתכנית •לשמש כפונק' המעברים של מערכת מעברים שמגדירה סיגמות- אלגברות

כמצב: M, ותהי ASM סיגנטורת Σ תהי הגדרה:•

)A = )Q, I, F ותהי Σ מעל ASMתכנית = F, ו- Q ≤ algΣמערכת מעברים עם

semM אזי .A מערכת מעברים היאASM.

Page 30: Abstract State Machines

: P1נזכר בתכנית

P1 : begin X := g)X, x(;X := g)X, y(

end, אך יש ASMהיא לא נראית כמו תכנית

טריק שיהפוך אותה לתכנית ב"פורמט" הרצוי.

Page 31: Abstract State Machines

, שיאותחל lלצורך כך נגדיר משתנה נוסף, :S0 במצב ההתחלתי 0להיות

If l=0 then X := g)X, x(;If l=0 then l:=1;If l=1 then X := g)X, y(;If l=0 then l:=2; 

Page 32: Abstract State Machines

כוח החישוב של מערכת מעברים

ASMסדרתית

Page 33: Abstract State Machines

הן בעלות כוח ASMמערכות מעברים •חישוב חזק מאוד.

אינטואיטיבית, כל מערכת מעברים עם •פונק' מעברים שמיוצגת ע"י סימנים, יכולה

.ASMלהיות מיוצגת כ- לכל Fראשית נתאר את פונק' המעברים •

למצב S ע"י ה"הבדל" בין המצב Sמצב . ההבדל הוא קבוצת עדכונים )F)Sהעוקב

(f, u, v כאשר )f ,הוא סימן של פונקציה u n של אלמנטים כאשר n-tupleהוא

= arity של f -ו ,v .הוא אלמנט יחיד , עדכון שכזה בעצם Sבצירוף עם מצב

.fF)S()u( = vאומר ש:

Page 34: Abstract State Machines

סימן פונקציה f סיגנטורה, Σ תהי הגדרה:• u ϵ עולם ויהיו U, יהי arity – n עם Σב-

Un, v ϵ U( אזי .f, u, v הוא )Σ עדכון-.Uמעל

( M U {m} ,)( ,Xלדוגמא, העדכון )•. פונק' S1 ל-S0מתאר את המעבר מ-

בד"כ מעדכנת יותר Fהמעברים מפונקציה אחת ביותר ממקום אחד בכל

צעד.

Page 35: Abstract State Machines

מערכת מעברים )A=)Q, I, Fהגדרה: תהי Q ≤ algΣדטרמיניסטית מאותחלת עם

. אזי:S ϵ Q. יהי Σוסיגנטורה •Σ( עדכון-f, u, v הוא )F עדכון של-S אם"ם

fs)u( != fF)S()u( = v.-עדכונים F( הסט של כל ה-F, Sנסמן ב- ∆)•

.Sשל

Page 36: Abstract State Machines

. F( ביחד מהווה את F, S, הסט ∆)Sלכל יכולה להיות מאופיינת ע"י הסט Fלכן,

(∆F, S .כלומר ע"י הייצוג שלו בסימנים ,)ייצוג כזה בסימנים חייב לקיים את התנאים

הבאים: מתקייםR, Sאם לשני מצבים •

(∆F, S(∆ =! )F, R אז לפחות תנאי אחד ,)t ϵ TΣ מהווה את ההבדל ביניהם, כלומר ts != tr .

בנוסף, מכיוון שייצוג בסמלים הוא תמיד • כאלה יספיקו לכל tסופי, מספר סופי של

המצבים. F נקראת bounded exploration

במקרה הזה.

Page 37: Abstract State Machines

מערכת מעברים )A=)Q, I, F תהי הגדרה: Q ≤ algΣדטרמיניסטית מאותחלת עם

כך שלכל המצבים T≤ TΣ. יהי Σוסיגנטורה R,S ϵ Q אם לכל : t ϵT ומתקיים ts = tr ,

T(. במקרה כזה, F, S(∆ = )F, Rאזי ∆) היא F. F ל-characteristicתקרא

bounded exploration אם קיים characteristic סופי, סט T של תנאים

.Fל- ישנם משתנים שכל Tאינטואיטיבית: ב-

המצבים מסכימים על הפירוש הסמנטי שלהם. לכן כאשר התכנית מסתכלת על המשתנים האלה, היא תפעל באופן זהה

בכל אחד מהמצבים.

Page 38: Abstract State Machines

, F, bounded explorationההגדרה הזו ל- על מנת שתוכל F ל-הכרחיהיא מאפיין

. ASMלהיות מיוצגת ע"י תכנית דרישה נוספת: מצבים ומצבים התחלתיים

סגורים תחת איזומורפיזם, ופונק' המעברים F אינווריאנטית תחת איזומורפיזם. הדרישות

הללו קיימות בגלל האבחנה שייצוג של תנאי לא יכול להבדיל בין מבנים

איזומורפיים. זאת מכיוון שפונקציית המעברים מתעניינת בייצוג הסינטקטי

בלבד.

Page 39: Abstract State Machines

)A=)Q, I, F ותהי Σ תהי סיגנטורה הגדרה:מערכת מעברים דטרמיניסטית מאותחלת

R,S ϵ Q כך שלכל Q ≤ algΣעם . אם h: R -> Sולכל איזומורפיזם

מתקיים:•R ϵ Q אם"ם S ϵ Q ,וגם R ϵ I אם"ם S ϵ

I• h: F)R( -> F)S(.הוא גם איזומורפיזם

.סגורה לאיזומורפיזם Aאזי

Page 40: Abstract State Machines

הטענה הבאה מתארת את הכוח החישובי :ASMשל מערכת מעברים

)A=)Q, I, F ותהי Σ תהי סיגנטורה טענה:מערכת מעברים דטרמיניסטית מאותחלת

, ותהי Q ≤ algΣוסגורה לאיזומורפיזם עם F bounded exploration אז קיימת .

.F=semM עם ASMתכנית

Page 41: Abstract State Machines

היבטים נוספים של ASM

Page 42: Abstract State Machines

מתייחס לרעיון המהפכני ASTהמושג •שמצב הוא מבנה מתמטי. דנו בגרסה הכי

מזווית סינטקטית. ASMאלמנטרית של אינו יחיד, ASMבאופן כללי, הסינטקס של יש כמה גרסאות שיעבדו.

יש הרחבות מספיקות לגרסה האלמנטרית • כפי שהוצג בנייר הזה:ASMשל

Page 43: Abstract State Machines

יכולה Fפונק' המעברים הדטרמיניסטית •להיות מוחלפת בפונק' לא דטרמיניסטית.

יכולה להיות ASMההתנהגות של תכנית • שאינם מבוצעים xixi+1ממודלת ע"י צעדים

ע"י אותה התכנית, אלא ע"י העולם החיצון.וכן הלאה...•

Page 44: Abstract State Machines

סיגמא- אלגברה היא המבנה המתמטי •הטבעי ביותר. לכן היא מהווה את האמצעי

הגמיש ביותר למדל מצבים של מערכות. יש היכולת לבנות ASMלכן לגישה של ה-

אלגוריתם שרירותי ברמת האבסטרקציה הטבעית שלה, בלי לממש אותו. למעשה,

הדרישה הליברלית ממצבים וצעדים מסתגלת בקלות לכל סוג אלגוריתם,

.high-level system designובמיוחד ל-

Page 45: Abstract State Machines

•ASM מוצלח במיוחד לתיאור הסמנטיקה של שפות תכנות: סמנטיקה שמתמודדת עם

מגוון עשיר של מבנים מתמטיים שלא דורשים ייצוג סינטקטי. זה בדיוק מה

מספק.ASMש- יושם בהצלחה בכל ASMהפורמליזם של •

תחומי התוכנה.

Page 46: Abstract State Machines

אלגוריתם הוא אפקטיבי אם הוא יכול להיות •מבוצע בצורה מכנית. הדרישות שהצגנו קודם לכן מספיקות על מנת שנוכל לייצג תכנית ע"י

ASM .דורשים שמצב התחלתי יהיה מלוגיקה מסדר •

ראשון, אך הוא עדיין יכול להכיל פעולות halting למשל כמו computableשאינן

function .ופעולות על מספרים ממשיים ,כדי למנוע מצב כזה, נדרוש שהמצבים •

ההתחלתיים יהיו ניתנים לייצוג סופי בדרך כלשהי )למשל ע"י תכניות אחרות(, מה שאומר שניתן לבצע אותן בצורה מכנית

כלשהי.

Page 47: Abstract State Machines

יודעים שפונק' המעברים ניתנת לייצוג ע"י •תכנית, וכעת הראינו שהמצבים ההתחלתיים

גם הם יכולים להיות מיוצגים ע"י רשימה סופית של זוגות <מיקום , ערך< ותכניות

כלשהן לפעולות ההתחלתיות. לכן אפשר להשתמש באינטרפרטר, שייקח •

את הייצוג של מצב ויחשב את המצב הבא. את האינטרפרטר ניתן לפתח בכל שפת

תכנות.