COBOL-programmering: Inga stanskort behövs

Avslöjande: Ditt stöd hjälper till att hålla webbplatsen igång! Vi tjänar en remissavgift för några av de tjänster vi rekommenderar på denna sida.


COBOL, eller COmmon Business Oriented Language, är ett äldre datorprogrammeringsspråk som är utformat för affärsdatorer. Den debuterade i slutet av 1950-talet och var i hård användning i ett antal industrier under de kommande decennierna.

En stor mängd programvara som ursprungligen byggdes i COBOL mellan 1960- och 1990-talet körs fortfarande, ofta driver uppdragskritiska system som genomsnittliga människor interagerar med varje dag, såsom banksystem, betalningsbearbetning, försäkringsgaranti och trafikstyrning.

COBOL är ett av de äldsta programmeringsspråken som fortfarande är i vanlig användning, kanske bara till FORTRAN, som är några år äldre. (Det verkar dock finnas mycket mer COBOL som fortfarande körs i världen än det finns dock FORTRAN.)

COBOL: s historia

Under 1950-talet började datorerna stiga framåt inom näringslivet. Men när kostnaden för dessa nya maskiner började krypa nedåt, ökade kostnaden för att programmera dem faktiskt.

Dessutom måste programvara med varje ny generation hårdvara ofta nästan helt skrivas om för att arbeta med de uppdaterade maskinerna – kostnaden för att översätta program till att arbeta med nya system var cirka 3/4 av kostnaden för att utveckla programvaran i den första plats.

Oroat över dessa kostnader träffades en grupp företagsledare tillsammans med akademiker och datortillverkare 1959 för att diskutera lösningar på detta problem. De bad försvarsdepartementet (som finansierade en hel del datorelaterad forskning och utveckling) att sponsra utvecklingen av ett nytt programmeringsspråk.

Det nya språket skulle vara portabelt från maskin till maskin och passar de databehandlingsuppgifter som behövs i stora företag. (Fortran var begränsad i sin portabilitet vid den tiden och var dessutom otillräcklig för de typer av uppgifter som behövdes mest av näringslivet.)

Eftersom det här nya språket skulle bli ”vanligt” (det vill säga gemensamt för många hårdvaruarkitekturer) och ”affärsorienterat”, så slutade det att man fick COBOL.

Svaret på denna begäran från försvarsdepartementet var entusiastiskt; de hade samma slags problem som dessa företagsledare hade.

DoD använde över 200 datorer och hade nästan ytterligare 200 beställda för leverans. Deras kostnad för mjukvaruutveckling ökade också snabbt och de hade spenderat över 200 miljoner dollar på programmering.

Direktören för DoD: s datasystemforskningspersonal, Charles A Phillips, sammankallade ett möte med gruppen där nyckelfunktionerna i det nya språket anges. COBOL skulle:

  • fungerar samma på många olika datorer

  • uppmuntra fler att bli programmerare genom att använda många vanliga engelska nyckelord och enkel syntax

  • kunna förändras

  • inte begränsas av aktuell hårdvaruteknik

  • vara lätt att använda.

Resultatet av detta möte var ganska snabb utveckling och utgivande av den första versionen av språket, kallad COBOL-60 (det släpptes 1960). Det påverkades starkt av FLOW-MATIC – dess uppfinnare, Grace Hopper, var en teknisk konsult – och införlivade också några idéer från IBMs COMTRAN.

Den tidiga utvecklingen av COBOL stod inför många problem som hotade att spåra hela processen – tillverkarnas, akademiker, företagsledares och militärens motstridiga intressen. design-för-kommittémetoden; kommersiella och personliga rivaliteter; skrattande korta tidsfrister.

Och ändå, trots dessa problem, gjorde ansträngningen att skapa COBOL något fantastiskt. Det första mötet för att diskutera det hölls i april 1959, och den ursprungliga specifikationen godkändes i januari 1960.

Datortillverkare började genast skriva kompilatorer för språket. Innan slutet av 1960 skrivs, sammanställdes och kördes det första fungerande COBOL-programmet på två olika datorsystem.

COBOL fick snabbt dragkraft och blev nästan över natten det dominerande språket för affärsdatorer. År 1970 var det världens mest använda programmeringsspråk.

