top of page

תָּכְנָהּ / תוכנה (Software)

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

 

כדי להבין את משמעות המושג תוכנה צריך להבין שכל מחשב מורכב משתי יחידות עיקריות:

  • אוסף של רכיבים אלקטרוניים - חומרה;

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

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

אפשר לדמות את המחשב לרובוט קטנטן אשר נעזר בחוברת הוראות. המחשב קורא את הוראות ההפעלה בזו אחר זו ומבצע אותן בזו אחר זו במהירות עצומה. חוברת ההוראות שמורה בזיכרון המחשב בצורה דיגיטלית (סִפְרָתִית).

 

תִּפְקוּד המחשב משתנה כאשר מחליפים את חוברת ההוראות (את האלגוריתם).

בזמן הפעלת המחשב, מופעל מעבד (רכיב אלקטרוני שמוכר בשם יחידת עיבוד מרכזית - CPU = Central Prossenig Unit). כאשר מפעילים את המחשב, המעבד שבתוכו מתחיל לעבוד כמו רובוט: הוא פותח את חוברת ההוראות בעמוד הראשון, קורא את השורה הראשונה ומבצע את הפקודה שקרא. לאחר מכן המעבד קורא את הפקודה השנייה ומבצע את הפקודה השנייה וכך הלאה. כאשר המעבד מגיע אל סוף חוברת ההוראות, הוא מתחיל שוב לקרוא את ההוראה הראשונה וכך הלאה עד אין סוף...

 

מחשבים משוכללים יותר, יכולים להיעזר בכמה חוברות הוראות כאילו בו זמנית (עבודה כזו נקראת ריבוי משימות - Multi Tasking). המעבד פונה אל חוברת ההוראות הראשונה, קורא את פקודת המחשב הראשונה ומבצע אותה ואז פונה אל חוברת ההוראה הבאה וכך הלאה אל כל חוברות ההוראות בזו אחר זו. לאחר ביצוע ההוראה שכתובה בחוברת האחרונה, הוא חוזר שוב אל החוברת הראשונה וקורא את השורה השנייה וחוזר חלילה... בגלל מהירותו הגבוהה, נראה כאילו המחשב קורא ומבצע פקודות של חוברות אחדות בו זמנית.

מחשבים משוכללים יותר, מכילים מעבדים אחדים וכל מעבד יכול להיעזר בחוברות אחדות. במקרה הזה אומרים שמבוצע עיבוד במקביל - Parallel Proccessing.

אם כך, למדנו שתוכנה היא בסך הכול אוסף של הוראות שהמחשב (רכיבי האלקטרוניקה במחשב) "מבין" ויודע לבצע.

 

מחשב יכול להבחין בין שני מצבים:

  • יש מתח (זה נקרא "1" - אחד לוגי);

  • אין מתח (זה נקרא "0" לוגי).

אם כך, מחשב יודע לקרוא הוראות ונתונים בשפה בינארית ("0", "1"). לשפה כזו קוראים שפת מכונה. אבל איך? איך הפלא הזה מתרחש?

 

איך מעבד קורא בשפה בינארית כאשר הוא בעצם בסך הכול רכיב אלקטרוני (צ'יפ)? בשורות הבאות אסביר את התופעה המסקרנת הזו...

משמאל מוצגת תמונה של צ'יפ. זו קופסה שחורה שממנה יוצאים רגליים קטנטנות כמו של מרבה רגליים (ראו צילום מימין).

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

רכיב אלקטרוני אשר מוסתר בתוך הצ'יפ ומחובר לאחת מהרגליים, מגיב בצורה שונה כאשר הוא מקבל מתח חשמלי - "1"

או כאשר הוא אינו מקבל מתח חשמלי "0". כל חוט כזה נקרא ביט (bit). אם כך, bit יכול לקבל ערכים של "0" או "1". כלומר יכולות להיות שתי אפשרויות.

אבל, כאשר מחברים מתח לשתי רגליים, אז מתקבל צירוף של שני ביטים (00, 01, 10, 11).

  • בעזרת שתי רגליים אפשר כבר לקבל 4 צירופים שונים (00, 01, 10, 11).

  • בעזרת שלוש רגליים אפשר לקבל 8 צירופים שונים (000, 001, 010, 011, 100, 101, 110, 111).

  • בעזרת ארבע רגליים אפשר לקבל 16 צירופים שונים (0000, 0001, 0010, 0011, 0100, 0101,  0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111)
    שזה 2 בחזקת 4. 

  • בעזרת שמונה חוטים אפשר לקבל 2 בחזקת 8 כלומר 32 צירופים שונים. אם לחוט אחד קראנו ביט (bit) אז לצמה של שמונה חוטים אנו קוראים בייט (Byte).

שמתם לב שהתחלנו לדבר בשפה דיגיטלית? זו השפה שהמחשב מבין. כלומר, אם ניתן למחשב רצף של Bytes, בזה אחר זה,

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

ישנם מעבדים אשר יכולים לקבל מידע ב-64 קוים, 128 קווים ואף יותר. קריאת ההוראות או הנתונים היא מהירה יותר,

ככל שמספר הקווים (הרגליים / הביטים) רב יותר.

* מכונות חכמות יותר הם מחשבים אשר נעזרים בבינה מלאכותית.

צ'יפ.png
שפת מכונה.png

למחשב אמנם נוח לקרוא את הצירוף הזה של אפסים ואחדות אבל לכתוב תוכנה זה מעט מסובך לבני אנוש. לכן פותחו שפות משוכללות יותר ויותר, שנקראות שפות עיליות הדומות יותר לשפות הדיבור של בני האדם (ראו, למשל, Java, Python , Java-Script).

מרבה רגליים.png

דוגמה: פקודת הדפסה בשפת ++C:

C plus Plus.png

דוגמה: פקודת הדפסה בשפת PHP:

PHP.png

                                דוגמה: פקודת הדפסה בשפת Python:

>>> print("Hello, World!")
Hello, World!

דוגמה: פקודת הדפסה בשפת Java:

JAVA.png

לכל שפה יש תכנית (אפליקציה) אשר מתרגמת את המילים המובנות לבני האדם - לשפת מכונה המובנת על ידי המעבד. לתכנית הזו קוראים מַהְדֵר (Compiler) ובמקרים אחרים מתרגם (Intewrpreter).

ראו גם שפות תכנות על רגל אחת;

מה זה אלגוריתם

קיים תרגום לעברית

מאי 2013, 5 דקות

מה זו תכנה

קיים תרגום אוטומטי לעברית

ינואר 2020, 3 דקות

מה זה תכנות

שיעור 3

איך נראה קלט ופלט בשפות תכנות שונות?

פברואר 2017, 3 דקות

מה זה תכנות

שיעור 2

תהליכי כתיבה על דף

פברואר 2017, 3 דקות

מה זה תכנות

שיעור 1

מה זה, בעצם, תכנות?

פברואר 2017, 5 דקות

מה זה תכנות

שיעור 6 - פותרים ביחד תרגיל

פברואר 2017, 5 דקות

מה זה תכנות

שיעור 5 - פותרים ביחד תרגיל

פברואר 2017, 5 דקות

מה זה תכנות

שיעור 4 - אופרטורים

פברואר 2017, 5 דקות

מה צריך כדי להיות מפתח תוכנה טוב

קיים תרגום אוטומטי לעברית

יולי 2019, 3 דקות

bottom of page