בתשובה לערן בילינסקי, 08/08/01 18:09
שוב אותו פרוייקט לערן בילינסקי 31547
מקצועי הוא תכנות, אני עוסקת בו מספר שנים, ולא תאמין כמה טעויות גסות וטפשיות אני עושה.

אני לא בטוחה בקשר לפוליטיקאים, אבל אל תפתח תאוריות המתבססות על כך שמתכנתים לא טועים.
שוב אותו פרוייקט לערן בילינסקי 31548
גם את רוצה שני מאמרים על טעות? אתם לא לומדים. בקרוב גם בתיבת הדואר שלך.
שוב אותו פרוייקט לערן בילינסקי 31551
גם אני, גם אני.
אפשר גם, בבקשה? 31553
כן, לשניכם. 31555
כנ''לינסקי 31562
נו טוף 31563
נו טוף 31568
לא יותר אפקטיבי לפרסם את המאמר באייל?
יסופקו על פי דרישה 31571
המאמרים אינם פרי-עטי אלא של פרופ' עודד בלבן מאוניברסיטת חיפה (יתכן ואחד מהם הוא של פרופ' גיורא הון) והם כבר הופיעו בדפוס. קיבלתי רשות זה מכבר מעודד להשתמש בהם כאוות נפשי. יתרה מזאת, אני חושב שהם לא בהכרח מתאימים לפורמט הפופולרי של האייל.
מתוכנית יוצא באג 31577
אבל הרי את טוענת את המובן, או המוכח מאליו.
לא ניתן לכתוב תוכנה שאין בה טעויות וזה
מוכח מתמטית על פי מכונת טיורינג.
משוויץ יוצא מיץ? 31580
מה ש"מוכח מתמטית" הוא שישנן בעיות שאינן ניתנות להכרעה באמצעות חישוב, ודוגמא קלאסית היא "בעיית העצירה". דווקא השאלה של כתיבת תוכנה ש"אין בה טעויות" היא שאלה העומדת באחת החזיתות של המחקר במדעי-המחשב, בתחום שנקרא verification ("וידוא", כמדומני) ועוסק ב"הוכחה מתמטית של נכונותן של תכניות מחשב". בהקשר הזה, "טעות" היא חוסר-התאמה בין התנהגות התכנית לבין אפיון מדויק של האופן בו היא אמורה להתנהג, כך ששוב - לא ניתן לדבר על "תוכנה שאין בה טעויות", משום שכל תוכנה היא כזו (נטולת-טעויות) ביחס לאיזשהו אפיון (היא עצמה). סביר שהטעויות שחן עושה אכן מתבטאות בחריגה מאיזשהו אפיון של התכניות שהיא רוצה לכתוב, אולם אלה טעויות של חן (ולא של התוכנה).
אבל ממיץ לא יוצא פטל 31582
מה היה בדיוק הקיצור לתשובה נכונה אך לא רלוונטית?

האם אתה לא מבלבל עם הטסט של טיורינג לבינה מלאכותית?

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

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

תיאלץ להסביר שוב, אם לא את ההוכחה, אז לפחות מה היא מוכיחה (בפרט, להגדיר "באג"). האפיון המלא של תוכנית הוא פונקציה על קבוצת הקלטים לתוך קבוצת הפלטים. למשל: ניתן בהחלט לכתוב תוכנית נטולת-באגים המקבלת כקלט מספר חיובי ושלם קטן מ-‏100 ומחזירה כפלט את אותו מספר. אנא, נסה להסביר למה התכוונת. אם מדובר בקבוצת קלטים אינסופית, עדיין ישנן דרכים לכתוב תכניות ולהוכיח את נכונותן, ולעיסוק בכך התייחסתי בתגובה הקודמת.
תטל''א 31609
אני אנסה להזכר או אולי המחברות הישנות
נמצאות בבויידם של הורי .יכול להיות שמדובר
בבעית העצירה. האם יש לך איזה מראה מקום
לרענון הזכרון?
נסה כאן 31627
מתוכנית יוצא באג 31591
כבר שנים שכמעט אינני עוסק בתכנות, ומעולם לא למדתי זאת בצורה מסודרת, אבל מובן שניתן לכתוב תוכנית נקיה מקוצים. הדבר תלוי במורכבות התוכנה.

אפילו כיום אני מסוגל לכתוב תוכנית, שבכל פעם שתופעל תצליח לחשב כמה זה 1+1 ללא שום באג.
יש לי תוכנה קטנה בלב 31608
int main(){return 42;}

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

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

חזרה לעמוד הראשי המאמר המלא

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