in reply to Re^23: aXML vs TT2
in thread aXML vs TT2

That's a good suggestion however it wouldn't work.

Once the <lt> tag has executed the document would then contain a valid <db_select> tag and the parser would pick up on it and execute it because it loops until it cannot find any more matches.

Replies are listed 'Best First'.
Re^25: aXML vs TT2
by chromatic (Archbishop) on Oct 23, 2011 at 22:51 UTC

    That's the concern ikegami has.

    It's a subtle concern, but it's an important one. This is one reason why, for example, Perl allows you to choose alternate delimiters for strings and regular expressions and substitutions. Without that, you might get stuck in a weird dimension of quoting, and without quoting, there are certain programs and pieces of data you can't represent.


    Improve your skills with Modern Perl: the free book.

      without quoting, there are certain programs and pieces of data you can't represent.

      I'm not sure specifically why, however I have a gut feeling that that comment is infact incorrect.

      You might have to write the program in a different way to what your used to, but I see no reason why you cannot get any output at all from aXML, by virtue of the fact that the plugins have the full expressivity of Perl itself, and aXML is therefore Turing complete.

        You may be right, but ikegami is trying to get you to do an inductive proof of that.

        I've written a few compilers myself and patched more than a few parsers. Given that experience, I think you're going to run into a nasty bug at some point due to this evaluation strategy, and it's going to be a real trial debugging it.


        Improve your skills with Modern Perl: the free book.

Re^25: aXML vs TT2
by keszler (Priest) on Oct 23, 2011 at 20:10 UTC

      Yes, sort of, in a very precise controlled manner the input aXML document transforms into the output in accordance with the given set of plugins operating under the rules of tag precedence.

      According to that page, self-modifying-code refers to modifying cpu instruction (asm), not MetaCircularEvaluator (eval), or in this case, s//eval/ge