metaprogramming

Javascript Metaprogramming Thesis

We extended JavaScript with staging annotations and implemented them in SpiderMonkey, emitting pure JavaScript code as the final outcome of stage computation. SpiderMonkey system minimally affected with extensions in the syntax, parser and internal AST structures, and the addition of an unparser, a staging loop, some library functions and a debugger backend component for AST inspection. Finally, to enable debugging stages in any browser we implemented a pure JavaScript client, communicating with the extended Spider Monkey, and offering the necessary AST display and unparsing that a browser debugger does not provide.

metaprogramming

Javascript Metaprogramming Paper

We extended JavaScript with staging annotations and implemented them in SpiderMonkey, emitting pure JavaScript code as the final outcome of stage computation. SpiderMonkey system minimally affected with extensions in the syntax, parser and internal AST structures, and the addition of an unparser, a staging loop, some library functions and a debugger backend component for AST inspection. Finally, to enable debugging stages in any browser we implemented a pure JavaScript client, communicating with the extended Spider Monkey, and offering the necessary AST display and unparsing that a browser debugger does not provide.