[HN Gopher] UgBASIC - An isomorphic BASIC language compiler for ...
       ___________________________________________________________________
        
       UgBASIC - An isomorphic BASIC language compiler for retrocomputers
        
       Author : reaperducer
       Score  : 49 points
       Date   : 2023-04-02 10:05 UTC (12 hours ago)
        
 (HTM) web link (ugbasic.iwashere.eu)
 (TXT) w3m dump (ugbasic.iwashere.eu)
        
       | DougMerritt wrote:
       | Ok, that's cool, but what does it mean for a Basic language
       | compiler to be isomorphic?
        
         | mysterydip wrote:
         | 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...
        
           | sedatk wrote:
           | What does that even mean?
        
           | marcodiego wrote:
           | 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.
        
           | DougMerritt wrote:
           | 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:funct
           | ion...
        
             | somat wrote:
             | 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
        
               | DougMerritt wrote:
               | 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.
        
       | somesortofsystm wrote:
       | 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 ..
        
         | behringer wrote:
         | 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!!
        
         | snvzz wrote:
         | >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.
        
       | behringer wrote:
       | 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.
        
       | bitwize wrote:
       | It reminds me of Turbo Rascal Syntax Error:
       | https://lemonspawn.com/turbo-rascal-syntax-error-expected-bu...
        
         | joshu wrote:
         | this looks amazing, thank you
        
       ___________________________________________________________________
       (page generated 2023-04-02 23:01 UTC)