Edmund Griffiths  

E d m u n d   G r i f f i t h s




Just another COBOL program

It appears that people who enjoy programming in Perl—which its creator, Larry Wall, has called ‘the first postmodern computer language’—sometimes like to write highly obscure little programs whose only result is to display some variant of the message ‘Just another Perl hacker,’ on the screen. Well, anything that the postmodern scripting languages can do, the Common Business-Oriented Language can do too; so here is a first attempt at implementing an equivalent in the language your bank account speaks. If for some reason you are reading this on a device without a COBOL compiler installed on it, you can view the output from the program here.


IDENTIFICATION DIVISION.
PROGRAM-ID. JUST-ANOTHER-COBOL-PROGRAM.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  THE-ELEMENTS.
    05 EARTH PIC 9 VALUE 1.
    05 AIR PIC 9.
    05 FIRE PIC 9.
    05 WATER PIC 9.
01  COSTLY-BUT-TASTEFUL-ADORNMENTS.
    05 CORAL PIC A(3).
    05 SAPPHIRES PIC A(3) VALUE 'HER'.
    05 A-NECKLACE PIC A(26).
    05 OF-POLISHED-STONE PIC A(8).
    05 BEADS PIC A(4).
01  WHAT-THE-JEWELS-DO.
    05 SHINE PIC A.
    05 GLEAM PIC A.
    05 GLITTER PIC 9.
    05 SCINTILLATE PIC A(5).
01  I-LIKE-IT.
    05 LIKE PIC A(4).
    05 THAT PIC A(6).
PROCEDURE DIVISION.
THE-PLANET-ITSELF-IS-A-SAPPHIRE-SURROUNDED-BY-BLACK-VELVET.
    MOVE EARTH TO GLITTER.
    MOVE SPACE TO SHINE.
    PERFORM APPROPRIATE-CEREMONY THROUGH A-HAZE-OF-NOSTALGIA.
    STRING BEADS OF-POLISHED-STONE THAT GLEAM LIKE CORAL INTO A-NECKLACE.
    DISPLAY A-NECKLACE.
    STOP RUN.
APPROPRIATE-CEREMONY.
    PERFORM ALCHEMICAL-OPERATIONS.
    MOVE 'CENOTAPH' TO OF-POLISHED-STONE.
LEARN-TO-CUT-THE-HARD-STONES-WITHOUT-ERROR.
    MOVE 'ERROR' TO CORAL.
    PERFORM BLACKBOARD-EXERCISES.
    PERFORM VARYING GLITTER FROM FIRE BY AIR UNTIL GLITTER IS GREATER THAN WATER,
    MOVE 'OBSIDIAN' TO THAT (GLITTER:EARTH),
    END-PERFORM.
SEE-HOW-THE-LIGHT-DANCES-BETWEEN-THE-COLOURED-STONES.
    ADD EARTH TO GLITTER.
    MOVE 'JEWELS' TO BEADS (EARTH:EARTH).
    MOVE SHINE TO THAT (EARTH:EARTH).
A-HAZE-OF-NOSTALGIA.
    MOVE SAPPHIRES TO OF-POLISHED-STONE (GLITTER:FIRE).
    MOVE SHINE TO GLEAM.
    MOVE SCINTILLATE (AIR:WATER) TO LIKE.
    MOVE '...' TO CORAL (FIRE:WATER).
BLACKBOARD-EXERCISES.
    MOVE 'SCHOOL' TO THAT.
    MOVE 'CHALK' TO SCINTILLATE.
    MOVE 'DUST' TO BEADS.
    MOVE ' A' TO OF-POLISHED-STONE (EARTH:AIR).
    MOVE 'B' TO THAT (WATER:EARTH).
    MOVE 'C' TO SCINTILLATE (WATER:EARTH).
ALCHEMICAL-OPERATIONS.
    ADD GLITTER TO EARTH GIVING AIR.
    ADD GLITTER TO AIR GIVING FIRE.
    ADD EARTH TO FIRE GIVING WATER.