<html><head><meta http-equiv="content-type" content="text/html; charset=us-ascii"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><blockquote type="cite"><br>Given that background, I will be *fascinated* to see what a strongly<br>typed Forth looks like.<br></blockquote><br><div>Me too :D</div><div><br></div><div>The general idea is that instead of one stack per type (nightmarish), a single data stack holds all the guff as it happens, then, I have mulled over either:</div><div><br></div><div>1. Reworking "{" and "}" so that you have to specify the types, eg { val1:int val2:str } sort of thing</div><div><br></div><div>OR</div><div><br></div><div>2. Introduce a word, SIGNATURE (or SIG) so that you can specify the type signature i.e the stack expectation when the word gets called, it will then, using (1) above as the example, </div><div><br></div><div><font face="Andale Mono"> "int uint8 str" SIGNATURE [WordName]</font></div><div><br></div><div> * ensure there are two items on the stack</div><div> * ensure the types are as expected</div><div><br></div><div>Something like that, for now I am just getting the basics down, I've done IF/ELSE/THEN(ENDIF), DO...LOOP to see how control words pan out, nicely, as it happens. As I am not a real CPU, the internal representation of a word is a tree containing the various VM opcodes, so an if then is</div><div><br></div><div> if_then(VmTrue, VmFalse)</div><div><br></div><div>so, if TOS is 'true' I execute the first code block, else the second.</div><div><br></div><div>Yes, I can't wait to see what it looks like either, I might be tempted to make a YT video? Been putting it off for years...</div><div><br></div><div>Sean.</div><div><br></div></body></html>