Intro Flashcards
מה זה אינקפסולציה?
מנגנון המגביל את הגישה לחלקים מסוימים של התוכנית
- הייצוג של המידע יכול להשתנות
אלגוריתמים יכולים להשתנות
מקטינים את כמות התלויות ומאפשרים התנהגות קונסיסטנטית
מה זה הפשטה?
:תהליך של
זיהוי דימיון בין חלקים שונים של התוכנית -
הסרת הדמיון ע”י יצירת מופע יחיד של הקוד החוזר על עצמו (ייתכן בצורה פרמטרית) -
מאפשרת לקטע קוד להתעלם מפרטים לא רלוונטיים.
מהו טיפוס?
סט של ערכים -
סט של פעולות שניתן לבצע על אותם ערכים -
טיפוסיות סטטית
- בטיחות - שגיאות טיפוס נתפסות בזמן קומפילציה
בהירות - אוכפת את החלטות הדיזיין
יעילות - אין תקורה על בדיקות בזמן ריצה
טיפוסיות דינמית
גמישה וחוסכת קוד
טיפוסיות חזקה
הקשר בין ערך לטיפוס שלו לא ניתן לשבירה -
פעולה נכשלת אם אחד הארגומנטים שלו הוא מטיפוס לא נכון -
טיפוסיות חלשה
ניתן לפרק את הקשר בין ערך לטיפוסו-
השפה מבצעת המרה בין טיפוסים בצורה לא מפורשת -
שקילות שמית
שני טיפוסים הם שקולים אם יש להם אותו שם ומוגדרים באותו הקשר
שקילות מבנית
שני טיפוסים הם שקולים אם יש להם את אותו מבנה
- equivalence in C
- equivalence in C++
- equivalence in Java
- nominal: union and struct
structural: all the rest - nominal: union, struct and class
structural: rest + templates - nominal: class
structural: Arrays, generics