I shall prove you wrong then. To write perl in Perl all that you need to do is write a C interpreter in Perl. But since there are plenty of working C compilers, all that you really need to do is emulate what a C compiler compiles to. Thus you need to write a virtual machine that implements the assembly language of any chip that will run Perl. Which seems to me like a doable, if useless, project. :-) | [reply] |
While that would probably be doable (and useful^Wprofitable^W erm interesting ;-), it's rather grasping the wrong end of the stick, isn't it? To really have perl you'd need the equivalent of Ponie and Parrot written in Perl5. I know about PPI, and that could probably be a huge first step in the right direction for a parser, but it still doesn't give you the parsing capabilities of the current perl compiler (let alone the runtime etc.).
Anyway, this subthread has gone for long enough since about two posts ago, and you (tilly) know far more about these things than I do, so if you say it would be practicable to write a program which parses, compiles and runs any given Perl program in Perl5 itself then I'll shut up and downvote myself :-).
Now, what would be interesting IMO would be an implementation of a Perl6 to PIR compiler in Perl5, sort of a Pugs-in-Perl. I could see someone gathering enough interest to start and complete such a project (though the result would probably have less practical usefulness than Pugs).
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. -- Brian W. Kernighan
| [reply] |
The approach that I suggested really would give you Perl. Exactly like the usual one, with the same exact capabilities, but far more bloated and slow.
| [reply] |
Well, the OP has acknowledged that. He states in his posting that he knows there are a lot of things you shouldn't do in Perl. But he's interested in what you are not able to do in Perl.
If you are answering a different question than is stated, please indicate so in your answer. I wouldn't have replied at all if you had done so.
| [reply] |
I wrote my first post before the update. Also, even in the context of the OP's update, it is still impossible to write perl in Perl (if this were an assignment handed out to me @work I'd go look for an employer/client who isn't barking mad. Crazy people sometimes pay the bills handsomely, but never for very long, and certainly not long enough for such a project). You need to understand that "impossible" can mean "impossible in practice" and in respect to the OP's question that is the only definition that makes sense (as I explained in my last post).
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. -- Brian W. Kernighan
| [reply] |