PL/I – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ ←‏דוגמת קוד: צביעת מילות מפתח בירוק
שורה 79:
</div>
בשורה זו נבדק האם ערכו של המשתנה IF זהה לערכו של המשתנה THEN. אם כן, מושם במשתנה THEN ערכו של המשתנה ELSE; אחרת מושם במשתנה ELSE ערכו של המשתנה IF. ניתן להבחין בכך שהמלים IF, THEN ו-ELSE משמשות גם כמילות מפתח בשפה, וגם כשמות של משתנים. המשמעות של כל מופע של מילה ספציפית נקבעת לפי ההקשר. מאפיין זה מסבך את שלב [[ניתוח מילולי|הניתוח הלקסיקלי]] של הקוד (השלב הראשון בהידור), כיוון שהמנתח הלקסיקלי, המבוסס על פי רוב על [[ביטוי רגולרי|ביטויים רגולריים]], איננו יכול לדעת אם המילה בה הוא נתקל משמשת כמזהה או כמילת מפתח.
 
חופש זה של PL/I הביא לכך שבהגדרת השפה עצמה לאותה מילה יש לעתים שתי משמעויות. המילה FIXED משמשת במסגרת פקודת DECLARE להגדרה של משתנה בנקודה קבועה, ומשמשת גם כפונקציה המחזירה את החלק השלם של מספר (בדוגמת הקוד שלהלן מופיעה המילה בשתי משמעויותיה).
 
==דוגמת קוד==