2 ms·
Ask HN: Help with programming language design and implementation.
I've implemented a very basic Lisp-y programming language, but there are some things which I'm not sure about how to fix/implement.
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.)
- dkersten 15y agoNot 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.