המונחים אבסטרקציה והפשטה (באנגלית: Abstraction או Simplification) משמשים מתכנתים לתאר כל מצב בו קוד תוכנה מסוים מהווה ייצוג "יותר פשוט להבנה" ובמקרים רבים גם "יותר קצר" של קוד תוכנה אחר שהוא "יותר קשה להבנה" ובקרים רבים גם "יותר ארוך" ← החל מקוד מכונה (ש"נמצא הכי למטה") ועד כל קוד פשוט יותר (שנמצא, לפחות בתקופה נתונה, "הכי למעלה").
אני אנסה להדגים את הרעיון שמאחורי הביטויים הללו עם דוגמה משפת Bash:
cd ~ cd $HOME
בדוגמת הקוד לעיל שתי פקודות קוד שונות אשר באופן עקרוני עושות את אותה פעולה; הראשונה משנה מיקום סוכן משתמש לתיקיית הבית המשוייכת לו וגם השנייה משנה מיקום סוכן משתמש לתיקיית הבית המשוייכת לו אם כי הפקודה הראשונה "אבסטרקטית" או "מופשטת" יותר מהשנייה (במצבים שונים, תחת חוקי תחביר שונים, הפקודה השנייה תינתן יותר (תהיה שמישה יותר).
אפשר להמשיך ולרדת מלמעלה למטה עם באופן כללי כל קוד שאיננו קוד מכונה ← עד שנגיע לקוד מכונה.
הערות כלליות
- מושג "ייצוג מקוצר" הרווח במדעים תופש גם כאן