• Re: [Rock Brentwood] Fortran to C/C++ translation: a running example.

    From Ian Lance Taylor@21:1/5 to All on Mon May 16 15:38:29 2022
    From: Rock Brentwood <rockbrentwood@gmail.com>
    The classic text-based computer game Zork / dungeon was originally devised on MIT computers in a LISP-offshoot (MDL), and translated to Fortran 77 by an "Anonymous" author. Some time later an enterprising soul converted a version of the Fortran edition of Zork into C ... pre-ANSI C ... with the aid of an earlier version of "f2c", but left no detailed paper trail behind on the actual translation process and stages.

    Just FYI I was the enterprising soul who translated the code from Fortran
    to C. I still have at least some of the intermediate files. Happy to
    answer any questions.

    That said, most of the work was manually rewriting the f2c output into something more C like. For me this wasn't an exercise in translation
    between languages, it was an exercise in making a version of Zork more available. So I probably don't have anything useful to add that is
    relevant to the compilers list.

    In particular I changed the format of the data file. I wrote a translation program between the old format, a new format, and a text format. The text format let me make minor changes to things like the leaflet text.

    Ian

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lydia Marie Williamson@21:1/5 to Ian Lance Taylor on Fri May 20 16:44:18 2022
    On Monday, May 16, 2022 at 6:08:05 PM UTC-5, Ian Lance Taylor wrote:
    Just FYI I was the enterprising soul who translated the code from Fortran
    to C. I still have at least some of the intermediate files. Happy to
    answer any questions.

    I can interleave your in-between states into my GitHub sequence as a parallel side-branch, if you wish. That will significantly help close out another loose end that I hadn't yet fully resolved.

    In particular I changed the format of the data file. I wrote a translation program between the old format, a new format, and a text format. The text format let me make minor changes to things like the leaflet text.

    I reverted back from character-based to a compromise between streaming and records - something that's also friendly to Fortran 2018.

    It just so happened, that later Fortran versions also included made a story
    and index file compiler - one that's similar to what I have. That will be integrated into the GitHub sequence, as well.

    Most of the issues with translation (as you'll see in the history log I kept, in the repository) were dealing with the I/O functions - with quite a few changes made on the Fortran side, even before translating to C. Fortran has streaming I/O now, which helps tremendously.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)