5.1.1. שפת תוכניות while
נגדיר את השפה על ידי כלל הגזירה הבא:
הפעולות:
- - הצבה.
- - פקודה שאינה עושה דבר. (שימושי למשל בתנאי ה-if
הדורשים לפי התחביר else, ולא בכל מקרה נרצה לבצע פעולה במקרה כזה).
- - שרשור של שתי פקודות אחת אחרי השניה.
- - משפט תנאי. כל חלקי
המשפט הם חובה.
- - לולאה.
כאשר:
- B
הינו תנאי בוליאני מעל משתני התוכנית.
- הינן פעולות אטומיות. שאר הפעולות הינן פעולות מורכבות.
מכיוון ששפת התכנות מודולרית אנחנו
יכולים להשתמש במערכת הוכחה מודולרית.
סמנטיקה אופרטיבית של תוכניות while:
- הינו מצב התוכנית,
פונקציה בין משתני התוכנית לערכיהם.
- קונפיגורציה כאשר היא תוכנית while,
ומתארת את המשך החישוב (בכל רגע היא יתרת התוכנית לביצוע).
- עבור הגדרת הסמנטיקה נגדיר תוכנית ריקה E
המקיימת: . התוכנית היא תוכנית שאינה עושה דבר – אם נשרשר אותה לפני או אחרי תוכנית אחרת
כלשהי, נקבל את אותה תוכנית.
- קונפיגורציה עוצרת היא קונפיגורציה מהצורה .