Projects:Main Page
From ThorsWiki
Welcome to the projects main page. These are a list of Thor's project ideas from over the years. Some things, sitting on the back of the stove have gotten rather cold, while others are more active.
Here's a quick stab at the most recent list -- I will start pulling some of the content over from the joomla blog to fill in some of the detail for these. Then I want to take advantage of the Wiki to fill in more. I need a forge of some kind to keep the actual source code. I also have to learn how to format Wiki pages better than this little editor can.
One problem that I have is that I'm not particularly good at "branding" my own projects. The names I give them evolve and change over time. So work with me on that.
See Unification Project Main Page
One of the biggest projects that I've working on for a very long time is the idea that we still have rather primative ways of thinking about computer code. People think of clever new things (new programming features) and create a new language to implement it. And, so they proliferate. I've always been of the opinion, at least since the early '80s, that code, and computer languages, are still 1960's card decks in many ways. They are still ASCII streams with lots of embedded "syntactic fluff" to permit a compiler to boil them down into a functional semantic. We have been dealing with complex data relationships for many years. Why don't we do that with our code?
We've seen some new thinking in how Eclipse and Visual Studio and other integrated IDEs deal with code, but this is taking it to a different level. Once you've reduced code into its semantic -- keep it there.
The unification project (or a code convergence if you will) is the notion that once can define a schema which has sufficient scope, which can encompass the semantics of any programming language -- certainly any of the modern procedural ones. And, similarly, that code boiled down into this schema that can be represented as OO data, and can be interchanged via XML. I've been working on that schema for a while.
I call this schema the Canonical Format.
The first phase is a provisional schema and the tools to maintain it. I've already got a bit of a codebase here, and a draft schema. I've been redoing this as a GUI tool and may add railroad type code to it to visualize the schema. Symbol table parts of the semantic need more thought.
The second goal is an import tool for some early languages. Initially I will do something simple, like DEC Basic, and maybe Applesoft Basic. Then C, C# and Java. At this point, the tooling will be reasonably robust. I already have fully functional basic and C parsers which I already did earlier, and can probably trivially convert to Jay (a C# port of Bison) and C# from the original Bison/C. I also have C# and Java grammars (and tons of others).
Another great goal is to then build an IDE which permits the schema to be manipulated directly. It is my vision that this can be done graphically, and that one can represent code with what I call Graphical Metaphors. Better minds than mine will finish this part of the project. The intent is to get the tool out of the way between the concept and the code. I have programmed for years in Emacs and know what it is to use a tool that makes such a light touch on the code. But too, I have recently gotten very familiar with Visual Studio and see what a heavy tool brings. Maybe when we get to that point, we can just make graphical plugins for Eclipse. I have even thought of looking at a 3D OpenGL/DirectX tool. I have fantasies of the coders FPSing around through their code with a BFG-9000 eliminating bugs :)
Also, see Value of the Canonical Format
See Caveats of the Canonical Format Idea for some cautionary tales.
