מושגי יסוד לכל שפת תכנות ודוגמאות בשפת C#
מהי שפת קוד?
יש הרבה שפות בעולם המשמשות אותנו לדבר זה עם זה. כדי לדבר עם אדם מצרפת יש לדעת צרפתית, כדי לדבר עם אדם מספרד יש לדעת ספרדית, או לכל הפחות למצוא שפה משותפת אשר שני הצדדים דוברים.
גם כדי לתת למחשב הוראות נדרשת שפה מתאימה. שפת קוד, או בשמה המקובל שפת תכנות, היא שפה שבה כותבים הוראות מדויקות שהמחשב יוכל לבצע לאחר תרגום מתאים.
השפה שהמחשב מבצע
המעבד במחשב מבצע הוראות בשפת מכונה. הוראות אלה מיוצגות ברצפים של הספרות 0 ו־1. ייצוג המשתמש בשתי ספרות בלבד נקרא ייצוג בינארי.
במעגלים הדיגיטליים של המחשב משתמשים בשני מצבים לוגיים, המיוצגים בדרך כלל באמצעות שתי רמות מתח חשמלי. לצורך ההיכרות אפשר לדמות אותם לדלוק וכבוי: דלוק מיוצג ב־1 וכבוי מיוצג ב־0. זהו דימוי פשוט; בעולם החשמל קיימים גם מצבים וערכים נוספים.
למשל, את הרצף הבא קוראים משמאל לימין:
1 0 1 0כלומר: תחילה דלוק, אחר כך כבוי, שוב דלוק ולבסוף כבוי. כל ספרה בינארית נקראת סיבית, ובאנגלית bit.
הרצף 1010 לבדו אינו בהכרח הוראה מלאה. המשמעות שלו תלויה בהקשר: רצפים בינאריים יכולים לייצג מספרים, אותיות, תמונות וגם הוראות לביצוע.
מדוע לא לכתוב ישירות בשפת מכונה
כתיבה של תוכנית באמצעות רצפים ארוכים של 0 ו־1 קשה לקריאה, לכתיבה ולתיקון. בנוסף, הוראות המכונה תלויות בסוג המעבד. לכן פותחו שפות תכנות שקל יותר לאנשים להבין.
שפות עיליות
שפה עילית היא שפת תכנות המאפשרת לתאר פעולות באמצעות מילים, סימנים ומבנים נוחים יותר לקריאה. דוגמאות לשפות עיליות הן C#, Java ו־Python. הן מאפשרות להתמקד בפתרון הבעיה בלי לכתוב ידנית את הוראות המכונה.
גם בשפה עילית צריך להקפיד על כללים מדויקים. לכל שפה יש תחביר: כללים הקובעים כיצד כותבים הוראות תקינות. טעות בתחביר עלולה למנוע מהתוכנית לפעול.
מקוד המקור אל הביצוע
הטקסט שאנחנו כותבים בשפת תכנות נקרא קוד מקור. כדי שהמעבד יוכל לבצע את הפעולות המתוארות בו, נדרש תהליך תרגום ועיבוד. הכיוון הוא מקוד המקור אל הוראות המכונה.
מהדר, הנקרא גם קומפיילר, מתרגם קוד לשפת יעד, למשל לקוד מכונה או לקוד ביניים. מפרש הוא תוכנה שמבצעת את הפעולות המתוארות בקוד בזמן הריצה. יש סביבות המשלבות כמה שלבים ושיטות, ולכן לא לכל השפות יש אותו מסלול ביצוע.
ב־C# התהליך המקובל הוא הידור קוד המקור לקוד ביניים. סביבת הריצה של .NET משתמשת בקוד זה, ובדרך כלל מהדרת אותו לקוד מכונה בזמן הריצה. אין צורך לזכור את כל השלבים כעת; העיקר הוא שהמעבד אינו מבצע ישירות את הטקסט שכתבנו.
דוגמה קצרה בשפת C#
ההוראה הבאה מציגה על המסך את המילה Hello:
Console.WriteLine("Hello");אנחנו כותבים הוראה שאפשר לקרוא ולהבין. כלי התרגום וסביבת הריצה מאפשרים לבצע אותה באמצעות פעולות רבות ברמת המכונה. אין התאמה קבועה של הוראה אחת בשפה עילית להוראת מכונה אחת.
ההבדל בין שפת מכונה לשפה עילית
שפת מכונה: מיוצגת ברצפים בינאריים, ניתנת לביצוע ישיר בידי מעבד מתאים ותלויה במערכת ההוראות שלו. לאדם קשה לקרוא ולכתוב אותה.
שפה עילית: נכתבת באמצעות מילים, סימנים ומבנים ברורים יותר לאדם, ודורשת תרגום או סביבת ביצוע מתאימה. לעיתים אפשר להשתמש באותו קוד במערכות שונות, בהתאם לשפה ולכלים הזמינים.
מה לומדים כשלומדים שפה
לומדים כיצד לנסח פתרון כסדרה מסודרת של הוראות, וכיצד לכתוב אותו לפי כללי השפה. בהמשך נכיר משתנים לשמירת נתונים, קלט ופלט, תנאים לקבלת החלטות ולולאות לחזרה על פעולות. הרעיונות האלה משותפים לשפות רבות, גם כשהכתיבה שלהן שונה.