מעבר ל-Patch Tuesday - זה יום Ada Lovelace! PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

מעבר ל-Patch Tuesday - זה יום Ada Lovelace!

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

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

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

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

לעדה היו מאפיינים תחביריים רבים שמטרתם לשפר את הקריאות ולהימנע מטעויות נפוצות. בניגוד להערות ב-C, שמתחילות ב /* ולרוץ עד הבא */, אולי שורות רבות מאוחר יותר, עדה פשוט מתעלמת מכל דבר אחר -- על כל שורה אחת, כך שהתגובות לא יכולות להופיע בטעות רחוק יותר ממה שהתכוונת. במקום להקיף את כל גושי הקוד מרובי השורות בתוך סוגריים מפותלים ({...}, ידוע גם כ פלטות), ל-Ada יש terminator ייחודי עבור כל סוג של בלוק רב-קו, למשל end record, end loop ו end if. עדה לאבלייס, אנו חושדים, הייתה מוחאת כפיים לבהירות השפה בעלת שמה, אבל עדה-השפה אף פעם לא ממש תפסה, ותחביר הסוגר המפותל של C זכה במידה רבה, כאשר פייתון אולי השפה היחידה שאינה מתפתלת בסוגריים. שימוש נפוץ. סוגריים מפותלים הם היבט חיוני של C, C++, C#, Go, Java, JavaScript, Perl, Rust ושפות פופולריות רבות אחרות.

עידן עדה לאבלייס

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

(עדה מתה מסרטן הרחם בשנת 1852 בגיל 36 בלבד.)

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

הנה איך זה כמעט קרה.

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

aX6 + bX5 +cX4 +dX3 +eX2 + fX + g = 0

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

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

אבל לבאג' היו שתי בעיות.

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

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

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

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

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

מעגל הכנסים האירופי

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

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

למרות שהיה איטלקי, מנברה פרסם את מאמרו בצרפתית...

...וזו הייתה עדה לאבלייס שתרגמה אז את המאמר של מנברה לתוך אנגלית.

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

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

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

במילותיה של עדה עצמה (זה היה עידן שבו הספרות המדעית עדיין הייתה במגע עם הספרות יותר מאשר אולי היום):

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

  • עדה הבינה שהמנוע האנליטי אינו מוגבל לקידוד ומחשוב עם מספרים. למרות שהן דיגיטליות, ובהתבסס על יכולת לבצע חישובים מספריים, פעולות דיגיטליות אלו, הסבירה, יכולות לייצג בתיאוריה הצעות לוגיות (כפי שאנו רואים כמובן מאליו כיום ב if ... then ... else ... end if הצהרות), תווים מוזיקליים וכן הלאה.

כפי שאמרה עדה:

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

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

הקשר פרנקנשטיין

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

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

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

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

היא הציעה את חוות הדעת, בחלק האחרון שלה הערות של המתרגם, ש:

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

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

מה לעשות?

בפעם הבאה שתמצא את עצמך כותב קוד כגון...

   -- דבר פאנקי: פונקציית אקרמן. -- ניתן לחישוב, אך לא רקורסיבי פרימיטיבי! -- (אתה לא יכול לכתוב את זה עם רגיל ישן עבור -- לולאות, ובכל זאת אתה יכול להיות בטוח שזה יסתיים, -- גם אם זה לוקח הרבה זמן.) local ack = function(m,n) if m == 0 אז החזר n+1 סוף אם n == 0 אז החזר ack(m-1,1) end return ack(m-1,ack(m,n-1)) end

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

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

יום עדה לאבלייס שמח!


בול זמן:

עוד מ ביטחון עירום