Skip to content

Do something crazy and implements solutions of https://adventofcode.com in your favorite programming language.

License

Notifications You must be signed in to change notification settings

bastie/AdventOfCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Advent Of Code Cobol

Einfach mal verrückt sein und mit der wohl einfachsten Programmiersprache überhaupt COBOL Advent of Code Rätsel lösen.

COBOL

Die Common Business Oriented Language (COBOL) ist eine Programmiersprache, welche mit den Zielen

  • standardisiert
  • hardwareunabhängig
  • lösungsorientiert
  • für den kaufmänischen / betriebswirtschaftlichen Bereich

entwickelt wurde. COBOL verschwendet wenig Energie auf elegante Syntaxspielereien, Algorithmen und Klickidiebunt-Oberflächen. Dafür wird Wert auf einen lesbaren Programmtext gelegt, welcher sich doch passend an der englischen Sprache orientiert, so dass fast schon Fließtext erkennbar ist. Es liegt also wieder an uns Programmierern durch kryptische Strukturen, Namensgebung und Algorithmen unverzichtbar zu machen.

Aber hey wir sind Programmierer, wir bekommen das doch in jeder Programmiersprach hin.

Installation

Es gibt verschiedenste COBOL Compiler und die Konfiguration des Compiler ist die erste Möglichkeit uns unverzichtbar zu machen. Mit den richtigen Schaltern ob beim Aufruf des Compilers auf der Kommandozeile - ja das ist dieses meist schwarze Fenster liebe GUI-Kinder und das wird hier genutzt - in Konfigurationsdateien oder auch direkt im Quelltext können wir verschieden COBOL-Dialekte und Sprachversionen einstellen.

Hier wird der GNU-COBOL-Compiler genutzt, ehemals OpenCobol, da er auf den häufig verwendeten Betriebssystemen verwendbar ist. Aber auch andere COBOL Compiler Hersteller sind sicher verwendbar, allerdings sind zumindest auf dem Hauptrechnern die abweichenden Art auf Dateien zuzugreifen zu beachten.

Unter macOS kann man Homebrew einsetzen und mit brew info gnucobol installiert werden. Auf dem zweiten Bildschirm läuft nebenbei der COBOL Programmers Guide oder die 42. Wiederholung von Per Anhalter durch die Galaxis.

Compilieren

Natürlich können und wer den falschen COBOL Compiler einsetzt muss sogar wir COBOL im Sinne der guten alten Zeit mit 80 Spalten einsetzen und auch auch einen Feuerbohrer einsetzen um dann Kaffee zu kochen. Oder wir nutzen das free-format und bleiben in diesem Jahrtausend.

cobc -x -free -o wherearemygifts.exe christmas.cob
  • cobc ist der COBOL Compiler
  • -x um eine ausführbare Datei zu erstellen
  • -free wir nutzen das free-format
  • -o wherearemygifts.exe die Ausgabe soll in die Yippi.exe erfolgen und das .exe ist zwar nur unter Windows notwendig, aber funktioniert auch auf den anderen Betriebssystemen
  • quelltext.cob die Datei in der wir den COBOL-Quelltext haben mit einer typischen Endung. Gern wird auch .cbl verwendet und .cpy ist für einen Spezialfall auch gern verwendet.

Der Quelltext für die Datei christmas.cob:

       IDENTIFICATION DIVISION.
       PROGRAM-ID. HiSanta.

       PROCEDURE DIVISION.
         DISPLAY "Hello Santa"
       STOP RUN.
      *EOF

OK, die Datei wäre auch ohne -free compilierbar.

Programmieren mit COBOL

Anwendungsprogramme mit COBOL entwickeln ist einfach und Anwenderprogramme mit COBOL entwickeln ist kompliziert. Es war einmal vor langer Zeit, als Telefone noch mit seltsamen Dräthen an der Wand befestigt waren, da wurde COBOL entworfen. In einer Zeit wo es kein Computer in der Hosentasche oder auf dem Schreibtisch stand, wo auch keine grafischen Oberflächen existierten, war die Verarbeitung von komplexen Berechnungen mit FORTAN oder auch vielen Firmendaten mit COBOL bereits notwendig. Voll ökologisch wurden Programme noch auf kompostierbaren Lochkarten geschrieben.

COBOL wurde ursprünglich rein in Großbuchstaben programmiert und der Compiler erwartet den eigentlichen Quelltext ab Spalte 8. Spalte 7 dient einer besonderen Auszeichnung für die Zeile. Ein Ganzzeilenkommentar hat in der Spalte 7 ein Asterix *. Eigentlich ist bei Spalte 72 dann Schluss und ...

Zurück zum free-format. Alles was wir wissen müssen ist:

  • COBOL Quelltext unterteilt sich in Abschnitte als DIVISION benannt.
  • Eine DIVISION können wieder unterteilt sein in SECTION Abschnitte.
  • Innerhalb der SECTION sind weitere Unterteilungen möglich, wie Paragraphen.
  • Mit dem Asterix gefolgt von einem größer als Zeichen *> können wir Kommentare in der Zeile einleiten.
  • COBOL Quelltext ist strukturiert, erst die Daten definieren dann die Algorithmen.

About

Do something crazy and implements solutions of https://adventofcode.com in your favorite programming language.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages