האוניברסיטה הפתוחה

תיאורי הקורסים
הקורס אינו מוצע עוד

20504 סדנה בעקרונות שפות תכנות

20504 סדנה בעקרונות שפות תכנות

3 נקודות זכות ברמה מתקדמת סמינריונית

שיוך: מדעים / מדעי המחשב

 תנאי קבלה: 36 נקודות זכות במדעי המחשב, וכן עמידה בדרישות האנגלית ובדרישות ההדרכה הביבליוגרפית בספרייה. ידע קודם דרוש: הקורסים מבני נתונים ומבוא לאלגוריתמים (‏או מבני נתונים‎)‏, אוטומטים ושפות פורמליות, וכן לפחות שני קורסים או סדנות בהן נלמדות השפות הבאות: C, ++C, עדה, פרולוג, JAVA. ידע קודם מומלץ: הקורסים קומפילציה, מבוא לתורת החישוביות והסיבוכיות,1 וכן ידיעת שפה התומכת בתכנות מכוון עצמים. ככלל, יתקבלו רק סטודנטים שכבר סיימו בהצלחה או עומדים לקראת סיום של קורס מתקדם אחד לפחות במדעי המחשב. ההרשמה לסדנה מותנית באישור בכתב מן האחראי לסמינרים.

פיתוח הקורס: אהוד לם

יועץ: ד"ר יצחק הרץ

מטרת הסדנה

מטרת הסדנה להביא את הסטודנט להבנה מעמיקה ומעשית של מושגים יסודיים ועקרונות שפות תכנות. עקרונות אלו הוכחו כבעלי חשיבות מתמדת; הם מהווים את הבסיס להבנת התפתחויות עתידיות בשפות תכנות, ולשליטה בשפות תכנות קיימות. מרבית העקרונות קשורים לסמנטיקה (‏למשמעות‎)‏ של מבנים תכנותיים.

הסדנה משלבת לימוד עיוני ומעשי, ובמהלך הסמסטר נכתבות בה מספר גרסאות של מפרשים (‏interpreters‎)‏ המדגימים סוגיות בהתנהגות ומימוש שפות תכנות שונות. הסדנה כוללת פרויקט מסכם, בו יבואו לידי ביטוי המושגים והכלים הנרכשים במהלך הלימוד. הסטודנטים יוכלו להציע נושאים לפרויקטים המסכמים, או לבחור ממספר הצעות שיופיעו בחומר הלימוד. הפרויקטים יוכלו להתמקד בנושאים במימוש שפות תכנות, במבנים בשפות תכנות (‏תחביר וסמנטיקה‎)‏, או בסוגיות הקשורות בצורת התכנות בשפות תכנות שונות.

ספר הלימוד

D. P. Friedman, M. Wand & C.T. Haynes, Essentials of Programming Languages, 2nd ed. (‏MIT Press, 2001‎)‏.

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

נושאי הסדנה

•  

תכנות פונקציונלי ושפת Scheme

•  

מפרשים (‏interpreters‎)‏ מבוססי העברת-סביבות (‏כולל טיפול במשתנים, שגרות, העברת פרמטרים ורקורסיה‎)‏

•  

מפרשים מבוססי העברת ישויות-המשך (‏continuations‎)‏ (‏כולל דיון במבני בקרה מתקדמים בהם חריגות ומקביליות‎)‏

•  

שפות מונחות עצמים

•  

טיפוסים בשפות תכנות (‏type systems‎)‏


1או הקורס חישוביות ומבוא לסיבוכיות (‏20365‎)‏, שאינו מוצע עוד.