COBOL förutsåg också rörelserna med öppen källkod och fri programvara som verkligen inte skulle börja på ytterligare två decennier. Med tanke på hur COBOL utvecklades kunde inget företag eller grupp ta ägande av det. Den ursprungliga språkhandboken hade följande meddelande:

COBOL är ett branschspråk och tillhör inte något företag eller grupp av företag, eller någon organisation eller grupp av organisationer.

Släpphistorik

COBOL-utgåvor heter för året då de släpps. (Och på riktigt COBOL-sätt representeras dessa år med två siffror fram till 2000-talet).

  • COBOL-61 ägnades mest åt bugfixar och förtydliganden, vilket gjorde syntaxen otvetydig.

  • COBOL-65 fortsatte arbetet med att rensa upp språket, och tilllade också funktioner för att arbeta med tabeller och masslagringsfiler.

  • COBOL-68 var tänkt att standardisera språket, efter en viss version av divergens med versionen, 61, 61 Utökad och 65. Det skapades under regi av United States of America Standards Institute och var känt som ANSI-COBOL. Denna version blev grunden för vidareutveckling av språket.

  • Mellan 1968 och 1973 släppte den ursprungliga språkutvecklingskommittén (kallad CODASYL) fyra nya versioner av språkspecifikationer. Dessa har lagt till ett antal nya funktioner. Tyvärr var nästan ingen med COBOL medveten om dem. Fokus för de flesta av språkets utvecklare gemenskapen låg på ANSI-standarden.

  • COBOL-74, en revidering av ANSI-standarden, innehöll ett antal nya funktioner inklusive filorganisationer, DELETE och en minnesegmenteringsmodul. Detta var en stor förändring som inte var bakåtkompatibel; program skrivna i tidigare versioner kunde inte kompileras på COBOL-74-kompilatorer.

  • En föreslagen revision från 1980 (inofficiellt kallad COBOL-80 genom konvention) införde ännu fler förändringar i språket, vilket orsakade ett uppror över bakåtkompatibilitet och kostnaderna för att konvertera gamla system till det nya språket. Det offentliga svaret under översynsperioden var överväldigande negativt.

  • COBOL-85 var slutresultatet av svaret på COBOL-80-frisläppande. ANSI tog itu med de flesta problem som utvecklarsamhället väckte, och utgivningen från 1985 innebar en relativt låg konverteringskostnad, samtidigt som ett antal användbara funktioner ökade som ökade programmerarens produktivitet.

  • COBOL-2002 var kulminationen av arbetet som började i början av 1990-talet för att lägga till objektorientering till språket. Det har också lagt till ytterligare datatyper (bitar, booléer, flytande punkter och binärer), stöd för UNICODE, pekare och flera andra funktioner. Även om detta var ett stort steg framåt för COBOL, stöds det inte bra av branschen. Inga kompilatorer skrevs som stödde hela språkspecifikationen.

  • COBOL-2014 har lagt till en handfull ytterligare funktioner. Tyvärr stöder inga kompilatorer igen hela standarden. Dessutom görs det väldigt lite ny utveckling i COBOL; År 2014 gjordes den överväldigande majoriteten av COBOL-arbetet på gamla system.

Även om det verkligen finns massor av befintlig kod skriven i COBOL-2002, och till och med lite i COBOL-2014, överensstämmer majoriteten av fortfarande löpande äldre COBOL med 1985-specifikationen.

Om språket

COBOL är absolut nödvändigt och processuellt. Specifikationen från 2002 lägger till objektorientering, men dessa ytterligare funktioner är relativt underanvända.

Språket har en engelsksyntax, som var avsedd att göra det lättare att läsa och skriva. Det är extremt ordalt jämfört med de flesta andra språk: det finns över 300 reserverade ord, och de flesta programmeringsuppgifter kräver fler kodrader i COBOL än de skulle göra på andra språk.

Ett COBOL-program är indelat i fyra divisioner:

  • Identifieringsavdelning, identifierar (namnger) programmet, klassen eller gränssnittet

  • Miljödivision, definierar konfigurationsvärden

  • Data Division, som har sex avsnitt, definierar datamodellen för programmet med hjälp av hierarkiska datastrukturer

  • Proceduravdelning, hjärtat i programmet – innehållande procedurer som bearbetar data.

