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

תוכן שנמחק תוכן שנוסף
מ החלפת פרמטרים לשמות פרמטרים אחידים בתבניות (תג)
שורה 51:
*[[מצביע]] כ[[טיפוס נתונים]].
* ניהול זיכרון דינמי: [[משתנה (תכנות)|משתנים]] חולקו לארבע קטגוריות מבחינת ניהול הזיכרון:
** AUTOMATIC: המשתנה נוצר עם הפעלת הפרוצדורה שבה הוא מוגדר, ונעלם עם סיום הפעלת הפרוצדורה. משתנים כאלה הם גם בעלי טווח הכרה (Scope) מוגבל, תכונה התורמת לקריאות של התוכנית. ומגדילה את אוסף המזהים בהם המתכנת יכול להשתמש. מאפיין זה הוא ברירת מחדל להגדרת משתנה.
** STATIC: משתנה המתקיים במשך כל זמן פעולתה של התוכנית. בתוכניות שרצות תחת [[CICS]] אסור לשנות תוכן של משתנה כזה (כלומר מכיל תוכן קבוע).
** CONTROLLED: משתנה שהתוכנית קובעת מתי ייווצר ומתי יפנה את הזיכרון - משתנה כזה [[הקצאת זיכרון דינמית|מוקצה באופן דינמי]] על גבי זיכרון הערימה. שפת PL/I איננה כוללת מנגנון [[איסוף זבל (מדעי המחשב)|איסוף זבל]].
** BASED: משתנה המבוסס על הזיכרון שהוקצה למשתנה אחר. בעזרת קטגוריה זאת המתכנת יכול להגדיר מנגנון הקצאת זיכרון דינמי משלו, התפור לצורכי התוכנית.
שורה 58:
יכולות נוספות:
* תמיכה ב[[רקורסיה]].
* אוסף נרחב של [[פונקציה (תכנות)|פונקציות]] (built-in functions) לעיבוד של מספרים, [[מחרוזת (מדעי המחשב)|מחרוזות]], מצביעים ועוד.
 
בשפה יש שימוש נרחב (יש הסבורים שמוגזם) ב[[ברירת מחדל|ברירות מחדל]] בהגדרה של משתנים. משתנה שאינו מוגדר, יוגדר אוטומטית (בדומה ל[[פורטרן]]) על ידי ה[[מהדר]] כ FIXED BIN (כלומר [[מספר בינארי]] ב[[נקודה קבועה]]) כאשר שמו מתחיל באותיות I עד J ואחרת יוגדר כמשתנה FLOAT ([[נקודה צפה]]). עם זאת, רשימת כל המשתנים שלא הוגדרו מוצגת באזהרה של המהדר, כך שניתן לזהותם ולהגדירם. בהגדרה של משתנה אין צורך לתת את כל מאפייניו, משום שגם למאפיינים יש ברירות מחדל.