![os-9 68k emulator -mac -macos dsk image os-9 68k emulator -mac -macos dsk image](https://2.bp.blogspot.com/-hMi2sg_1-zo/U_SKYnvcdcI/AAAAAAAAHqo/LaVhX2HbeQI/s1600/winuae053.png)
In a normal tokenized system, the expression runtime has to account for the operator precedence AT runtime to properly evaluate this expression. But since the DEC BASICs WERE compiled, rather than just interpreted raw, the system was able to take statements like this and rewrite them internally to be more "normal".Īlso, consider: 10 A = 1 + 2 * 3 / 2 + 4 * SQR(2) Put in "invisible tokens" or whatever specifically to support this kind of construct, but in the "every byte counts" of vintage BASICs, that's a lot of work for not a lot of value. But you can easily see the runtime encountering the SUM10 = SUM10 + A(I) with out knowing that it should do so yet (due to the IF statement) or even that I is properly in range or not (since it's not even been initialized properly yet). Token based runtimes, much like i-code, simply take what they see and execute it in the context their in.
![os-9 68k emulator -mac -macos dsk image os-9 68k emulator -mac -macos dsk image](http://amiga-storage.net/Emulation/DOSBox_AGA_0.74.013.jpg)
While this could be represented in tokenized form (in order to regenerate the source line), it can not be easily interpreted executed from that tokenized form. They used "statement modifiers".Ĭonsider: 10 SUM10 = SUM10 + A(I) IF A(I) > 10 FOR I = 1 TO 10 With i-code, you can't do that.Īnother example is if you look at the DEC BASICs. Many BASICs, when you type LIST, simply parrot back out the tokenized data in long form. I can't speak to BASIC09 specifically, but there's quite a difference between an "i-code" and a tokenized form.Īt a minimum, the i-code, in the end, need not look at all like the source code, whereas the tokenized form effectively IS the source code.