Project Design/History

May 16, 2011 at 7:16 PM

I'm very interested in the history of this project, specifically the design goals and implementation. I know that at a high level, it's pretty straight forward: create a JS interpreter in C#.NET using a live model rather than code transformation/compilation. But I would like to know:

  1. How one sets about making a project like this using ANTLR.
  2. An overview of the architecture.
  3. How is the .g file used?
  4. What techniques specific to .NET were used and how they compare to options in other languages, like C, C++, Java, etc.

I hope you will consider this request; I think this information will be very useful to folks like me who are trying to better understand the architecture.

Coordinator
Jun 24, 2011 at 4:41 AM

If you want to learn ANTLR, you can read this article I wrote a few years later: http://www.codeproject.com/KB/recipes/sota_expression_evaluator.aspx 

This project has since then been hosted on codeplex: http://ncalc.codeplex.com/

By the way, you might learn the basics on Jint by reading it, it will explain the notion of parsing, AST, and visiting the AST to do something with it. This is exactly the same architecture that is used in Jint.

As explained in the article, the .g file is processed by an antlr tool (antlr.exe is C# resources, or AntlrWorks which is an IDE).

There is nothing specific to .NET as per the implementation. Odd stuff is about adding some.NET  generics management to the language itself, .NET interoperability, and security handling.