14 comments

[ 3.1 ms ] story [ 36.8 ms ] thread
Ok, that's cool, but what does it mean for a Basic language compiler to be isomorphic?
I was curious as well. Apparently in this context: IT IS “ISOMORPHIC” because it guarantees that the translation into machine code is done in the way closest to the execution target, REGARDLESS OF WHICH IT IS. https://retroprogramming.iwashere.eu/midres_library:isomorph...
So a BASIC compiler with back-ends for multiple architectures/platforms?

Interesting challenge/dream: make something like this (for computers of that era) that is able to compile itself.

Reading through all of that, they're saying that they avoid a jungle of ifdefs to support multiple similar architectures, and they say the way to this is "isomorphism", which is supposed to be the opposite of abstraction.

Ok I get the gist, but no examples; how do they achieve that? A different page gives a list of supported calls, which seems to make it clear that what they did was a (probably a good job of) factorization of the problem domain into a set of standardized library calls [1] that model the abilities of the entire set of architectures closely. Applications/games can then use that library without #ifdef'ing for different architectures and still get highly efficient results.

Very clever, but of course they don't claim that their approach generalizes to very different architectures, like say X11 on RISC-V or something.

[1] https://retroprogramming.iwashere.eu/midres_library:function...

just curious about your example X11 on riscv, if asked, my naive answer would have been X11 is mature, stable, well tested code and would run on risc-v without too much trouble
The point is that their "isomorphic" graphics library generalizes over only the typical capabilities of early 1980s 8-bit systems with sprites etc. X11, Wayland etc have a thousand times as much capability.

Their solution is possibly an elegant solution to their problem space, without the ability to generalize much further than that. As far as I can see from the material.

In the link I gave, the names of the library functions, and shortness of that list, suggests that all by itself.

What does that even mean?
This is cute but I'd rather get the energy into the 8-bit Unity project:

https://8bit-unity.com/

Not just because I've got all of these machines in my collection, but also because the 8-bit Hub, which is a bit of hardware that allows all of these machines to get on the Internet, play multiplayer games, etc. - IS AWESOME!

Not to discourage those who want to build isomorphic translators. Just that, there are other projects of this ilk which are a step beyond ..

Just installed and am playing with this. Actually there are very few compilers of this ilk, particularly for my preferred platform on the CoCo.

In fact, I know of no BASIC compiler with a modern IDE that outputs 6809 assembly to a disk file for running on that machine. I can use old compilers that aren't supported anymore, but this is the only modern BASIC for the CoCo. I bet that's also true for many of the other platforms ugbasic support.

And considering once I'm done with my CoCo project it's very likely to work with other platforms with little to no changes, and the whole thing is open source, this is an amazing project!!

[dead]
>This is cute but I'd rather get the energy into the 8-bit Unity project:

Unless I am missing something, 8-bit Unity is not even Open Source.

Not supporting. No.

Sorry if this is spammy but I run a BASIC discord for all variants here

https://discord.gg/Sm2UBQqB9u

Jump in especially if you've had a chance to work in ugbasic to chat about it.