I did the Dijkstra algorithm in Acucobol

Just FYI.  Learning about routers, I ran across Dijkstra’s famous algorithm, and in researching it I found that the guy was a real COBOL hater. His words, circa 1975, were something like, “The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.”  So naturally I had to write a program which would execute his algorithm in COBOL!!

I drew on paper an ad hoc network of about 25 interconnected nodes, with a couple stubs, and transcribed the connections and associated costs into working storage.

Took me two solid tries and some debugging, and sure it could be optimized, but was a fun and educational effort. The trickiest part was keeping track of the various subscripts of several tables. The way I did it, one table had two different subscripts in action at the same time.  Expression of satisfaction.

I'm thinking of doing a spanning tree protocol example in COBOL next.

  • Long live COBOL. I must confess we use many different languages in our software, and as far as I am concerned COBOL is king. When I asked the net programmer to put his program in debug mode, he said I can't, unless the end user has the tools necessary for me to work with him, this was a lesson well learned, I try to do everything from within COBOL if possible, and so far its been possible.

    Great job.
  • Dijkstra was a great computer scientist, but he was also a grade-A curmudgeon. It's unfortunate that he's best known for two short, controversial essays: the "Uncomfortable Truths" one you quoted, and "Go To Considered Harmful" (a title which was actually concocted by the CACM editor who printed Dijkstra's letter).

    The "Go To" piece and D's subsequent writing on the subject make good points, but too many people just get in pointless arguments over branching as a primitive operation and so forth and never get to the useful aspects of the discussion.

    "Uncomfortable Truths", on the other hand, really doesn't say anything useful at all. There are many things to be said about the relative merits of programming languages - though it would be a lot more productive if the people saying them would do some actual methodologically-sound research - but sniping at ones you don't like isn't productive. It's entertaining as a classic religious-war rant, and that's it. (And note D. also hated FORTRAN, BASIC, APL, and most of the other programming languages available at the time.)

    All that said, congratulations on successfully implementing Dijkstra's Algorithm. COBOL, whatever its merits and faults, isn't the easiest language for implementing graph algorithms.