abstract state machines
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 PresentationTRANSCRIPT
![Page 1: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/1.jpg)
Abstract State Machines
![Page 2: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/2.jpg)
נתחיל בהגדרות אלגברה
. במידה 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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/3.jpg)
סיגנטורה נותנת שמות לפונק' של האלגברה. יהיו •
f1,…,fk -סמלים ו n1,….,nk ϵ N אזי . Σ = )f1,…,fk, n1,….,nk( היא
arity הוא ה-i, niסיגנטורה. כאשר לכל , אזי מדובר 0 הוא arity. אם ה-fiשל
בסמל קבוע.
![Page 4: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/4.jpg)
Σאלגברה-כל סיגנטורה מגדירה אוסף של •
,Σ = )f1,…,fkסיגמות-אלגברות. תהי n1,….,nk( .סיגנטורה
עם )S = )U, g1,…,gkכל אלגברה •arity )n1,….,nk( -תקרא סיגמא תקרא Sאלגברה. לעיתים
תכתב Σ. Giאינטרפרטציה של כדי לסמן שהיא fisלעיתים
.S ב-fiהאינטרפרטציה של
את קבוצת כל algΣ נסמן ב- סימון:•הסיגמות- אלגברות.
![Page 5: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/5.jpg)
[ Σ-ground termsשמות עצם ]מוגדר רקורסיבית: • הוא שם עצם.arity=0כל סימן עם •כל פונקציה על שמות עצם היא גם שם עצם.•.TΣסימון: נסמן את קבוצת שמות העצם ב- •
![Page 6: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/6.jpg)
לרוב מניחים סימונים כלשהם של מצבים •ופעולות.
כל מבנה ,יורי גורביץ'לפי המודל של •מתמטי )לוגי מסדר ראשון( יכול לשמש
כמצב. מודל חישובי זה הוא חזק יותר ואוניברסלי •
יותר מהמודלים הסטנדרטיים. נציג את מודל מכונות המצבים •
מערכות מעברים האבסטרקטיות כסוג של (transition systems .)
![Page 7: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/7.jpg)
הגדרה: מערכת מעברים דטרמיניסטית מאותחלת
. כאשר:)C=)Q,I,Fהשלשה: ••Qאוסף של מצבים – •I≤Qאוסף המצבים ההתחלתיים •F:Q->Qפונק' המעברים בנוסף, מניחים קיום קבוצת מצבים •
F)q( = q, עבורם מתקיים Ω"סופיים" של fix-points. אלה בעצם qϵΩלכל
F.
![Page 8: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/8.jpg)
רצף :Cהגדרה - רצף חישובי של •x0x1x2 של מצבים …xiϵQ כאשר ,x0ϵI,
xi+1 = F)xi( לכל i .
Ω xkϵ" אם סופיהרצף הנ"ל ייקרא "• כלשהו.kעבור
•C אם כל רצף חישובי אלגוריתם ייקרא הוא סופי.Cשל
![Page 9: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/9.jpg)
מתודה ששווה )בכוח מתודה אפקטיבית:•החישוב שלה( למכונת טיורינג או לכל
מכניזם לפונק' חישוביות. כיום, לזה בד"כ מתכוונים כשאומרים "אלגוריתם".
אנחנו נשתמש במושג "מערכת מעברים" •במקום "מתודה חישובית", ו"מערכת מעברים אפקטיבית" במקום "מתודה
חישובית אפקטיבית".
![Page 10: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/10.jpg)
בהמשך השיעור ננסה להבין למה מכונות מצבים אבסטרקטיות הן למעשה יותר
אוניברסליות ממודלים חישוביים סטנדרטיים. כמו כן, נספק סיבות
אינטואיטיביות להצלחת מכונות המצבים האבסטרקטיות.
נתחיל מהצגת דוגמא.
![Page 11: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/11.jpg)
ASTדוגמא ל-
![Page 12: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/12.jpg)
בדוגמא הבאה ננסה להראות אלגוריתם שלא יכולים להיות שמוגדר ע"י מצבים
. מיוצגים ע"י סמלים פונק' שמקבלת שני augmentתהי
ארגומנטים: הראשון קבוצה כלשהי, m ואובייקט Mוהשני אובייקט. לקבוצה
נגדיר: augment)M, m( =def M U {m} .
נרצה לכתוב אלגוריתם שמאחד שני אלמנטים לקבוצה אחת, תוך שימוש
.augmentבפונק'
![Page 13: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/13.jpg)
,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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/14.jpg)
: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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/15.jpg)
,"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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/16.jpg)
נייצג זאת כך:P1 : begin X := g)X, x(;
X := g)X, y( end. ,Mהייצוג של מצבים עדיין כולל סימנים כמו
m, n augment, M U {m, n} נרצה גם . ייצוג בסימנים למצבים. ייצוג כזה יכלול רצף
. Σשל סימנים מעל אלף-בית סופי כלשהו, אבל יש רק מספר בן מנייה של מילים מעל
Σ והרבה יותר ממספר בן-מנייה של ,קבוצות.
![Page 17: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/17.jpg)
בלתי אפשרי לייצג את כל לכן, זה . המצבים הללו באמצעות סימנים
בלתי אפשרי להגדיר השמה של ערכים ?למשתנים באמצעות סימנים.
לסיכום, פונק' המעברים יכולה להיות מיוצגת ע"י סימנים, בעוד המצבים עצמם לא
יכולים.
![Page 18: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/18.jpg)
ASTסדרתיות
![Page 19: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/19.jpg)
הדוגמא הקודמת לא מתאימה להגדרה •ה"מוכרת" של מודל חישובי, היא
מתאימה למודל חישובי כללי יותר. ,C = )Q, Iכדי להדגיש את ההבדל, תהי •
F( מערכת מעברים דטרמיניסטית מאותחלת.
היא מערכת מעברים Cנניח ש-•אפקטיבית.
מיוצג ע"י רצף S ϵ Qנניח שכל מצב • גם )F)Sסופי של סימנים. המצב העוקב
הוא מיוצג ע"י רצף של סימנים, שונה .Sמזה שמייצג את
לסיכום, ארגומנטים ותוצאות הפעלת •פונק' המעברים הם רצף סופי של
בסימנים של סופי סימנים, לכן קיים ייצוג .Fפונק' המעברים
![Page 20: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/20.jpg)
היא מערכת מעברים ע"פ 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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/21.jpg)
לכל המצבים במערכת מעברים אותם •סימני משתנים ופונקציות, שמשמשים כדי
.C של Fלייצג את פונק' המעברים טכנית, הסימנים הללו מהווים סיגנטורה •
Σ-כל מצב ב ,C הוא Σ .אלגברה-משתנים בד"כ מסומנים כקבועים, או
.arity=0פונק' עם
![Page 22: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/22.jpg)
נגדיר כעת את פונק' המעברים. נסמן •. סימן ההשמה בעצם x := tהשמה כך:
)s(xf, מתקיים )F)Sאומר שבמצב הבא, = ts .
השמות לא מוגדרות רק לקבועים, אלא •לכל סימני היחס בשפה. נסמן השמה
f)t1,…,tn( := t0כללית לסימן יחס כך: כך f– בעצם מעדכנת את הפונקציה
,s()t1s(fF, יתקיים )F)Sשבמצב העוקב, …,tns( = t0s .
נאפשר שתי השמות על אותה פונק' בו •.קונסיסטנטיותזמנית, רק בהנתן שהן
![Page 23: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/23.jpg)
סיגנטורה.Σ תהי הגדרה פורמלית:. אזי )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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/24.jpg)
אנחנו מתעסקים בסיגנטורות שכוללות את , true, false, undefinedהסימנים:
ואת הסימנים הרגילים ל"וגם", "או" ו- "not זו תהיה סיגנטורת ."ASM.
![Page 25: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/25.jpg)
.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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/26.jpg)
סיגמא-אלגברה 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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/27.jpg)
.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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/28.jpg)
:Σ מעל 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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/29.jpg)
יכולה Σ מעל סיגנטורה ASM, Mתכנית •לשמש כפונק' המעברים של מערכת מעברים שמגדירה סיגמות- אלגברות
כמצב: M, ותהי ASM סיגנטורת Σ תהי הגדרה:•
)A = )Q, I, F ותהי Σ מעל ASMתכנית = F, ו- Q ≤ algΣמערכת מעברים עם
semM אזי .A מערכת מעברים היאASM.
![Page 30: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/30.jpg)
: P1נזכר בתכנית
P1 : begin X := g)X, x(;X := g)X, y(
end, אך יש ASMהיא לא נראית כמו תכנית
טריק שיהפוך אותה לתכנית ב"פורמט" הרצוי.
![Page 31: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/31.jpg)
, שיאותחל 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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/32.jpg)
כוח החישוב של מערכת מעברים
ASMסדרתית
![Page 33: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/33.jpg)
הן בעלות כוח 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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/34.jpg)
סימן פונקציה f סיגנטורה, Σ תהי הגדרה:• u ϵ עולם ויהיו U, יהי arity – n עם Σב-
Un, v ϵ U( אזי .f, u, v הוא )Σ עדכון-.Uמעל
( M U {m} ,)( ,Xלדוגמא, העדכון )•. פונק' S1 ל-S0מתאר את המעבר מ-
בד"כ מעדכנת יותר Fהמעברים מפונקציה אחת ביותר ממקום אחד בכל
צעד.
![Page 35: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/35.jpg)
מערכת מעברים )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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/36.jpg)
. 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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/37.jpg)
מערכת מעברים )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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/38.jpg)
, F, bounded explorationההגדרה הזו ל- על מנת שתוכל F ל-הכרחיהיא מאפיין
. ASMלהיות מיוצגת ע"י תכנית דרישה נוספת: מצבים ומצבים התחלתיים
סגורים תחת איזומורפיזם, ופונק' המעברים F אינווריאנטית תחת איזומורפיזם. הדרישות
הללו קיימות בגלל האבחנה שייצוג של תנאי לא יכול להבדיל בין מבנים
איזומורפיים. זאת מכיוון שפונקציית המעברים מתעניינת בייצוג הסינטקטי
בלבד.
![Page 39: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/39.jpg)
)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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/40.jpg)
הטענה הבאה מתארת את הכוח החישובי :ASMשל מערכת מעברים
)A=)Q, I, F ותהי Σ תהי סיגנטורה טענה:מערכת מעברים דטרמיניסטית מאותחלת
, ותהי Q ≤ algΣוסגורה לאיזומורפיזם עם F bounded exploration אז קיימת .
.F=semM עם ASMתכנית
![Page 41: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/41.jpg)
היבטים נוספים של ASM
![Page 42: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/42.jpg)
מתייחס לרעיון המהפכני ASTהמושג •שמצב הוא מבנה מתמטי. דנו בגרסה הכי
מזווית סינטקטית. ASMאלמנטרית של אינו יחיד, ASMבאופן כללי, הסינטקס של יש כמה גרסאות שיעבדו.
יש הרחבות מספיקות לגרסה האלמנטרית • כפי שהוצג בנייר הזה:ASMשל
![Page 43: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/43.jpg)
יכולה Fפונק' המעברים הדטרמיניסטית •להיות מוחלפת בפונק' לא דטרמיניסטית.
יכולה להיות ASMההתנהגות של תכנית • שאינם מבוצעים xixi+1ממודלת ע"י צעדים
ע"י אותה התכנית, אלא ע"י העולם החיצון.וכן הלאה...•
![Page 44: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/44.jpg)
סיגמא- אלגברה היא המבנה המתמטי •הטבעי ביותר. לכן היא מהווה את האמצעי
הגמיש ביותר למדל מצבים של מערכות. יש היכולת לבנות ASMלכן לגישה של ה-
אלגוריתם שרירותי ברמת האבסטרקציה הטבעית שלה, בלי לממש אותו. למעשה,
הדרישה הליברלית ממצבים וצעדים מסתגלת בקלות לכל סוג אלגוריתם,
.high-level system designובמיוחד ל-
![Page 45: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/45.jpg)
•ASM מוצלח במיוחד לתיאור הסמנטיקה של שפות תכנות: סמנטיקה שמתמודדת עם
מגוון עשיר של מבנים מתמטיים שלא דורשים ייצוג סינטקטי. זה בדיוק מה
מספק.ASMש- יושם בהצלחה בכל ASMהפורמליזם של •
תחומי התוכנה.
![Page 46: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/46.jpg)
אלגוריתם הוא אפקטיבי אם הוא יכול להיות •מבוצע בצורה מכנית. הדרישות שהצגנו קודם לכן מספיקות על מנת שנוכל לייצג תכנית ע"י
ASM .דורשים שמצב התחלתי יהיה מלוגיקה מסדר •
ראשון, אך הוא עדיין יכול להכיל פעולות halting למשל כמו computableשאינן
function .ופעולות על מספרים ממשיים ,כדי למנוע מצב כזה, נדרוש שהמצבים •
ההתחלתיים יהיו ניתנים לייצוג סופי בדרך כלשהי )למשל ע"י תכניות אחרות(, מה שאומר שניתן לבצע אותן בצורה מכנית
כלשהי.
![Page 47: Abstract State Machines](https://reader036.vdocuments.us/reader036/viewer/2022062321/56813df1550346895da7cb2b/html5/thumbnails/47.jpg)
יודעים שפונק' המעברים ניתנת לייצוג ע"י •תכנית, וכעת הראינו שהמצבים ההתחלתיים
גם הם יכולים להיות מיוצגים ע"י רשימה סופית של זוגות <מיקום , ערך< ותכניות
כלשהן לפעולות ההתחלתיות. לכן אפשר להשתמש באינטרפרטר, שייקח •
את הייצוג של מצב ויחשב את המצב הבא. את האינטרפרטר ניתן לפתח בכל שפת
תכנות.