תיאור באנגלית: The course describes the fundamental concepts that underlie programming languages and provide a comparative analysis of their usage in the context of three major paradigms: imperative, functional, and logic programming. The concepts are: values, types and expressions, typing systems, storage, binding, commands, sequencers, encapsulation, and data, control and procedural abstraction. The three paradigms are taught through the model languages Pascal, ML, and Prolog.
תיאור קטלוגי: ניתוח השוואתי של מושגים יסודיים בתחום שפות התכנות בשלוש פרדיגמות תכנותיות: ציוויית, פונקציונלית ולוגית־הצהרתית. המושגים הנדונים כוללים קישור, סדר שיערוך, פקודות, ערכים, טיפוסים, פולימורפיזם, הכללות של מבנה הפונקציה, מחסנית, איסוף אשפה ועוד. שפות התכנות הנדונות כוללות את פסקל, ML, פרולוג, C ו-Java, לצד הדגמות ממגוון שפות אחרות.
תוצאות למידה: בסיום הקורס הסטודנט יהיה מסוגל:
- ללמוד באורח יעיל, אפקטיבי ומהיר שפת תכנות לא מוכרת, כולל שימוש במבנים מתקדמים שבה.
- להעריך שפת תכנות, מבלי ללמוד לתכנת בה, מתוך האפיון שלה באמצעות מונחים נפוצים כגון פרדיגמה, טיפוסיות סטטית, קישור דינמי, סגור וכד'.
- לתכנת במבנים מתקדמים בשפות פונקציונליות ולוגיות.
