תכנות אימפרטיבי

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש

במדעי המחשב, תכנות אימפרטיבי (פקודתי) היא פרדיגמת תכנות השמה דגש על רצפים של פקודות (Statements) המורות למחשב לשנות את תוכן סביבת העבודה. פרדיגמה זו היא הפרדיגמה התכנותית הטבעית והנפוצה ביותר. פרדיגמה זו הפוכה מתכנות הצהרתי שבו התוכנית מתמקדת ב"מה" ולא ב"איך". לפרדיגמה של התכנות האימפרטיבי שייכות שפות תכנות פרוצדורליות ומונחות עצמים.

שפות התכנות הראשונות שהתפתחו משפת אסמבלי האימפרטיבית, באופן טבעי ירשו ממנה את התפיסה התכנותית. על השפות האימפרטיביות נמנות שפות כגון פורטרן, קובול, אלגול, PL/I, בייסיק פסקל, C, שפת C++‎, JavaScript ו-לואה.

היסטוריה[עריכת קוד מקור | עריכה]

את עידן שפות התכנות האימפרטיביות פתחה שפת פורטרן שופתחה על ידי ג'ון אקוס מיבמ (1953-1957). שפה זו הייתה שפת התכנות הגדולה הראשונה שהצליחה להתגבר על הבעיות שנבעו מקוד מכונה. שפה זו היה שפת הידור שאיפשרה להגדיר משתנים בשם, ביטויים מורכבים, תת-תוכניות, ותכונות רבות אחרות שכיום נפוצות בשפות האימפרטיביות. בשנות החמישים המאוחרות ובשנות ה-60 פותחה שפת אלגול במטרה לאפשר ביטוי קל של אלגוריתים מתמטיים, וכללה בתוכה חידושים תכנותיים, כמו בלוקים של קוד, הגבלת תחום ההכרה של משתנים, שתי דרכים שונות להעברת פרמטרים לפרוצדורה, וקריאה רקורסיבית בשפה אימפרטיבית.

לאחריה פותחה שפת קובול (1959-1960) דמוית האנגלית שזכתה לפופולריות עצומה כשפה לפיתוח מערכות מידע בעולם העסקי. בשנות הששים פותחה בייסיק (1964) כשפת תכנות ראשונה לצורכי לימוד, וזכתה לפופולריות במחשבים האישיים. שפת PL/I פותחה באמצע שנות הששים על ידי חברת IBM. השפה עשתה ניסיון לאחד את הטוב מפורטרן, קובול ואלגול 6 ונועדה להיות שפה למטרות כלליות ולשמש ליישומים מדעיים, הנדסיים ומסחריים ואף לתכנות מערכות והופיעו בה לראשונה בשפה אימפרטיבית מספר רב של טיפוסי נתונים פרימיטיביים, תכנות מקבילי, מצביע כטיפוס נתונים, יכולת לטפל בחריגות ובניפוי שגיאות.

בשנת 1970, פותחה שפת פסקל שהושפעה בעיקר מאלגול, על ידי ניקלאוס וירת אף היא כשפת לימוד. לאחריה נוצרה שפת C שבה עיקרון היעילות הוא העיקרון המנחה, הכוללת המאפשרת ניצול מרבי של יכולות המחשב בדומה לשפת סף, על ידי דניס ריצ'י בעת שעבד במעבדות בל. שפת עדה, שתמכה בתחילה באופן חלקי בתכנות מונחה עצמים פותחה בשנת 1983.

איפיוני השפה[עריכת קוד מקור | עריכה]

שפה אימפרטיבית מאופיינת במשתנים, פקודות ומבני בקרה.

דוגמה לתכנות אימפרטיבי בשפת Java

for (int i = 0, j = 9; i < 10; i++, j -= 3) {
  if (i == 3) {
    doSomething();
  } else if (i == 2) {
    doSomethingElse();
  } else {
    doSomethingDifferent();
  }
}