Skip to content
Newer
Older
100644 60 lines (38 sloc) 2.01 KB
31f0e72 @leto And then there was a README
authored
1 Jaspers - Javascript on Parrot Virtual Machine
2 ==============================================
3
4 Jaspers is an implementation of Javascript on the Parrot Virtual Machine. Exactly
5 which flavor of JS to use has not been decided yet.
6
35595e0 @leto Update readme with recent design decisions
authored
7 Currently Jaspers uses NodeJS to execute our Javascript parser. We are still in
8 the bootstrapping stage.
9
31f0e72 @leto And then there was a README
authored
10
11 Features
12 --------
13
e86ff4e @leto Update readme
authored
14 Parses javascript with a PEG.js-generated parser. This is a JSON datastructure.
35595e0 @leto Update readme with recent design decisions
authored
15 Jaspers is currently known to work with Nodejs 0.2.5 and 0.4.4.
874ff92 @leto Add some Vision to the README
authored
16
4393bad @leto Add a note about how to try Jaspers in the readme
authored
17 Trying Jaspers
18 --------------
19
20 Jaspers has a very limited feature set right now, but if you want to kick the tires,
21 you can run
22
23 node jaspers.js
24
874ff92 @leto Add some Vision to the README
authored
25
26 Vision
27 ------------
79d8b60 @leto Attemp to make pretty URLs
authored
28
203c7e2 @leto Improve and prettify readme
authored
29 Current plans are to generate a stage 0 compiler with [PEG.js][pegjs_homepage],
30 similar to what is described in [whiteknight++'s blog post][whiteknight]. This stage 0
35595e0 @leto Update readme with recent design decisions
authored
31 compiler will use PEG.js to parse Javascript and emit PIR. Node.js is currently
32 being used to bootstrap the stage 0 compiler. Once a stage-0 compiler exists,
33 NodeJS will not be necessary.
874ff92 @leto Add some Vision to the README
authored
34
35 Parrot will then turn stage 0 into bytecode and a fakecutable, and then the
36 stage 0 compiler will be used compile the source code to itself, thus
37 generating a bootstrapped stage 1 compiler, full of unicorns dipped in fairy dust.
38
35595e0 @leto Update readme with recent design decisions
authored
39 It has not yet been decided what the stage-0 compiler should target. Currently the
40 choices are PIR/PAST/POST/PBC.
41
54c019c @leto Add a link to Sputnik in the README
authored
42 Sputnik, a Javascript conformance test suite, looks like it could be very useful:
43
44 http://sputnik.googlelabs.com/
45
59bb43c @leto Add some links to README
authored
46 Fellow Travelers
47 ---------------
203c7e2 @leto Improve and prettify readme
authored
48 This blog post about implementing a lisp with PEG.js and node [using_pegjs] is a good
49 example of using PEG.js, and this presentation by Bryan Ford is a good
50 theoretical introduction to Parsing Expression Grammars [peg_theory].
874ff92 @leto Add some Vision to the README
authored
51
fe64781 @leto Do that correctly
authored
52
203c7e2 @leto Improve and prettify readme
authored
53 [pegjs_homepage]: http://pegjs.majda.cz
9e392c9 @leto Fix formatting
authored
54
fe64781 @leto Do that correctly
authored
55 [whiteknight]: http://whiteknight.github.com/2010/12/07/javascript_on_parrot_plan.html
9e392c9 @leto Fix formatting
authored
56
fe64781 @leto Do that correctly
authored
57 [using_pegjs]: http://www.sergimansilla.com/blog/writing-a-javascript-interpreter-for-dbn-using-canvas-I/
9e392c9 @leto Fix formatting
authored
58
fe64781 @leto Do that correctly
authored
59 [peg_theory]: http://brynosaurus.com/pub/lang/peg-slides/index.html
Something went wrong with that request. Please try again.