Part 1: SSTNPL Integer background
SSTNPL (A Programming Language for my Balanced Ternary VM: SBTCVM), f has always had integer variables, as they were part of its original design. creating & using integer variables in SSTNPL is easy enough:
#create 3 variables using: decimal, ternary, & a character value.
var bob=@11
var bob2=*+0-
var bob3=:L
#dump the decimal values of each variable to SBTCVM's Terminal
dumpd bob
dumpd bob2
dumpd bob3
Part 2: The Integer Literal Syntax
However, we can also just use SSTNPL's 'literal' syntax, that's supported on most integer input arguments:
#same as above, just using the 'literal' syntax
dumpd @11
dumpd *+0-
dumpd :L
Part 3: The builtin constants
Whats changed in SSTNPL, is the introduction of a special, forth 'literal' syntax: the constant. Currently, SSTNPL has 2 of them builtin:
#$true=1, $false=0
dumpd $true
dumpd $false
Part 4: Use a custom constant to store a module's version number.
while there are still some holes (you can't use constants in var & val statements yet for example), We can use constants to provide static values that when not used, don't use up Memory:
for example, in an SSTNPL module called 'bob':
const version=@15
That way we could write an SSTNPL program like this:
#print version of bob module
prline Bob version:
dumpd $b.version
#wait for keystroke, then power-off the VM
keyprompt
stop
include bob as b
Conclusion
While SSTNPL & SBTCVM are still technically in alpha, and aren't that useful for practical purposes, I've put a lot of work into both, & hope others find programming a Balanced Ternary VM as interesting as I do.
SBTCVM Gen2-9 On github: https://github.com/SBTCVM/SBTCVM-Gen2-9
SSTNPL Language docs: https://github.com/SBTCVM/SBTCVM-Gen2-9/tree/master/textdocs/SSTNPL
Top comments (0)