So, in trying to rewrite DFLangCreate in a language I can actually work on, I had run into a few issues:

  1. I don’t have a compiler for the original language.
  2. I don’t know the orignal language.
  3. I can’t run the original .exe in a debugger.
  4. I don’t know what exactly the original procedures are outputting, only the overall program.

So, while I had both the original version and later a decompiled C# version of it to go by for my line-by-line translation, I had no direct way to verify how true to the original I was being. I could go by what I know of C# and infer most of what the corresponding Java would be, and be left with those KPL standard library functions… (This actually gets surprisingly close: by and large the three have identical behaviour in the simple cases, and DFLangCreate largely sticks with these)

Here’s my progress on that little problem: …Link that used to be an image

:)

So there it is, looks about identical to the original, but this time it’s in the Visual Studio debugger. Basically, this is Jetbrains’ DotPeek output in VS, with the two .dll files that shipped with the program linked in as references. Had to rename every use of the KPL standard library functions, since I guess their original use was slightly different than the import I did. If I missed something when I did that which is now subtly changing the (random) output language… Well that’ll be fun to find. But, I now have a baseline to test against. Could even make this the official version, seeing as it’s basically the original with some automatic transformations applied…

Or Java. He’d said he wanted to rewrite in Java, I know Java, and Java makes Linux + Mac vaguely easier to do.

Next steps will probably be… Studying the original further, and trying to duplicate its behaviour in the Java version. If I want to keep the C# version much longer, I’ll probably need to remove its dependancy on the KPL standard library. If I don’t even have access to the license requirements of the compiler + runtime library, I’ll just assume I need to get rid of those before I can even think about distributing / open-sourcing the C# version.

(Have permission from DFLangCreate’s author to share my own rewrite of it, if you’re wondering about that. Once it’s working it’ll be available under an open source license.)