I’m setting myself some goals for the Slang language (I’m renaming Klang to Slang) for the coming year. By the end of 2012 I should have
- a usable and useful language
- programs must not crash, unless you purposefully make them crash
- compiler must always provide nice error messages (and not crash)
- must be able to do IO
- must be able to do OpenGL
- must have a small standard library
- IO, Unicode strings, basic collections
- parser combinators (maybe)
- programs that are mostly pure by default, except when they’re not (doing IO etc.)
- allocation in pools or a garbage collected heap
- performance mostly on par with C
- open source compiler written in Scala
- a comprehensive test suite
- all language features must have tests
- all library functions must have tests
- all compiler errors and warnings must have tests
- some use case tests, maybe a Project Euler based test suite
- all the things mentioned in the post where I outlined the first language (most of those exist already)
There are a few additional things that would be nice to have, but are not my explicit goals for the year. The first is a self-hosting compiler. The current compiler spews out .ll files, which then get parsed and compiled by LLVM tools such as llc, but it would be nice to work with LLVM directly. Another thing is separate compilation, which I’m probably not going to implement in the current compiler. Same goes for JIT. And lastly: support for debugging; syntax highlighters; maybe a bare-bones Eclipse IDE.
I should be able to pull off the things listed here, some sooner and some later. I still have a lot to learn about language design, type systems and compilers and am not sure at which point I’m going to open source it, but I’m aiming for June 2012 or so.
This is random, but just so you know there is a programming language called S-Lang already, which tends to go by “slang” in its package names and whatnot; in addition there is a apparently an internal language used at Goldman Sachs called “slang”.
http://en.wikipedia.org/wiki/S-Lang_(programming_library)
http://stackoverflow.com/questions/3392636/slang-goldman-sachs-proprietary-programming-language
Yeah, I figured there would probably be some name conflict, but I didn’t even bother with a Google search. I may come up with a better/unique name before making it available, or just live with it.
Pingback: Mixfix Operators & Parser Combinators, Part 1 « Villane
Pingback: Slang: Review of 2012 | Villane