-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Jason Nyberg edited this page Mar 7, 2018
·
4 revisions
Welcome to my j2 project wiki!
"j2" is the placeholder name for the 2nd generation of a concatenative programming language I've been working on for a decade or so... The first generation was called "jli" for "Jason's command-line interface", where I embodied my collected thoughts on bash, lisp, forth, joy, factor, and many other influences.
The language is, in my mind, an "executable dictionary"; Basically, it presents an environment in which you can:
- Define values ("literals"), which by default are pushed onto an anonymous stack;
- Name (and retrieve by name) values, in a hierarchical dictionary, where each named node is a double-ended queue (i.e. a "listree").
- "Evaluate" the Top Of Stack, either anonymous or named. ("Evaluations" may push/pop to/from stack- or named-values.)
The syntax is ultra spare, as is common with concatenative languages;
[a literal] #that will be pushed onto the stack
@named.value #name the top of stack
named.value! #retrieve and then evaluate the TOS. (two operations!)