November 2, 2013
No answer yet
A simple BNF style language that I created for describing the scanner, parser, and formatter sections of a compiler. I use it to experiment with new languages that I invent or discover. It allows me to quickly produce a code generator for a domain specific language that has meaningful error checking. It has many features to support most modern programming languages, and new features are added frequently. It has been used to parse languages like Java and Python, but is so simple to use that it is often uses languages like regular expressions or print formatting sequences in strings. It has been used to produced compilers in C, C++, Objective-C, and Java.
It is not a very popular language, and it is difficult to find developers that are interested in using it. To fix this I would use it to create a compiler for a new programming language to demonstrate how useful it is.
I am very curious about the abstract state machine language. It seems to be a language for describing an algorithm in way that is easily understood and executable. One of the biggest problems that I see in the software industry is lack of relevant documentation for software design. Often software appears to be random text is a source file that is tweaked base on bug reports. The is no reference to describe the design, or it was written before the implementation started and now has nothing in common with the implementation. In my opinion the Holy Grail of programming languages would be a language that can serve as the design document and the implementation. That way they are always in sync because one cannot be modify without the other being updated. It would be a very high level language that could produce any general purpose code like C, C++, Objective-C, Java or Python.
No answer yet
I write tools for creating compilers, and I create compilers and interpreters for domain specific languages. It is a bit of an obsession!