שיחה:COBOL

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

כל הכבוד על ההסבר והפירוט, תרם רבות להבנתי על השפה 82.81.169.160 23:33, 2 באוקטובר 2011 (IST)[תגובה]

אני מכיר את השפה היטב. התכנות המבני לא זר לה כלל וכלל. נהפוך הוא: תוכנית קובול נכונה בנויה מ SECTIONS שכל אחד מקביל לפונקציונאליות מוגדרת וברורה. למעשה משנות השמונים השימוש ב GOTO היה פסול, אך לקח עוד 20 שנה לחנך דור חדש של מתכנתים להימנע ממנו. הגישה הנכונה לכל פיסת קוד ( נניח ששמה יהיה FIND-TAARICH ) הוא דרך הפקודה PERFORM כך : PERFORM FIND-TAARICH. לאחר ביצוע פיסת קוד זו, התוכנית ממשיכה מאותו מקום.

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

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

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

            PERFORM A100-BEGIN
       PERFORM A200-OPEN-FILES
PERFORM A300-LOOP-CALCULATIONS    
            PERFORM A400-PRINT
             .PERFORM A500-END

הטיעון שלא ניתן להשתמש במילים שמורות ( שרובן הוא פקודות ) אינו רלוונטי משום ש:

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

ב) אבל בעיקר משום שכאשר נותנים למשתנים (variables) ול"מתודות" (sections) שמות משמעותיים ( = כלומר שמות מתוכם ניתן להבין למה הם משמשים ) השם אמור להיות ארוך יותר ממילה שמורה אחת. במקרה כזה, ניתן להשתמש בכל מילה שהיא, כולל מילים שמורות , ולחברן במקו אמצעי ( בניגוד ל C וממשיכיה שמשתמשות בקו תחתון ). למשל , למתודה שצריכה להוסיף סכומים , אפשר לקרוא: ADD-AMOUNTS, למרות ש ADD לבדה היא מילה שמורה. דרך אגב זו בעיה של מתכנתים מתחילים או רשלנים שנותנים שמות קצרים למשתנים. המתכנת הבא שיתחזק את התוכנית , לא יבין מיד למה משמש אותו משתנה.

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

בעיה שקיימת בקובול - והיא למעשה עוד יותר מובהקת בשפות מהדור הרביעי - היא שהמתכנתים מתעצלים במתן דוקומנטציה מספיק ברורה לקוד, בתוך התוכנית , מה שמוביל לבעיות תחזוקה כבדות.Hexagone59 - שיחה 02:48, 3 בנובמבר 2015 (IST)[תגובה]

בקשה לדיון לפני שינוי ערך[עריכת קוד מקור]

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

תגובה לבקורת[עריכת קוד מקור]

אני עובד בקובול מזה שנה וחצי.

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

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

syntaxhighlight פגום[עריכת קוד מקור]

כפי שניתן לראות, syntaxhighlight עבור שפת קובול פגום (לא צובע טוב את המילים השמורות).
ניסיתי לראות איפה זה מוגדר כדי לתקן, לא הצלחתי. משתמש:Rotemliss אתה יודע איפה?
בויקי באנגלית זה דווקא נראה בסדר.
קובול בעברית לעומת אנגלית
רן כהןשיחה 07:58, 14 באוגוסט 2021 (IDT)[תגובה]