Jasper will be implemented in 4 stages.

First, it will be implemented in Jasper. Although this implementation won't be executable (except by hand), this will allow us to refine the languge based on what we need to implement Jasper itself.

Second, it will be implemented in Racket via metaprogramming.

Third, it will be implemented on a platform that can give us low-level control over the runtime. It has not yet been decided which technology will be used here (e.g. which language will be the immediate compilation target, and how the runtime will be constructed, or if we will use an existing runtime).

Fourth, compilers for Jasper into various popular languages and VMs will be created.

-- run grammar thru an LL(1) parser generator just to make sure that it's really LL(1)

-- predictive recursive descent parser with pratt operator precedence parsing for parsing


i guess one of our first compile targets should be elisp so that we can easily write an emacs ide; i guess we should have a vimscript target too for similar reasons?


see jasperSelfImplementation, jasperImplementation2, jasperImplementation3, jasperCore