COBOL-nyckelord skrivs i ALL CAPS, och en enda kodrad följer ett visst format.

Linjerna är 80 kolumner breda (en övergång från punch-kort dagar), med delar av linjen reserverad för speciellt bruk.

Till exempel används antingen de första 6 kolumnerna inte alls, eller helt enkelt används för att manuellt ange radnummer (de ignoreras helt enkelt av kompilatorn – ytterligare ett stoppkort). Efter det:

  • Kolumn 7 anger kommentarer (* eller /), fortsättning från föregående rad (-) eller felsökningskod (d).

  • Kolumner 8-11, kallad område A, innehåller rubriker för avdelningar, sektioner och procedurer, eller nivånummer för datauppsägningar.

  • Kolumnerna 12-72, kallad Area B, är kodformat med fri form

  • Kolumnerna 73-80 lämnas historiskt tomma (för ytterligare information om punchkort).

Här är ett exempel HELLO WORLD:

IDENTIFIKATION AVDELNING.
PROGRAM-ID. exempel-hej.
FÖRFARANDEDELNING.
VISA "HELLO 1977!"
STOPP KÖR.

(Dessa strikta distansformat krävs inte i COBOL-2002, men de observeras fortfarande till stor del.)

COBOL Resurser

COBOL har funnits länge, så det finns många resurser för att lära sig det. Om du arbetar med ett äldre COBOL-projekt, se till att du vet vilken version det är och att dina referensmaterial matchar det.

Uppkopplad

Handledningar

  • COBOL Tutorial från Tutorials Point

  • COBOL Tutorial på Mainframes 360

  • COBOL-programmering – Handledning, föreläsningar, övningar, exempel från Institutionen för datavetenskap och informationssystem vid University of Limerick

  • COBOL-programmeringshandledning

  • ZingCOBOL: En nybörjarguide för programmering i COBOL

  • Så vill du lära dig COBOL? – inte så mycket en självstudie som en “hur och varför man ska lära sig COBOL” -artikel från Millennial Mainframer

  • Läser COBOL-layouter

  • COBOL Tutorial från Academic Tutorials

  • Videoklipp:

    • Skriv första COBOL-programmet, kompilera och köra, en snabb videointroduktion

    • Mainframe Basics with Cobol, en 15-delad videoserie om COBOL och Mainframe computing.

Referens

  • ISO / IEC 1989: 2014, den nuvarande COBOL-standarden (betalad nedladdning)

  • COBOL snabbguide.

Verktyg

  • GNU COBOL Compiler, översätter COBOL till C och sammanställer sedan den, utformad för att fungera med GNU Compiler Collection

  • zCOBOL, en annan COBOL-kompilator

  • Hercules System / 370, ESA / 390 och z / Architecture Emulator, en stordatoremulator

  • Open Source COBOL-verktyg, en samling av GNU-licensierade COBOL-verktyg.

Gemenskap och pågående lärande

  • COBOL Forum på MainframeGuruKul

  • COBOL-programmeringsforum på IBMMainframes.com

  • COBOL Subreddit.

Böcker

  • Börjar COBOL för programmerare av Michael Coughlan

  • Murachs Mainframe COBOL av Mike Murach

  • Cobol Unleashed av Jon Wessler

  • Sams Teach Yourself COBOL om 24 timmar av Thane Hubbell

  • COBOL för 2000-talet av Nancy Stern

  • Avancerat COBOL för strukturerad och objektorienterad programmering av Gary DeWard Brown

  • Murach’s Structured COBOL, av Mike Murach

  • COBOL For Dummies av Arthur Griffith, och missa inte COBOL for Dummies Snabbreferens av John W Fronckowiak

  • The Power of Cobol av Rui Bivar de Oliveira

  • Cobol-programmering av MK Roy.

Ska jag lära mig COBOL?

COBOL är inte coolt, och folk har kallat det ett döende språk i över ett decennium. Det fanns till och med en gravsten för COBOL innan språket till och med slutfördes. Men för alla proklamationer om COBOL: s irrelevans är sanningen att COBOL ännu inte är död.

