tinylang, compiled

an expression language that compiles to bytecode, run on a stack machine

the other tinylang is concatenative — you write the stack operations directly and it interprets them. this one is different: you write something that looks like a normal little language (variables, if, while, arithmetic), and it gets compiled to a flat bytecode that a stack machine runs. the disassembly panel shows the actual instructions. the whole thing — lexer, parser, compiler, vm — is a few hundred lines.

ctrl/cmd+enter also runs

source

output


    

bytecode


  

the language

numbers, strings, variables, + - * / %, comparisons == != < <= > >=, if / else, while, print. statements end at a newline or ;. # starts a comment. uninitialized variables read as 0. dividing by zero gives 0 (documented, not a crash).