שאלה 2 (25 נקודות)
שאלה זו עוסקת בשפת "יוטורג" (שפה PROC תיאורטית) המוצגת בעמודים 81-74 בעמודים 3 בפרק 3. שאלה זו עוסקת בהגדרה הפשוטה של פרוצדורות לא רקורסיביות.
ברצונינו להחליף את השפה עם ביטויים בוליאניים נוסף על-ידי החדקוד הבא:
Expression ::= check Expression {and Expression}∗ endcheck-exp (bexp bexps)
ביטויי check שישור של כמה ביטויים בוליאניים עם פונלות and מופעל. המשמעות של משתנים של check היא בוליאנית, ביטויי check היא בוליאנית, ורקו אם ורקו true הוא עורך, אחרת תנביעתו היא false. הביטויים השיתויים שתשורו על-ידי-ידי short-circuit הערכה, התחתיית בערערות short-circuit, אם עורך של אחד מחביטויים הבוליאניים היא false, הערכה של כל הביטויים check הנותרים היא false. על סמך לעירות תחיברית (parser) לביטויי בוליאני בפוליאני, ביטויי מהחיל בממילה end.
בתחביר מופשט, ביטויי check-exp נקראות check הביטויים בבוליאני מופעל - bexps מופעל מופעל וגם - bexps היא רישימה של יתרות הביטויים הבוליאניים.