ספר זה מיועד למתחילים ולמתקדמים המעוניינים להרחיב את הידע שלהם בתחום. המטרה היא לתת לקוראים תחושת הבנה בסיסית של הנושאים השונים, מבלי להיכנס לפרטים מורכבים מדי.
עד אמצע המאה ה-19, נתוני מפקדי האוכלוסין בארצות הברית נאספו ידנית על פתקי נייר. הנציגים ראיינו כל אזרח, רשמו את פרטיו על פתק, ושלחו את כל הפתקים למטה המרכזי לספירה.
עם הגידול באוכלוסייה, תהליך זה הפך לאיטי ומועד לטעויות. בנוסף, הקונגרס דרש לאסוף מידע נוסף כמו מין, צבע עור ומצב כלכלי. הדבר הפך את תהליך הספירה הידני לכמעט בלתי אפשרי.
ב-1890 הכריזה ממשלת ארה"ב על תחרות לייעול תהליך איסוף הנתונים במפקד האוכלוסין.
ההצעה הזוכה הייתה של הרמן הולרית' שהציג מכונת טבולציה המבוססת על כרטיסי ניקוב. הוא שאב השראה מכרטיסי רכבת שכללו סימון לצבע שיער, כדי למנוע העברת כרטיסים בין נוסעים.
הסוקרים השתמשו בכרטיס עם נקודות סימון מוגדרות מראש. הם ניקבו את הכרטיס בהתאם לפרטי האזרח ושלחו אותו למרכז המיון.
במרכז המיון הוכנס הכרטיס למכונה עם גלילי עופרת מתחת לכל נקודת סימון. מעל הכרטיס הונח לוח עם מחטים. במקומות שבהם היה חור בכרטיס, המחט נגעה בגליל העופרת וסגרה מעגל חשמלי. זה גרם למונה המתאים לעלות באחד.
בהמשך, פותחו מכונות מיון אוטומטיות שמיינו את הכרטיסים לתאים לפי כללים מוגדרים מראש.
עם הזמן, עברו לשמור את המידע על מדיה מגנטית או אופטית, שאיפשרה אחסון של יותר מידע בפחות מקום. אך הרעיון הבסיסי נשאר דומה - שמירת מידע באמצעות 0 ו-1.
כיום, המידע נשמר בתאי זיכרון אלקטרוניים קטנים במחשב. אך התפיסה של ניקוב לסימון מידע התחילה עם המצאת כרטיסי הניקוב של הולרית'.
שפת אסמבלי היא שפת תכנות נמוכה, הקרובה ביותר לשפת המכונה.
קוד בשפת אסמבלי מומר לקוד בינארי שמבצע את הפקודות ישירות על המעבד. לכן, חשוב להבין היטב את אופן פעולת המעבד כדי לתכנת באסמבלי.
הפקודה הבסיסית ביותר היא MOV
שמעבירה ערכים בין רכיבי המחשב השונים, כמו רגיסטרים וזיכרון.
לדוגמה:
MOV AX, 5
פקודה זו מעבירה את הערך 5 לרגיסטר AX.
פקודה נפוצה נוספת היא ADD
שמבצעת חיבור:
ADD BX, 5
זה מוסיף 5 לערך שב-BX ושומר את התוצאה ב-BX.
שפות עיליות הן שפות תכנות אנושיות יותר, המאפשרות למתכנתים לכתוב קוד קריא יותר.
קומפיילר ממיר את הקוד שנכתב בשפה עילית לשפת מכונה.
יתרונות השפות העיליות:
- קלות שימוש - סינטקס פשוטה יותר לבני אדם
- משתנים - אפשרות לתת שמות לערכים
- פונקציות - שימוש חוזר בקוד
- תנאים - ביצוע קוד על פי תנאי מסוים
- לולאות - חזרה על קוד פעמים רבות
שפות עיליות מאפשרות למתכנת להתמקד בלוגיקה של התוכנית מבלי לדעת את פרטי החומרה.
מערכות ההפעלה מנהלות את חומרת המחשב ומאפשרות הרצה של מספר תוכניות.
הן מהוות שכבת אבסטרקציה בין החומרה לתוכנות, כך שהתוכניות יכולות לגשת לחומרה בצורה פשוטה יותר, למשל באמצעות קריאה לפונקציות של מערכת ההפעלה.
לדוגמה, פתיחת קובץ בלינוקס:
file = open("/etc/file.txt")
print(file.read())
במקום לגשת ישירות לדיסק ולקרוא את המידע, הפונקציה open()
מבצעת את זה עבורנו.
כך מערכת ההפעלה מסתירה את המורכבות של החומרה ומאפשרת לתוכניות להתמקד בלוגיקה שלהן.
כדי שמחשבים יוכלו לתקשר, הם מחוברים לרשת שמאפשרת להם לשלוח ולקבל מידע.
כל מחשב ברשת מקבל כתובת IP ייחודית שמזהה אותו.
כתובת IP מורכבת מ-4 קבוצות של מספרים (אוקטטים), למשל: 192.168.0.1
כדי לשלוח הודעה, המחשב צריך לדעת את כתובת היעד ואת הפורט שדרכו לשלוח את ההודעה.
ההודעה עוברת דרך נתבים (ראוטרים) שמכירים את הרשת ויודעים להעביר אותה ליעד המבוקש.
כך נוצרת רשת האינטרנט שמחברת בין מיליוני מחשבים בעולם.
-
כרטיסי ניקוב איפשרו איסוף יעיל של נתונים על ידי סימון מידע בעזרת חורים.
-
שפת אסמבלי היא שפת תכנות נמוכה הקרובה לשפת המכונה.
-
שפות עיליות מקלות על מתכנתים על ידי יצירת שכבת אבסטרקציה מהחומרה.
-
מערכות ההפעלה מנהלות את החומרה ומאפשרות הרצת מספר תוכניות.
-
רשת האינטרנט מאפשרת תקשורת בין מחשבים בעולם על ידי שימוש בכתובות IP.