Sunday 7 January 2007

Project Launch

Today on 8 January 2007 at 3:47 AM, I have launched an idea that is very close to my heart into CyberSpace. I am calling it System Layers Generator. At this point, it exists as a meta-project (i.e., it has many distinct sub-projects each with its own deliverable), which at some unspecified future date will merge into one.

Each sub-project will be named after a kind of snake. For now, the following exist:
  1. Anaconda
  2. Adder
  3. Viper
  4. Sidewinder
  5. Habu

Anaconda will allow one to generate .NET code from a .NET code model and vice versa. The code model will be represented as an object graph, persisted as XML and may be built either interactively or generated by some external tool. The code will be persisted as C# source code. Anaconda will allow visual representation of code, enable rapid customization.

Adder will allow one to create .NET components for parsing an input text into an output heirarchy of objects. This heirarchy of objects will be represented as an object graph, persisted as XML and will be (hopefully) created on-the-fly. Adder will enable parsing in general and parsing of C# source code in particular.

Viper will allow one to create a control graph. This control graph will be represented as a flowchart, persisted as XML and may be built either interactively or generated by some external tool. Viper will allow visual representation of logic and enable rapid customization.

Sidewinder will allow one to create a high-level script based on a database schema. (A database is a set of inter-related tables.) This script can then be persisted as XML for the consumption of Anaconda.

Habu will be the culmination of each of the sub-projects listed above. It will provider a custom language package for integration into the Microsoft Visual Studio 2005, along with designers for viewing/editing object models as well as logic within methods that are part of objects within an object model.

I have been toying with these ideas for a while now. Hopefully, I should make some headway within each of these sub-projects over the course of 2007 to create compelling toys for enthusiasts to play with.

Till then, watch this space as well as the project site at http://code.google.com/p/system-layers-generator/ for code to play with as it evolves.