» «

שפת מכונה

שפת מכונה
מהי שפת מכונה, השפה הבינארית שהמחשב מבין?



שפת מכונה (Machine language) איננה שפה שמישהו מתכנת בה. שפת מכונה היא שפת המחשבים, כלומר שפה שבה "מדבר", או יותר נכון רואה המחשב.

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

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

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

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

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

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

את ההמרה משפת התוכנה המסוימת לשפת המכונה עושה תוכנת הקומפיילר (compiler), בעברית מהדר, הנכללת בשפות התוכנה השונות. תפקידו הכללי של הקומפיילר הוא להמיר קוד תוכנה משפה לשפה.

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


הנה שפת המכונה - השיטה הבינארית:

https://youtu.be/Xpk67YzOn5w


כיצד אנו מתקשרים איתה דרך שפות תכנות עיליות:

https://youtu.be/GbBI7LSijnM


על האישה שפיתחה את שפת התכנות הראשונה, שפת Cobol:

https://youtu.be/Wchru8alhaE


וסוגי שפות המחשב השונים, משפת המכונה והשפות הבסיסיות שהמחשב מבין (Assembly language), אל השפות העיליות, המאפשרות למתכנתים בדרך לכתוב קוד:

https://youtu.be/aYjGXzktatA
קובול
מהי שפת התכנות COBOL ומה העתיד שלה?



שפת קובול (COBOL), קיצור של Common Business-Oriented Language, היא שפת תכנות עתיקה ופורצת דרך, שנוצרה במיוחד לצרכי ניהול ועיבוד נתונים ואם תרצו, אפשר לראות בה את שפת המורשת של הטכנולוגיה.

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

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

פתאום מתכנתים החלו לכתוב קוד עם משפטים שיש בהם היגיון. החל מתנאים של if-than כמו "IF AGE IS GREATER THAN 70" ועד פקודת הצבה דוגמת "MOVE TOTAL TO FINAL-AMOUNT" - הכתיבה הזו הקלה על הכתיבה והזכירה של כתיבת קוד או איתור שגיאות בקוד קיים, דברים שאפשרו אפילו לאנשי מנהלה, פיננסים ועסקים להבין מה עושה הקוד שלפניהם.

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

הייתה זו המתכנתת האמריקאית הגאונה גרייס הופר (Grace Hopper) שהכינה את טכנולוגיית התכנות של זמנה לשפת קובול. היא עבדה על מהדרים (Compilers), תוכנות שתפקידן לתרגם קוד מחשב בשפת תכנות לשפת מכונה. הופר האמינה שניתן יהיה ליצור שפת תכנות שתהיה קרובה לשפה הטבעית, שפת בני אנוש, רעיון שנתפס אז כדימיוני ואולי בלתי אפשרי. ההצלחה הייתה כשפותחו לבסוף שפות עילית כמו COBOL והפכו להצלחה מסחררת.


#כיום
בימינו, קובול נחשבת לשפה ישנה, לפחות בסטנדרטים של עולם התכנות המודרני והמתקדם בקצב מסחרר. ובכל זאת, כעדות לחוזק ולאמינות של השפה הזו, שנוצרה לפני מעל חצי מאה, העובדות קובעות שחלק ניכר מהמערכות הבנקאיות והממשלתיות בעולם עדיין מנוהלות על ידה וכ-95% מהעסקאות בכספומטים ו-80% מהעסקאות הפיננסיות מבוצעות גם בימינו באמצעות מערכות קובול.

מומחים מעריכים שכ-3 טריליון דולר עוברים כל יום במערכות מחשוב מבוססות שפת COBOL.

המדהים הוא שהקוד שנכתב בקובול בשנות ה-60 וה-70 עדיין רץ בשרתים של לא מעט מוסדות גדולים, דוגמת בנקים, משרדי ממשלה, מוסדות ממשלתיים, בורסות (כמו זו של וול סטריט) ובמדינות מסוימות גם מערכות ביטחון וארגונים מפעם.

ובכל זאת, מספר מתכנתי הקובול בעולם הוא נמוך להפליא. המתכנתים הוותיקים שעוד נותרו ויודעים לעבוד עם קוד הקובול זכו לכינוי המחמיא "COBOL Cowboys".

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

כדי לייעל את עבודתם ולהוריד עומס עבודה שחורה, הם בנו את DevGen.AI. זהו כלי מבוסס מנוע ChatGPT שתוכנן כדי לסייע להם לעדכן ולכתוב מחדש את קוד הלגאסי, הקוד הישן של הבנק ולהתאימו לגרסאות הקובול המעודכנות.

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

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


הנה הסיפור של שפת התכנות COBOL:

https://youtu.be/LSc3Rffj-CM


הכל על COBOL ובקצרה:

https://youtu.be/7d7-etf-wNI


רק הקובול קאובויז COBOL Cowboys מחזיקים מערכות כאלה:

https://youtu.be/rrAd4RWJVg8


הסיבה ש-COBOL עדיין מצליחה כל כך:

https://youtu.be/l4tjTulHaOY


למה שווה ללמוד היום תכנות קובול?

https://youtu.be/I88KiLIPSg8


השיר של אנשי ונשות הקיוביקלס:

https://youtu.be/uKG0IEyeZb0


על שפת התכנות הקשישה שמניעה 3 טריליון דולר כל יום:

https://youtu.be/LWYmGhIFy-A?long=yes


ומדוע קובול רלוונטית היום מתמיד?

https://youtu.be/oxUzDPNDRQE?long=yes
קומפיילר
מהו הקומפיילר שממיר שפה טבעית לקוד בינארי במחשב?



קומפיילר (compiler), בעברית מהדר, היא תוכנה שתפקידה להמיר קוד מחשב שכתוב בשפת תכנות רגילה, אל שפת מכונה (Machine language), כזו שהמחשב מבין.

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

המרה כזו תהיה לרוב של קוד מחשב בשפה עילית שהמתכנת כתב בה, כמו שפת התכנות פייתון או ג'אווה סקריפט - לשפת מכונה שהמחשב מבין.

שפת מכונה, משהו כמו שפת המחשבים, כלומר שפה שבה כאילו "מדבר" המחשב. זו שפה שפועלת על פי רצפים של אפס או אחד, שמייצגים שני מצבים חשמליים שנמצאים בבסיסו של כל רכיב חשמלי ואלקטרוני - מצבי כבוי, שזה 0, או דולק, 1. הכירו בתגית "שפת מכונה".

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

לכן גם פיתחו את שפות התכנות העיליות, שפות High level המאפשרות כתיבה במילים ובתחביר שהוא ככל האפשר קרוב לזה של שפות אנושיות, תחביר מובן יותר לבני אדם ושקל יחסית לזכור.

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


כך פועל הקומפיילר (מתורגם):

https://youtu.be/QXjU9qTsYCc


ושפת המכונה וכיצד אנו מתקשרים איתה דרך שפות תכנות עיליות:

https://youtu.be/GbBI7LSijnM


אֵאוּרִיקַה - האנציקלופדיה של הסקרנות!

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

אלפי נושאים, תמונות וסרטונים, מפתיעים, מסקרנים וממוקדים.

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

בואו לגלות, לחקור, ולקבל השראה!

אֵאוּרִיקַה - האנציקלופדיה של הסקרנות!

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