COBOL användes främst av stora företag – företag som behövde och hade råd med stordatorer på 1960-, 70- och 80-talet. Systemen från den eran som inte har bytts ut är för komplicerade för att lätt kunna byggas om och de är för uppdragskritiska för att riskera att bryta.

Programvarusystem inom så lika branscher som trafikstyrning, hälsoövervakning, försäkringsgaranti, finansiell revision och statlig journalföring fortsätter att driva COBOL, och kommer sannolikt att fortsätta göra det under en tid.

Och de flesta av programmerarna som byggde och underhåller dessa system närmar sig (eller väl tidigare) pensionsålder.

Samtidigt som äldre COBOL-programmerare åldras ur systemet, är yngre programmerare inte mycket intresserade av äldre teknik. IT-chefer i äldre branscher är bekymrade över den kommande COBOL-bristen.

Detta ger en enorm möjlighet för tidiga karriärutvecklare som är intresserade av en stabil och högt betald anställning.

Andra saker att lära sig

Med försvunna sällsynta undantag används inte COBOL för att bygga nya applikationer eller system. Snarare användes COBOL för att bygga många storskaliga affärssystem som fortfarande finns.

En COBOL-programmerare kommer sannolikt att spendera sin tid på att underhålla äldre system, konvertera COBOL-applikationer till modern teknik eller bygga broar mellan COBOL-applikationen och andra system.

Det mesta av detta arbete kommer ofta att vara på stora stordatorer; med väletablerade företag; i mogna branscher som finans, sjukvård, myndigheter och transport.

Med tanke på att detta är det ekosystem där den mest moderna COBOL-utvecklingen sker, finns det ett antal ytterligare tekniker som en programmerare behöver för att göra COBOL-färdigheter relevanta och värdefulla.

Här är en kort lista över färdigheter som passar bra ihop med COBOL och länkar till resurser för lärande:

  • Mainframe Computing

    • Vad på jorden är en huvudram? av David Stephens

    • Kundinformationssystem (CICS®)

    • Murachs CICS för COBOL-programmeraren av Menendez och Lowe

    • Designa och programmera CICS-applikationer av Horswill et al

    • Job Control Language (JCL), ett automatiseringsspråk som används mycket i COBOL-miljöer

    • Murachs OS / 390 och z / OS JCL av Menendez och Lowe

    • System 390 jobbkontrollspråk av Gary DeWard Brown

    • DB2 för COBOL-programmeraren, del 1 av Garvin och Eckols, och DB2 för COBOL-programmeraren, del 2 av Garvin och Prince.

  • Nyare teknologier på företagsnivå, till exempel:

    • .NET och C #

    • Java

    • ABAP

  • Andra äldre språk, som:

    • Fortran

    • Erlang

    • Vidare

  • Systemprogrammeringsspråk, som C, C ++ och D.

  • Datatransportteknologier, särskilt XML och SOAP

  • Verktygsskriptspråk som Perl och Python

Ytterligare läsning och resurser

Vi har fler programmeringsguider, handledning och infografik relaterade till kodning och utvecklarresurser:

  • Assembly Language Introduktion: oavsett om du använder det direkt och lär dig det bara för att förstå vad som verkligen händer på hårdvarunivå, är monteringsspråk en bra sak att veta.

  • Bash-programmeringsresurser: om du kodar COBOL kommer du förmodligen att använda en kommandoradsmiljö. Här är din chans att lära sig en av de bästa.

  • NXT-G-programmeringsresurser: okej, det här har ingenting med COBOL att göra. Men efter en lång dag med kodning, skulle du inte njuta av att skapa LEGO-robotar?!

Vilken kod ska du lära dig?

Förvirrad om vilket programmeringsspråk du ska lära dig att koda på? Kolla in vår infographic, vilken kod ska du lära dig?

Det diskuterar inte bara olika aspekter av språken, det svarar på viktiga frågor som “Hur mycket pengar ska jag tjäna på att programmera Java för att leva?”

Vilken kod ska du lära dig?
Vilken kod ska du lära dig?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map