Projects

A very early raskell screenshot.
Raskell
This is my current project. My intent is to write an extensible simulation environment suitable for writing little agent scripts in haskell. This will also facillitate experimentation in techniques (DSLs, etc) for writing such code in haskell.
The code may be found in this darcs repository.
Lib2geom
This is a project which I have significantly contributed to. It is a computational geometry library with particular focus on the needs of the Inkscape drawing program. This is the first and main opensource project I've contributed to.
In the Summer of 07, Google funded me to work on boolean operations within this library. My detailed report can be found here.
Moing
This is a project founded by me and MenTaLguY, though really it's mostly his. Moing is an animation editor which reflects some of our design values, and fulfils a very specific tool gap — a good, opensource animation editor. It is also an experiment in programming techniques, as we intend to write it in Haskell and employ embedded DSLs. Hopefully this will yield concise, clear, and stable code.
Programming Language Design
As mentioned on the about me page, I've often times speculated in the realm of PLD, and implemented some simple designs. My first languages, from about 6 years ago, were basic extensions on an infix artihmetic parser and evaluator. I was using RPN as an internal representation, and realized that this would work for a full programming language. I didn't know Forth at the time, and so made many design mistakes, but nonetheless, I'd written a working language.
After this, I began to dream of various language designs. In particular, I've concentrated much on:
- Languages based on DSLs (Domain Specific Languages), built up out of DSL layers. By googling "Language Oriented Programming", I found out that it had already been created. Despite this, as far as I know, no one has made a good LOP language.
- Rich Programming Languages, aka Visual Programming Languages, where code is represented notationally in two dimensions.
- Functional Programming - I'm thinking about various variants to current functional programming languages. I can't yet determine if some of my ideas are workable, as I don't yet have the formal background necessary.
I will likely have a large section devoted to this in musings. So far that's mostly what my work is composed of. I need to start writing actual compilers/interpreters at some point, so that in the future I am experienced enough to implement my dream language.