http://www.perlmonks.org?node_id=516871


in reply to Re^3: What Perl CAN'T do?
in thread What Perl CAN'T do?

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. :-)

Replies are listed 'Best First'.
Re^5: What Perl CAN'T do?
by tirwhan (Abbot) on Dec 15, 2005 at 09:01 UTC

    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
      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.