Menu
Coddy logo textTech

מונחי תכנות בהסבר פשוט

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

איך קוד רץ

מה קורה בין הקוד שאתם מקלידים לבין התוכנית שרצה: קומפיילרים, interpreters, סביבות ריצה ומערכת ההפעלה.

קוד מקורקוד מקור (source code) הוא הטקסט הקריא של תוכנית, שמתכנת כותב בשפה כמו Python, Java או C ושומר בקבצי טקסט פשוטים, וקומפיילר או מפרש הופכים אותו להוראות שמחשב יכול להריץ.קומפיילרקומפיילר (compiler, מהדר) הוא תוכנית שמתרגמת קוד מקור שנכתב בשפת תכנות לקוד מכונה, או לצורה נמוכה אחרת כמו bytecode, לפני שהתוכנית רצה. התוכנית המתורגמת יכולה לרוץ אחר כך בלי קוד המקור המקורי.InterpreterInterpreter (מפרש) הוא תוכנית שמריצה קוד מקור ישירות ומבצעת את ההוראות שלו תוך כדי, במקום לתרגם קודם את כל התוכנית לקובץ נפרד של קוד מכונה. המימושים הסטנדרטיים של Python ו-Ruby הם interpreters.סביבת ריצהסביבת ריצה (runtime environment) היא התוכנה שתוכנית צריכה סביבה בזמן שהיא רצה: המנוע שמריץ את הקוד שלה, הספריות הסטנדרטיות שהיא קוראת להן, והשירותים שמנהלים זיכרון, שגיאות וגישה למערכת ההפעלה. ה-JVM, Node.js ו-CPython הן דוגמאות.מערכת הפעלהמערכת הפעלה (operating system, OS) היא התוכנה שמנהלת את החומרה של מחשב ומריצה את כל שאר התוכניות: היא מחלקת ביניהן את המעבד, הזיכרון והאחסון ונותנת להן קבצים, רשת, קלט ופלט. Windows, macOS, Linux, Android ו-iOS הן מערכות הפעלה.

אבני הבניין

החלקים שמהם בנויה כל תוכנית: ערכים, משתנים, מערכים ולולאות.

שגיאות ודיבאגינג

שלושת סוגי השגיאות, איך תוכניות מטפלות בהן, והקריסה שמתכנתי C פוגשים ראשונה.

שגיאת תחבירשגיאת תחביר (syntax error) היא טעות במבנה של הקוד, למשל נקודתיים, סוגריים או מירכאות חסרים, שמפרה את כללי הדקדוק של שפת התכנות. הקומפיילר או המפרש דוחים את התוכנית לפני שחלק כלשהו ממנה רץ.שגיאת זמן ריצהשגיאת זמן ריצה (runtime error) היא שגיאה שקורית בזמן שהתוכנית רצה, כשאי אפשר לבצע פעולה עם הערכים שיש לה, למשל חלוקה באפס או קריאה מעבר לסוף של רשימה. התוכנית נעצרת בשורה הזו, אלא אם השגיאה מטופלת.שגיאה לוגיתשגיאה לוגית (logic error) היא טעות בהיגיון של תוכנית, שגורמת לה להפיק תוצאה שגויה בלי לקרוס ובלי להציג שום הודעת שגיאה. הקוד תקין וכל שורה רצה, אבל הוא לא עושה את מה שהמתכנת התכוון שיעשה.טיפול בחריגותטיפול בחריגות (exception handling) הוא דרך של תוכנית להגיב לשגיאות שקורות בזמן שהיא רצה. קוד שעלול להיכשל נכנס לבלוק מוגן, כמו try, וכשנזרקת שגיאה, השליטה קופצת למטפל, כמו except או catch, במקום שהתוכנית תקרוס.Segmentation FaultSegmentation fault, או בקיצור segfault, היא קריסה שקורית כשתוכנית מנסה לקרוא או לכתוב זיכרון שאסור לה לגשת אליו, למשל כתובת 0 דרך מצביע null. מערכת ההפעלה עוצרת את התוכנית עם האות SIGSEGV.

נתונים ואחסון

איך מחשבים שומרים נתונים ובודקים שהם הגיעו בשלמותם: ביטים, בייטים, checksums ומסדי נתונים.

תכנות מונחה עצמים

הרעיונות שמאחורי מחלקות ואובייקטים: הסתרת נתונים, ממשק משותף והסתרת פרטים.

שאלות נפוצות

אילו מונחי תכנות כדאי למתחילים ללמוד קודם?
התחילו מאבני הבניין שמשתמשים בהן בכל תוכנית: משתנה, בוליאני, מערך ואיטרציה. אחר כך למדו את שלושת סוגי השגיאות (שגיאת תחביר, שגיאת זמן ריצה ושגיאה לוגית), כי תפגשו את שלושתם כבר בשבוע הראשון.
צריך להכיר את המונחים האלה לפני שמתחילים לתכנת?
לא. רוב האנשים לומדים אותם תוך כדי כתיבת תוכניות קטנות, ומחפשים מילה כשהיא צצה. מונח נקלט מהר יותר אחרי שכבר ראיתם את השגיאה או הפלט שהוא מתאר.
האם מונחי התכנות זהים בכל השפות?
הרעיונות כן. השמות והפרטים משתנים: ב-Python המערך נקרא list וכותבים True, ב-JavaScript כותבים true, וב-Java חייבים להצהיר על הטיפוס של משתנה. כל עמוד כאן מציין איפה השפות שונות זו מזו.
איפה אפשר לתרגל את המושגים האלה?
בכל עמוד מונח יש דוגמאות שאפשר להריץ ולערוך בדפדפן. לתרגול מסודר, קורס Python החינמי של Coddy עובר על משתנים, לולאות, שגיאות ומחלקות, תרגיל קטן אחד בכל פעם.