פרדיגמת תכנות – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ ←‏פרדיגמות תכנות עיקריות: קישורים פנימיים
מ סקריפט החלפות - (תוכנית) , הגהה
שורה 1:
'''פרדיגמת תכנות''' היא סגנון [[תכנות]] יסודי המתווה את האופן שבו נפתרות בעיות באמצעות [[שפת תכנות]] (השוו עם [[מתודולוגיית פיתוח תוכנה]], שהיא סגנון לפתרון בעיות ב[[הנדסת תוכנה]]).
 
פרדיגמת תכנות קובעת איך ה[[מתכנת]] רואה או תופס את אופן הביצוע של [[תוכנית מחשב]]. לדוגמה, ב[[תכנות מונחה עצמים]], המתכנת יכול לראות את התוכנית כאוסף של עצמים שיש ביניהם פעולות גומלין, ואילו ב[[תכנות פונקציונלי]] אפשר לתפוס את התוכנית כרצףכ[[פונקציה]] שלמ[[קלט]] תוצאותהתוכנית המוחזרותאל מפונקציות, ללא שינויי מצב. בתכנות מחשבים מרובי-ה[[מעבדפלט]]ים, שלה. [[תכנות מכוון תהליכים]] מאפשר למתכנת לחשוב על היישום כעל קבוצות של [[תהליך (מדעי המחשב)|תהליכים]] בו-זמניים הפועלים על [[מבנה נתונים|מבני נתונים]] המשותפים לוגית.
 
כשם שקבוצות שונות בתחום [[הנדסת תוכנה|הנדסת התוכנה]] מעודדות מתודולוגיות פיתוח שונות, שפות תכנות שונות מעודדות פרדיגמות תכנות שונות. יש שפות המעוצבות לתמוך בפרדיגמה מסוימת אחת, כגון [[Smalltalk]] ו-[[Java]] התומכות בתכנות מוכוון מנוחה-עצמים, לעומת [[Haskell]] התומכת בתכנות פונקציונלי. אחרות, כגון [[C++]]‎ ו-[[פייתון (שפת תכנות)|פייתון]], תומכות בפרדיגמות מרובות, ומאפשרות למתכנת לבחור ביניהן או לשלב מספר פרדיגמות לפי הצורך.
 
פרדיגמות רבות ידועות בשל הטכניקות האסורות בהן, לא פחות מאשר בטכניקות שהן מאפשרות. לדוגמה, תכנות פונקציונלי 'טהור' אוסר על השימוש ב[[תופעת לוואי (מדעי המחשב)|תופעות לוואי]]; [[תכנות מובנה]] אוסר על השימוש ב[[פקודת goto]]. מסיבה זו, בין השאר, פרדיגמות חדשות רבות נחשבות נוקשות יתר על המידה בעיני מי שהורגלו בסגנונות הוותיקים יותר. עם זאת, ההימנעות מטכניקות מסוימות יכולה להקל על [[אימות תוכנה|אימות נכונות התוכנה]] ועל הבנת ההתנהגות שלה, מבלי להגביל את התאמתה של שפת התכנות לשימוש כללי.
 
מאחר ששפת תכנות עשויה לתמוך במספר פרדיגמות, היחסים בין פרדיגמות תכנות לבין שפות תכנות עשויים להיות מורכבים. לדוגמה, C++‎ תומכת במרכיבים של [[תכנות פרוצדורלי]], תכנות מוכוון מונחה-עצמים ו[[תכנות גנרי]]. עם זאת, המתכנתים מחליטים איך לבנות את התוכנית תוך שימוש במרכיבים אלה של הפרדיגמות. אפשר לכתוב תוכנית פרוצדורלית טהורה בשפת C++‎, אפשר לכתוב תוכנית מוכוונת מונחית-עצמים טהורה, או לכתוב תוכנית הכוללת מרכיבים משתי הפרדיגמות.
 
==פרדיגמות תכנות עיקריות==