|Keep It Simple, Stupid|
I've read about 1/3 of this and fully intend to finish it. Overall, I've given it ++. The following is intended as a constructive comment in the "RFC" sense.
I think I self-identify with your stated audience, Perl hackers that can already work with regular expressions, but don't have any formal Computer Science eduction, and don't really know how to parse things that are too complex for regular expressions. I'm currently trying my hand at an applied parsing problem (Reversible parsing (with Parse::RecDescent?)). I got as far as I did searching CPAN for "parse" and reading the doc. I'd say I got to a practical (in the parse direction, not in the reverse direction), albeit simple solution. I learned alot more from ikegami's reply. I'm also learning from the documentation for Parse::Marpa
The criticism is that I'm not sure I could have gotten to that level of practical results from yout tutorial. I think your tutorial has aimed a little high for the stated target audience. Terms like "deterministic finite automaton", "linear time", "Context Free Languages" and the whole "A bit more theory" section slow me down a little and make it a dense read. Having gone through the work I already went through, your tutorial is helpful and instructive, especially in defining some terms that the other sources have been throwing around. This gives me good academic material to compliment the quick-n-dirty applicable stuff I got from Parse::RecDescent's documentation, et al..
Just to be clear, I find this to be immensely informative, and am enjoying working my way through it. The academic terms are defined as you use them for the most part, and I'm learning alot. I think the only edit I'd suggest (partly becasue the whole article seems a little above me for me to be making significant content suggestions) is to restate the intended audience. This is an intermediate-to-advanced text that fills a niche between Perl hackers that can already work with regular expressions, but don't have any formal Computer Science eduction and the heavily technical papers that are intended for academia. Said Perl Hackers can use this to improve themselves, but I found it a little beyond (though certainly comlementary to) "practical".
#my sig used to say 'I humbly seek wisdom. '. Now it says:
I humbly seek wisdom.