Ask HN: Help with programming language design and implementation.
1 comments
Not sure if I can help or not, but feel free to contact me by email and I'll see what I can do.
My biggest recommendation, since you are implementing a lispy language, is to implement macros as soon as possible as this will let you implement most things within the language itself - you only really need a dozen or so built-in features to implement a lisp (except, of course, for performance you may want to add more - but get it working first, then get it fast!) and everything else can be built up from there.
You should also take a look at the source code to a (toy, non-compiled) scheme implementation - they are often extremely small and simple and may give you ideas. If you want your language to be compiled (ahead of time or JIT), I would recommend LLVM.
In any case, I'd be interested in hearing about your experiences, so perhaps you should write a blog post or something when you get it working.
My biggest recommendation, since you are implementing a lispy language, is to implement macros as soon as possible as this will let you implement most things within the language itself - you only really need a dozen or so built-in features to implement a lisp (except, of course, for performance you may want to add more - but get it working first, then get it fast!) and everything else can be built up from there.
You should also take a look at the source code to a (toy, non-compiled) scheme implementation - they are often extremely small and simple and may give you ideas. If you want your language to be compiled (ahead of time or JIT), I would recommend LLVM.
In any case, I'd be interested in hearing about your experiences, so perhaps you should write a blog post or something when you get it working.
I'm happy with my parser, but the evaluation part is very buggy and in some cases unusable. I'd really like to end up with a usable programming language at the end but I've realised that I'm a bit out of my depth, both in debugging and implementing some features I'd like (continuations being a main example.)
Please recommend some sources for help in avoiding common pitfalls and implementing languages. (If anyone with experience wants to help me, also, that would be especially great.)