http://qs321.pair.com?node_id=791643


in reply to Re^5: Unparseability is A Good Thing
in thread Unparseability is A Good Thing

I'm guessing you agree in some way,

Hold on. Not understanding something does not imply agreement.

All I did was to state the problem which was of interest to us.

I'd need you to expand on "executing arbitrary Perl code"

I'm not sure what you're looking for, so I hope the following helps:

To determine the meaning of a token, the parser needs to be able to execute any Perl program, including shelling out to execute any binary. The algorithms executed may be non-deterministic.

Replies are listed 'Best First'.
Re^7: Unparseability is A Good Thing
by Zen (Deacon) on Aug 27, 2009 at 15:31 UTC
    "The meaning of token" is ambiguous. Do you intend to say the outcome of the token or what the machine is supposed to do with the token?

    If you intend to say the "outcome", then yes we do disagree on the meaning of parsability. The meaning of the token isn't to play fortune teller; if you give a machine tape input, the machine doesn't pretend to somehow create a pipeline of the future, knowing the state of machine at time t+1. It only knows the state at execution t, where the reader is.

    This isn't a perl problem. I know you know this. So what is this requirement on the parser that you are saying is a perl problem?

      (That should be "To determine the meaning of a token", fixed.)

      Do you intend to say the outcome of the token or what the machine is supposed to do with the token?

      Tokens don't have outcomes. They're data.

      To answer your question, neither. I meant "For the tokeniser to determine which token to create for a given sequence of input bytes". (Or at a higher level, "For the parser to determine which opcode to create or error to throw for a given sequence of input bytes".)

      For example, to determine whether "/" starts a pattern or if it's a division operator.

      This isn't a perl problem. I know you know this. So what is this requirement on the parser that you are saying is a perl problem?

      It hinders the ability to do useful things with Perl code by greatly extending the cost of doing so.

        Right. What to do with the token is determined at the read head. I still do not see how this is a perl specific problem, as the "/" operator has to be read and computed, what happens with it 5 minutes from now is fortune telling. Not a perl specific problem.