Skip to content
Jason Nyberg edited this page Mar 7, 2018 · 4 revisions

minus.png

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!)

Clone this wiki locally