Have You Used RPython?
rpython.readthedocs.io
rpython.readthedocs.io
Pros: much easier/faster development than C/C++; the JIT is not only simple (you only have to annotate likely backedges) but handles AST walkers just as well or even better than bytecoded terps.
Cons: have to learn the restricted subset of python; debugging the C-compiled terp can be painful, although (a) one can always slowly run the uncompiled terp under standard python, and (b) it's never more painful than debugging a buggy scratch-built C terp would have been.
I would highly recommend it if you've already written languages with low level implementations; if you only know python it might be a challenge.
What is your background? What do you want to build?
I am a dev with multiple years of programming experience, using some mainstream programming languages, last few years with Python, doing mainly typical business apps, but also some light systems type stuff, the latter mainly for fun). But I have not done much with parsing before, and only data format parsing, not code.
I am interested in the field of programming language translation, only interpreters as of now, not compilers.
As a learning project, I want to build an interpreter for a simple programming language, with some standard features common to popular languages.
If you don't care about performance at all, I would just write your project in straight python. If you think you will, I'd still recommend tackling the learning and tooling curve of rpython (the hoops you jump through* can be worth ~64x in performance even before the JIT kicks in; basically CF et.al. have done a lot of grubbing around with codegen at the C level so you won't have to; you'll also get GC for free and a strong JIT nearly for free)
Does that give you a good idea of the basic tradeoff?
* basically writing python more as if it were a much less dynamic, but still OO, language — python with a strong java accent?
[come to think of it: on the telescope makers' theory that "It is faster to make a 4" mirror, then a 6" mirror, than to make a 6" mirror." maybe you should write a first interpreter in python, using ply to parse, and then — if you feel like chasing performance, rewrite in rpython/rply?]
Yes, I am planning to do it in straight Python for the first version(s) at least.
I have checked out some parsing libraries like parsley, ply/sly, parsimonious and lark, and have done some background reading on the subjects involved.
I may still do at least the first few minor versions with hand-rolled code for both the lexing and the parsing, if nothing else, for the learning experience, although I may switch to using some libraries later, to learn to use those too.
Performance is not a major goal in the beginning, since it is a project for fun and learning, so as long as the initial versions run fast enough to be usable, I am okay with that.
Any recommended forum or group for Q&A on language translation / interpreters / parsing topics?
Very recently, I came across langdev.stackexchange.com; I have only browsed it briefly, so far. Do you think it is good?
I know about the Usenet group comp.compilers, and have interacted with a moderator of it, John Levine, back in the day, on email, regarding a book that he wrote. But for sometime now, Usenet groups have been full of spam, so I am not sure that will be a good resource.
I am asking because, although this is a learning and fun project for me, not a work or money making project (I do have those, on the side ;), and because of that, I do plan to try to work out a lot of things myself, from first principles (but of course with the help of prior reading that I have absorbed - I am not going to ignore that), because I think that will help me to learn more, and also give me more of a sense of satisfaction / achievement, I also do plan to intermittently look at prior art, and learn and apply it as makes sense to me.