Which Compiler to Extend for a Small Project?
Andreas(R) asks: "While planning the design of my small programming language, and would appreciate some lessons learned from experienced programmers which have already tried this. I was investigating whether to start from an existing compiler and extend it. The compiler will be based on yacc, or bison. The programming language will be interpreted, object oriented and have higher order programming. Perl 1 seems like a decent starting point, as it's yacc based, and 5000 lines of code. Later versions of Perl are too large to get a good understanding of the whole program in a short period of time. Perl also has the right license (GPL). Is Python out of the question for such a project, since it's not GPL? What other small languages can be used instead? How do I go about designing a small programming language in practice, using what I already know about compiler theory?"
Wow, all excellent ideas. I will add just one more: if you can possibly manage it, use a garbage collected language, or make use of the Boehm collector. If you're using a bison/yacc approach, the structure you're working in can make proper allocation and deallocation pretty complicated.
Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
Or why don't you design a meta-language using which other languages can be designed -- a language that remains completely extensible -- something like MDef.