Code-Area51.com

Cobol op Mac OSX

Inleiding

Tijdens mijn studies Toegepaste Informatica aan de Katholieke Hogeschool Leuven kregen wij het vak Programmeren van Administratieve Toepassingen. In dit vak leerden wij werken met Cobol. Cobol is alleen beschikbaar voor Windows en aangezien ik slechts beschikking had over mijn MacBook had ik een probleem.

Na een korte tocht langs Google bleek dat er zoiets was als OpenCobol, een open source implementatie van Cobel, die wel werkt op OSX. Na ettelijke uren proberen en herdoen, ben ik er dan uiteindelijk in geslaagd om Cobol draaiende te krijgen op Mac.

Omdat de uitleg op de website van OpenCobol niet voldoende is, is er nu deze step-by-step tutorial voor mensen die in hetzelfde schuitje zitten als ik en thuis slechts beschikking hebben over OSX en het vertikken om hun prachtmachine te vervuilen met een Windowsinstallatie.

Ik heb het enkel gedaan voor Leopard, maar het zou ook (nog) mogelijk moeten zijn voor Tiger of Panther. De laatste keer dat ik OpenCobol geïnstalleerd heb was in februari 2009. Ondertussen is ook Snow Leopard uit, dit heb ik ook niet getest. Voor elke versie van OSX geldt normaal gezien dat je gewoon de juiste Developer Tools en MacPorts versie moet installeren en dan zou het moeten lukken. UPDATE: ondertussen heeft een bezoeker mij gemeld dat het ook correct werkt onder Snow Leopard.

Installatie-instructies

Het is HEEL belangrijk dat je deze stap voor stap volgt! Als je een stap overslaat, dan kan je problemen krijgen bij het uitvoeren van Cobol-code.
Voor mensen die niet zo bekend zijn met Terminal: als het sudo-command meegegeven wordt, dan gaat Terminal naar je wachtwoord vragen. De installatie kan dan ook enkel uitgevoerd worden op een account met beheerdersrechten.

Apple Xcode Developer Tools

Deze tools zijn gratis maar worden niet standaard geïnstalleerd bij levering van de Mac. Je kan de "Xcode voor Mac Development" installatie terugvinden op de DVD die meegeleverd werd met je Mac.
Heb je niet direct toegang tot deze DVD maar wil je toch zo snel mogelijk aan de slag, dan kan je eveneens gratis de laatste versie downloaden op http://developer.apple.com/technology/xcode.html (994MB!!)

Als de download volledig binnen is, dan moet je enkel nog de installatie uitvoeren en je bent al een stap dichter bij je dromen om succesvol Cobol te programmeren op je Mac.

MacPorts

Download MacPorts voor Leopard hier. (Mocht je zin hebben om het te proberen te installeren op Tiger, Panther of Snow Leopard, download dan de correcte MacPorts versie hier.
Na de download ook gewoon installeren, we krijgen nog steeds een mooie GUI dus dat kan geen probleem zijn.

GMP

Vanaf nu gaan we een beetje zitten rommelen in de Terminal, terug te vinden in Applications->Utilities->Terminal
We gaan eerst GMP installeren, in de Terminal geven we dit in:

cd /opt/local/bin
sudo ./port install gmp

Ncurses

Ncurses is nodig voor DISPLAY en ACCEPT
In de Terminal geven we dit in:

cd /opt/local/bin
sudo ./port install ncurses

Oracle Berkeley DB

Oracle Berkeley DB is nodig om SORT te kunnen gebruiken en om bestanden te manipuleren (ik heb gehoord dat we nog iets met bestanden gaan doen, dus heb ik het maar mee geïnstalleerd).
Je moet op deze pagina het bestand "Berkeley DB 4.7.25.tar.gz" (of de laatste production release) downloaden. Als het gedownload is (en het kan wel eventjes duren want het is best een trage server), dan moet je het uitpakken en weer terugkeren naar de Terminal.

In de Terminal geven we dit in:

cd /PATH_TO_EXTRACTED_FILES/db-4.7.25/build_unix
../dist/configure --prefix=/usr/local
make
sudo make install

OpenCobol

Als dat allemaal gelukt is, dan zijn we eindelijk aanbeland bij de uiteindelijke installatie van OpenCobol.
Ikzelf heb gekozen voor de Pre-Release versie 1.1 omwille van de meer up to date code, maar de installatie blijft hetzelfde bij de stabiele 1.0 release.

Download: 1.0 of 1.1 en na het downloaden mag je het Tar-bestandje ook weer eventje extracten en terugkeren naar de Terminal.

We voeren dit in:

export LDFLAGS="-L/opt/local/lib"
export CPPFLAGS="-I/opt/local/include"
cd /PATH_TO_EXTRACTED_FILES/open-cobol-1.1
./configure
make
sudo make install

Installatie testen

Voer in de Terminal dit in:

ls /usr/local/bin/cobc
/usr/local/bin/cobc -h

Gebruik

Men gebruikt OpenCobol ook gewoon via de Terminal. Om te compilen ga je eerst naar de dir met je Cobol-bestand in (stel 'vbld.cbl') en dan voer je volgende code uit:

cobc vbld.cbl

Om de code dan uit te voeren, gebruik je volgend commando:

cobcrun vbld

Eigenaardigheden

Er zijn een aantal eigenaardigheden in het gebruik van Cobol via OpenCobol. Dit zijn slechts de dingen die ik op mijn korte testperiode opgemerkt en opgelost heb.

Benaming

Als je een bestandje schrijft, en je noemt dat 'naam.cbl' dan MOET je ook het volgende doen:

PROGRAM-ID. naam.

Als beiden niet hetzelfde zijn, dan zal je een 'Symbol not found' error krijgen.

No Beep

Dit werkt niet in OpenCobol. Gelukkig maken onze superieure machines die lelijke geluiden sowieso niet!

Bestandsbeëindiging

OpenCobol zal geen bestand uitvoeren dat niet eindigt met een 'newline'. Voordat je compileert, zal je eerst een witregel moeten toevoegen op het einde van je bestand (na STOP RUN.).

Eventuele vragen of problemen

Mochten er nog vragen of problemen zijn bij de installatie, dan mag je mij altijd contacteren.

Ter verduidelijking: de 'grapjes' zijn in geen geval aanvallend bedoeld, maar er een knipoog smiley achter zetten vond ik toch niet echt passend ;)