Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions COBOL - ויקיפדיה

COBOL

מתוך ויקיפדיה, האנציקלופדיה החופשית

קובול (COBOL) ראשי תיבות של: COmmon Business Oriented Language (בתרגום חופשי: שפה משותפת לשימושים מסחריים), היא שפת תכנות מהוותיקות ומהנפוצות ביותר, שמיועדת בעיקר לניהול ועיבוד נתונים.

מאז נוצרה השפה בשנת 1959 היא עברה שינויים ושיפורים שונים על מנת להפכה לשפה תקנית.

מכון התקנים האמריקני (ANSI) פיתח תקן קובול המשמש את רוב התעשייה המכונה ANSI COBOL (להרחבה ראה בהמשך).

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

תוכן עניינים

[עריכה] היסטוריה

על פיתוחה של השפה הוחלט בוועדה שהוקמה ביוזמת משרד ההגנה של ארצות הברית, ובה השתתפו נציגים של שש חברות המחשבים המובילות ושלוש מרשויות הממשל האמריקאי. ועדה זו הקימה ועדת-משנה ובה שני נציגים מכל אחת מהחברות הבאות IBM, RCA וסילבניה. לקראת סוף 1959 סיימה ועדת-משנה זו את הגדרתה של שפת קובול. ההגדרה הושפעה רבות משפת FLOW-MATIC שפותחה על-ידי גרייס הופר ושפת COMTRAN שפותחה על-ידי איש IBM בוב במר. הוועדה הראשית אישרה את המפרט של השפה, ותוך חצי שנה פותח מהדר לשפה.

קובול זכתה לפופולריות עצומה כשפה לפיתוח מערכות מידע בעולם העסקי, ונעשה בה שימוש נרחב גם כיום (2005), אם כי בעיקר לתחזוקה של תוכניות קיימות ולא לפיתוח של תוכניות חדשות. בעיית "באג 2000" גרמה לביקוש מוגבר למתכנתי קובול, במקביל להחלפתן של מערכות שפותחו בקובול במערכות מודרניות יותר. כיום ניתן למצוא פיתוחים בקובול גם בתחום האינטרנט ואף ישנה גרסה של קובול עבור .NET. הגירסאות האחרונות של הקומפיילר מכילות גם תמיכה מלאה ב-OBJECT ORIENTED COBOL.

[עריכה] מאפייני השפה

גרסת קובול לתוכנית Hello world
גרסת קובול לתוכנית Hello world

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

  1. IDENTIFICATION DIVISION: חטיבה קצרצרה, ובה פרטים מזהים של התוכנית.
  2. ENVIRONMENT DIVISION: פרטי הקבצים שבהם מטפלת תוכנית זו.
  3. DATA DIVISION: הגדרת כל המשתנים שבהם משתמשת תוכנית זו, כולל שטחים לרשומות שבהן מטפלת התוכנית.
  4. PROCEDURE DIVISION: החטיבה העיקרית של התוכנית, ובה הלוגיקה שלה.

על-פי תקנים מודרניים לשפות תכנות, היו בקובול פגמים חמורים: תחביר שמרבה במילים, חוסר תמיכה במשתנים לוקליים, ברקורסיה ובהקצאת זיכרון דינמית. חוסר מודולריות פנימית ושימוש רב בפקודת GO TO, גרמו ליצירת "קוד ספגטי". מובן שהשפה לא תמכה בתכנות מובנה, רעיון שנוצר כעשר שנים לאחר יצירת השפה. כל המילים של השפה הן מילים שמורות, שאסור להשתמש בהן כשמות של משתנים. כיוון שמדובר במילים שגרתיות של השפה האנגלית, הגבלה זו מהווה מטרד למתכנת. ההגדרה הראשונית של השפה אף כללה יכולת של תוכנית לשנות את הקוד של עצמה, באמצעות הפקודה ALTER X TO PROCEED TO Y. אחדים מפגמים אלה תוקנו בגרסאות מתקדמות של השפה.

[עריכה] ANSI COBOL

תקן לכתיבה בשפת COBOL שפותח על ידי מכון התקנים האמריקני (ANSI), על מנת לאפשר ניידות גמישה יותר של קוד כתוב בשפה זו.
התקן הראשון היה ANSI74 COBOL, אך למעשה התקן המשמעותי הראשון של השפה היה ה- ANSI85 COBOL.
לתקן התיחסות שונה לפלטפורמה שעליה התוכנית כתובה, אם על מחשבי UNIX או אם על מחשבי MAINFRAME.

[עריכה] ביקורת על השפה

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

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

[עריכה] המחשה של תחביר השפה

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

x=\frac{-b \pm \sqrt {b^2-4ac\  }}{2a}.

אף שאפשר ליישם את הביטוי בתחביר הבא באמצעות הפקודה COMPUTE

      COMPUTE X = (-B + (B ** 2 - (4 * A * C)) **.5) / (2 * A)

התחביר הטבעי והטיפוסי של השפה נראה באופן הבא:

      MULTIPLY B BY B GIVING B-SQUARED.  
      MULTIPLY 4 BY A GIVING FOUR-A.  
      MULTIPLY FOUR-A BY C GIVING FOUR-A-C.  
      SUBTRACT FOUR-A-C FROM B-SQUARED GIVING RESULT-1.  
      COMPUTE RESULT-2 = RESULT-1 ** .5.
      SUBTRACT B FROM RESULT-2 GIVING NUMERATOR.
      MULTIPLY 2 BY A GIVING DENOMINATOR.
      DIVIDE NUMERATOR BY DENOMINATOR GIVING X.

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

[עריכה] היכן כותבים בקובול

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


שפות תכנות

Ada | ALGOL | Awk | Assembly | Basic | BCPL | C | C++ | C# | Cobol | Delphi | Eiffel | Forth | Fortran | Haskell | Java | Lisp | Logo | Miranda | Modula-2 | Oberon | Ocaml | Pascal | PHP | Perl | PL/I | PL/SQL | Prolog | Python | REXX | Ruby | Smalltalk | Visual Basic

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu