
.cs. כל קובץ יכול לתאר ישות או פעולה, למשל car.cs או user.cs..exe. הקובץ נוצר אוטומטית, ואין צורך לכתוב אותו.הטקסט המלא של הדקות הראשונות בהרצאה «מונחים ומושגי יסוד - שפת C# .NET (סי-שארפ)» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
לפני שאנחנו הולכים לצלול לתוך תכנות, חשוב שנכיר מספר מונחים מאוד בסיסיים שאנחנו הולכים להשתמש איתם בכל המודול הזה. אז בואו נסתכל על כמה מונחים בסיסיים בפיתוח תוכנה.
דבר ראשון, קיים משהו במחשב שנקרא CPU. בטח שמעתם על המונח הזה. CPU זה קיצור של Central Processing Unit או בעברית זה המעבד של המחשב. המעבד של המחשב כל הזמן מוציא לפועל פקודות שהוא מקבל משפת התכנות שלנו.
כלומר, הפקודות שאנחנו כותבים נכנסות בסופו של דבר למעבד או יוצאות לפועל דרך המעבד. עכשיו, מה מכיר המעבד?
המעבד של המחשב מסוגל להוציא לפועל רק פקודות שנכתבות ב-0 אחדים. פקודה כזאת נקראת פקודה בשפת מכונה, וזה הדבר היחידי שהוא מכיר בעולם.
אם אתם רוצים לומר לו לבצע פעולה מסוימת, אתם חייבים לתת לו פקודה כזאתי בשפת מכונה. כמובן שזה קצת קשה לכתוב את זה, אבל תתפלאו, פעם אנשים כתבו ככה תוכנות.
הם פשוט כתבו פקודות באפס ואחדים. וזאת הייתה שפת התכנות הראשונה שהייתה בעולם, והיא נקראה שפת מכונה, Machine Language באנגלית, מפני שזאת השפה שממש המכונה, כלומר המחשב, מבין.
עכשיו, כמובן שאנחנו לא הולכים לכתוב אפס ואחדים בכדי לומר ל-CPו מה לעשות, למרות שזו השפה שהוא מבין. אנחנו רוצים לכתוב בשפה שהיא מאוד מאוד נוחה לנו.
אנחנו רוצים לכתוב במשהו שנראה כמו אנגלית, ובאמת, מה שאנחנו הולכים לעשות זה לבנות קבצים. הסיומות של הקבצים שאנחנו הולכים לכתוב זה CS, שזה קיצור של C-Sharp, זאת שפת התכנות שאנחנו הולכים לכתוב, והקבצים האלה מכילים ממש פקודות שמאוד קל לי ולכם לקרוא אותן.
זאת אומרת, אם אנחנו הולכים נניח לבנות תוכנית שהיא בעצם משחק מכוניות אז כנראה שיהיה לנו איזשהו קובץ עם סיומת CS שהוא יתאר מכונית וכנראה שזה יהיה הגיוני לקרוא לו car.cs ואולי אנחנו נרצה שבתוכו תהיה איזושהי פעילות של נסיעה דרייב או של פנייה טרן
ובאמת אלה המילים שאנחנו הולכים להשתמש הקוד שאתם ממש רואים כאן הפקודות האלה שאתם רואים, רשמתי פה שני קיצורים של מילים, דרייב וטרן שהמצאתי, נקרא קוד.
קוד זה בעצם הפקודות שאתם בתור מתכנתים כותבים. ובשפה יותר מקצועית זה נקרא Source Code, קוד המקור שבעצם אתם בונים. אז אתם בתור מתכנתים כותבים משהו שנקרא Source Code, בעברית קוד מקור.
אוקיי, אז באיזה שפה זאת? כמובן שזה סישאר, אבל אנחנו רואים שזה לא שפת מכונה. באמת השפה הזאת נקראת שפה עילית באנגלית High Level Programming Language.
למה זה נקרא שפה עילית? מפני שכל בן אדם שמבין אנגלית יכול לקרוא אותה בניגוד לשפת מכונה שגם אני לא מבין מה קורה שם עם האפס והאחדים האלה. אז קודם כל אנחנו רואים פה הבדל בין שפה שהמחשב מכיר שנקראת שפת מכונה לבין שפה שאנחנו הולכים לכתוב שהיא נקראת שפה עילית ואנחנו הולכים לראות בסרטון הזה ביחד עם כל המונחים
איך בדיוק המחשב הולך להמיר את הקוד שאנחנו כותבים בשפה העילית לשפת מכונה. עכשיו אנחנו ראינו פה איזשהו קובץ אחד שאנחנו יכולים לבנות שנקרא car.cs אבל למעשה כאשר אנחנו כותבים תוכנה יכול להיות שיש לנו המון דברים או אישויות או פעולות שאנחנו רוצים לבצע ויהיה הגיוני לכתוב עוד קבצים לא רק קובץ אחד לכן אין לנו שום בעיה
פשוט להוסיף עוד קובצים של קובץ כזה הוא בא לסיום את CS. לדוגמה אם יש לנו נהג או איזשהו משתמש אנחנו יכולים לבנות קובץ שנקרא user.cs ושם יהיה את השם שלו ואת הגיל שלו גם זה כמובן source code כל הקוד שאנחנו כותבים בעצם נחשב קוד מקור source code זה המונח המקצועי
אנחנו יכולים לכתוב קוד נוסף שנקרא track.cs והוא מתאר את המסלול נסיעה של המכוניות שימו לב, כל המידע שאתם רואים כאן מבחינת הקודים, את הפקודות שאתם כותבים, זה מידע שהוא בנוי במילים באנגלית שניתן לקרוא אותם, פשוט כל מילה יש לה משמעות, כן?
אבל חלק מזה הם מילים שאתם ממציאים, כמו name, age, drive, turn וכו', וחלק הם פקודות מערכת if, while, אבל עדיין הכל באנגלית.
אז מאוד קל לכתוב ולקרוא את הקבצים האלה. מה קורה אחרי שסיימנו לכתוב אותם. אז הנה יש לנו שלושה קבצים שמכילים המון פקודות שמתארות משחק מכוניות.
הדבר שעכשיו אנחנו צריכים לעשות זה פעולה שנקראת בעברית הידור ובאנגלית זה נקרא קומפילציה. הפעולה של קומפילציה או המילה compilation או הידור זה פשוט מאוד הגדרה של הפיכה לשלם ממספר חלקים.
זאת אומרת אם אתם לוקחים כמה חלקים שכאילו אין ביניהם קשר ויוצרים משהו שהוא שלם אחד, עשיתם פה פעולה שנקראת קומפילציה. זה לא חייב להיות קשור לעולם התכנות.
אתם יכולים לבצע קומפילציה של מאמרים. לקחת הרבה מאמרים אקדמיים, לבצע קומפילציה של כל המאמרים לתזה אחת או לסיכום אחד מכל מה שעשיתם. אתם יכולים לעשות קומפילציה של קטעי סרטים.
לקחת הרבה קטעי סרטים שהם בודדים ולעשות מהם איזשהו סרט אחד מכל הקטעים האלה. גם כאן עשיתם קומפילציה. אז הפעולה הזאת בעצם לוקחת את כל הקודים שכתבתם, את כל הקבצים שאתם כתבתם והופכת את כולם לשלם אחד.
מה זה השלם האחד הזה? השלם האחד הזה זה קובץ אחד ויחיד שהסיומת שלו זה אגזה. אנחנו רואים אותו פה. בוא נניח שהוא נקרא game.exe כי זה המשחק של המכוניות וזה התוצר הסופי שאני בונה לקראתו.
עכשיו, הפעולה הזאת שהפכנו את כל הקטעים שכתבנו לקובץ אחד ויחיד נקראת קומפילציה, קומפיליישן, או בילדינג, זה גם כן שם שלפעמים אתם שומעים.
למה בילד? כי אנחנו בעצם בונים את הקובץ הזה. אז יש לנו פה את אותו מונח פחות או יותר, או קומפיליישן, שזה היצירה של הקובץ האחד והיחיד הזה, או בילדינג, שזה בנייה שלו, וזה ממש אותו הדבר מבחינתנו כרגע.
מאחורי הקלעים יכול להיות איזשהו הבדל בין Compilation לבין Building, לא ניכנס אליו. מבחינתנו זו פעולה שבה המערכת לוקחת את הקודים שכתבנו, אלה שאתם רואים כאן, והופכת אותם לקובץ אחד ויחיד שהוא Exit.
עכשיו, מה זה קובץ Exit? קובץ Exit זה קובץ שהלקוח שלנו, זה שמקבל בסופו של דבר את התוכנה, יכול פשוט ללחוץ עליו Double Click ולהריץ אותו, וזאת התוכנה עצמה.
הלקוח לא רוצה לקבל הרבה קבצים קטנים של פישאר, אין לו מה לעשות איתם. הוא רוצה לקבל קובץ אחד ולהריץ אותו, משחק אחד.
וזה בעצם קובץ שנקרא קובץ Execution, או קובץ הרצה בעברית. פיומט שלו זה אקזה, דאבל קליק עליו והוא רץ. אבל באיזה שפה הוא כתוב? שימו לב שבתוכו כבר לא כתוב המילים היפות שאנחנו המצאנו.
בתוכו יש כל מיני קיצורים כאלה, ואיזושהי מערכת אמורה להכיר, תכף נראה בדיוק איזו מערכת זאת. הקיצורים האלה יוצרים בעצם, או בנויים באיזושהי שפה שנקראת MSIL, וזה קיצור של Microsoft Intermediate Language, כי מיקרוסופט פיתחה את השפה הספציפית הזאת, ש.NET כותבת את קבצי המקור שלכם,
כלומר היא הופכת את קבצי המקור שלכם לשפה מוזרה כזאת שמאוד מאוד קשה לקרוא אותה, אבל היא מציינת משהו, כל פקודה שאתם כתבתם הופכת לאיזושהי שורה.
לדוגמה, אם אתם רוצים כרגע לבצע את הפעילות דרייב שכתבתם, אז יהיה כתוב לכם call drive. אם אתם רוצים לקחת איזו קופסה, יהיה לכם כתוב box, נניח int.
אם אתם רוצים לסיים משהו, יהיה כתוב ret, שזה קיצור של return. אבל אנחנו לא כותבים את הקובץ הזה, המערכת יוצרת אותו אוטומטית.
עכשיו, השפה הזאת זו שפה שבעבר נקראה אסמבלר וזו הסיבה גם שרשמתי את זה פה בגרשיים כי אסמבלר זו שפה עתיקה שפעם באמת כתבו בה וכתבו בה את כל הקיצורים האלה move to go to take that put here וכולי כל מיני קיצורים כאלה שאומרים למחשב מה לעשות אז בגלל שהקובץ האקסקיושן הזה כתוב בשפה שהיא
דומה לשפת אסמבלר הישנה הקובץ הזה נקרא קובץ אסמבלי ובאמת הוא כתוב בשפה שדומה לשפת אסמבלר. וכבר אנחנו רואים בפרזנטציה הזאת שיש כבר שלושה סוגים של שפות תכנון.
Machine Language, שפת מכונה, זה ה-0 ו-1. דרגה אחת מעל יש את אסמבלר, שבעצם מערכת כלשהי הופכת את הפקודות באסמבלר ל-Machine Language. ושפה אחת מעל יש High Level Programming Language, זאת שפה עילית ורוב המתכנתים בעולם כמובן כותבים בשפה עילית כי מאוד קל לכתוב בה.
אבל תאמינו או לא, פעם אנשים כתבו גם ב-Machine Language, גם ב-Assembler וכמובן הרוב היום כותבים בשפה עילית.
אוקיי, בואו נמשיך. עכשיו יש לנו את קובץ ה-Execution הזה ואנחנו רוצים איכשהו בסופו של דבר להפוך את הפקודות האלה לפקודות בשפת מכונה כי זה הדבר היחידי שמעבד המחשב מכיר.
ולכן קיים איזשהו רכיב בתוך המחשב שנקרא CLR זה הקיצור של Common Language Runtime וזה בעצם מנוע וזה הלב של המערכת שקיים בתוך המחשב איזשהו מנוע כזה שמה שהוא עושה הוא מקבל את הפקודות שכתובות בתוך קובץ האקסקיושן שאתם יוצרים והופך אותן לשפת מכונה זאת אומרת פקודה נכנסת לתוך המנגנון הזה שנקרא