תכנות פרוצדורלי היא פרדיגמה שמחלקת קוד לחלקים קטנים ומקלה על תחזוקה.
היישום של הפרדיגמה החל בתחילת שנות השישים בשפות כמו ALGOL, ובהמשך ב־Pascal ו‑C. היא הייתה תגובה לשיטות ישנות שבהן התוכנית נכתבה כמקשה אחת, עם משתנים גלויים לכל החלקים ובקרת זרימה באמצעות goto (פסק‑פסק קפיצה).
ברעיון המרכזי מחולקת תוכנית לפרוצדורות. פרוצדורה היא יחידת קוד שמבצעת משימה מסוימת. יש שני סוגים נפוצים של פרוצדורות: שגרה (routine) ופונקציה. כל פרוצדורה יכולה לקרוא לפרוצדורות אחרות כדי להשלים פעולות מורכבות.
משתנים בתכנות פרוצדורלי יכולים להיות מקומיים או גלובלים. משתנה מקומי מוגדר בתוך פרוצדורה ומשמש רק אותה. משתנה גלובלי זמין לכל הפרוצדורות בתוכנית. שימוש נוקשה במשתנים מקומיים יוצר כימוס (encapsulation), כלומר, המשתנים של פרוצדורה אינם נגישים לפרוצדורות אחרות.
פרוצדורות יכולות להכיל תת‑פרוצדורות כדי לשפר קריאות ולחלק את העבודה לחלקים ברורים. מצב שבו פרוצדורה נמצאת בתוך אחרת נקרא קינון (nesting).
בשפת Pascal מקובל לכתוב הרבה שגרות עם תת‑שגרות. לאחר מכן כותבים תוכנית ראשית קצרה שמקשרת לקריאות לכמה שגרות עיקריות. מבנה זה יוצר הסתעפות ענפית של קריאות בין שגרות.
תוכנית פרוצדורלית יכולה להיבנות בתוך קובץ אחד שהידורו מתבצע ביחד. אפשר גם לפרק אותה למודולים, שכל מודול עובר הידור בנפרד. זה מקל על בנייה חוזרת של חלקים בתוכנית.
עם זאת, פירוק למודולים יוצר בעיות כששינוי בהגדרת משתנה בפרוצדורה מחייב עדכון קריאות ממודולים אחרים. בעיות כאלה היו חלק מהסיבות להתפתחות תכנות מונחה עצמים, שנועדה להתמודד בין השאר עם אתגר זה.
תכנות פרוצדורלי מחלק תוכנית לחלקים קטנים הנקראים פרוצדורות. פרוצדורה היא קטע קוד שעושה משימה אחת.
הרעיון החל בתחילת שנות השישים. שפות מפורסמות שקיבלו את הרעיון הן Pascal ו‑C.
יש שני סוגי משתנים: מקומיים וגלובליים. משתנה מקומי עובד רק בתוך הפרוצדורה שבה הוא מוגדר. משתנה גלובלי עובד בכל התוכנית. כשרושמים משתנים רק בתוך פרוצדורה, זה שומר עליהם מפני שינוי לא רצוי. זה נקרא כימוס, כלומר שמירה פנימית על המשתנים.
פרוצדורות יכולות להכיל פרוצדורות נוספות. זה נקרא קינון. כך קל יותר לקרוא ולהבין את הקוד.
ניתן לפרק תוכנית למודולים שמהם בונים את התוכנית. זה עוזר, אבל לפעמים שינוי במודול אחד דורש גם שינוי במודולים אחרים. בגלל בעיות כאלה צמחו שיטות חדשות כגון תכנות מונחה עצמים.
תגובות גולשים