מבט לתכנות
מתוך "?Is it Just
Coincidence " של Tom Graves
עבור אנשים מסוימים המחשב מייצג את הכוח
האולטימטיבי של דה-הומניזציה בטכנולוגיה העכשווית, על כן שווה
לזכור כי מחשב הינו רק כלי. המילה האנגלית
COMPUTER מבלבלת, מפני
שרוב המחשבים עושים מעט מאוד Computing
, חישוב, או "תחינת מספרים"
בכלל. המילה הצרפתית Ordinateur -
במשמעות מילולית, "עושה סדר" מתארת טוב יותר את התהליך. מחשב,
למעשה, הוא מכונה לוגית, מהירה אך טיפשית, הפועלת על פי חוקים
והוראות לוגיות מסודרות ברצף אותו אנו מכנים :"תוכנה".
כל מערך חוקים בנוי במחשוב על רבדים
נוספים של חוקים: שפת תכנות, ומערכת ההפעלה תחתיה, ועוד שפת
מערכת ההפעלה מתחת, וכו', עד אל תוך הלוגיקה הבנויה בקרבי
המעבד, והלוגיקה הפשוטה של המתגים בשני מצבים :
on & off
במונחים לוגיים, כל מה שמחשב עושה הוא
"נכון". אם זה מתאים, או שימושי, זה כבר סיפור אחר...
אם להיצמד לתכונות הבסיסיות של תוצרי
התכנות, ניתן לחלק אותן לחמישה מושגים:
הרעיון הראשון הוא לעשות דברים ברצף
(עיבוד מקביל, החיוני להתמודדות עם כל דבר שמתרחש במהירות
בעולם האמיתי, מטפל ברצפים רבים בו זמנית, ומעביר פקודות מגדה
אחת לשנייה). פקודה אחת ניתנת, ואז עוד אחת, ועוד אחת, במקרים
מסוימים אף מיליוני פעם לדקה.
עיקרון המפתח השני הינו הראיון של מתן
שמות לדברים : "אם לא ידוע לך מה זה, תן לו שם".עקרון זה
נלקח מן האלגברה; האות המסתורית הזו
שנקראת "X", למשל...לאחר שקיבל שם,
ה"כתובת" הזו מסוגלת להכיל ערך כלשהו, שיישאר קבוע או ישתנה-
כמשתנה, ותהליך אחר יכול להתייחס אליו על פי שמו. שפות תכנות
רבות כגון Pascal ו-C
צריכות את השמות הללו כדי להיות "מוכרזות" בתוך התוכנה.
שפות אחרות כגון רוב הגרסאות של Basic,
מאפשרות לך לאתר שמות , אבל מתן שמות
שרירותיים
על פי כדאיות פראקטית משותף לכולם.
הערך האגור במקום הזה, הינו רק ערך,
קריא מספר, אות, מקום, סמן, וכו', בהתאם לקונטקסט. זה רק מידע,
המחכה שהקונטקסט יקנה לו את המשמעות שלו.
זה מוביל אותנו לעקרון השלישי: פקודה
יכולה לרמוז פעולה או קונטקסט, על ידי שימוש ב"מחסנים"
הללו על פי שמות. הפקודה עצמה היא משהו שקיבל שם, שפת תכנות
הינה מוסכמה המתארת רשימת פקודות בעלות שם, ואת שימושן. רוב
הפקודות טריוויאליות למדי - רק המהירות המדהימה של העיבוד מקנה
לתוכנת המחשב דמיון לאינטליגנציה. פעולה טיפוסית
יכולה להעתיק ערך כלשהו ממקום למקום, או להשוות בין שני ערכים
-כמעט הגבול ברמה הבסיסית של הרבה מעבדים - או ברמה "גבוהה"
יותר של לוגיקה, להציג ערך כלשהו על הצג.
נקודת המפתח הבאה הינה הרעיון של "אולי".
החלטה לוגית, קיימת ברוב שפות התכנות כמבנה של :If...then...else,
או:
"If so - and so is true, then do this,
else do that". הקונטקסט בנוי בצורה לוגית, רובד
על רובד, עם כל החלטה מתקבלת באופן לוגי על קונטקסט שהוגדר
מראש על ידי פקודות אחרות, פעולות אחרות. החלטות אלה הופכות
ל"אינטליגנציה" הנראית של התוכנה.
לבסוף, יש לנו את המושג של "עשה זאת שוב".
ניתן לשבור את הרצף - בדרך כלל אחרי החלטה לוגית של
"אולי" - ולהתחיל את הרצף ממקום אחר, לחזור על פקודות ולדלג על
פקודות אחרות.
חומר למחשבה.
המקור מומלץ
|