Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^3: What Perl CAN'T do?

by tirwhan (Abbot)
on Dec 14, 2005 at 11:17 UTC ( [id://516587]=note: print w/replies, xml ) Need Help??


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

The OP's question does not make much sense when viewing it from a theoretical point of view (as anyone who understands Turing completeness knows and your post explains). I can as much write perl in Perl as I can carve my name onto the face of the moon with a toothpick or tattoo "I blow goats" onto the forehead of my least-favourite head of state. Both of these things would be possible if I dedicated my life to them and managed to obtain the support of a large enough community of people. I would however consider them to be practical impossibilities. Rewriting perl in Perl has pretty much the same prerequisites and is just as impossible. Do feel free to prove me wrong though :-)


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

Replies are listed 'Best First'.
Re^4: What Perl CAN'T do?
by tilly (Archbishop) on Dec 15, 2005 at 06:01 UTC
    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. :-)

      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.
Re^4: What Perl CAN'T do?
by Perl Mouse (Chaplain) on Dec 14, 2005 at 12:39 UTC
    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.

    Perl --((8:>*

      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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://516587]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (9)
As of 2024-04-25 11:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found