Saturday April 08, 2006
The Genetic Algorithm Used by Audrey
I've been reading #perl6 IRC logs for more than a year and it's a very good way to sync with the rapid Perl 6 development.
Sometimes I find something really, really interesting so I'd like to quote them here. After all, I know there're many Perl 5 programmers (like me!) who love to learn more about Perl 6 and the future of Perl 5.
[04:55] <arcady> by the way, how much of "the perl 6 grammar" exists at the moment?
[04:58] <TimToady> depends on how you count, I suppose. rule syntax is fairly well characterized by now. a lot of it is specced pretty well, for some definition of pretty that ain't pretty.
[04:59] <arcady> so at least we can have something like the grammar grammar
[04:59] <TimToady> Most of the operator precedence is not done with rules at all.
[04:59] <TimToady> Yes, the grammar grammar is already bootstrapped approximately twice.
[04:59] <arcady> it's kinda hard to keep track of all the stuff going on...
[05:00] <TimToady> there'e very little top-down grammar over the bottom-up expression parser.
[05:00] <TimToady> more top-down involved in scanning complex tokens containing subexpressions.
[05:00] <TimToady> but the main complication remaining is just making sure all the grammatical categories work as envisioned.
[05:01] <TimToady> Then there's just little detail of attaching semantics to the parse... :)
[05:01] <TimToady> s/little/the little/
[05:02] <arcady> that can be left as an exercise to the implementors : )
[05:02] <TimToady> But audreyt says that Perl 6 now fits in her head, so that should be finished a day or two after the grammar is done.
[05:04] <arcady> that would be most awesome
[05:05] <TimToady> well, even a month or two would be awesome. a year or so is more likely before we have something really, really solid. Still, I'm very happy with how it's going.
[05:05] <arcady> well, I'm happy that you're happy, and that it's going
[05:05] <arcady> I guess it's not entirely obvious from here
[05:06] <arcady> and all the various bootstrap efforts and targets and so on are confusing
[05:07] <TimToady> Hmm, yes. Audrey
[05:07] <TimToady> Audrey's development methodology resembles a flooding algorithm at times...
[05:08] <TimToady> Or maybe a genetic algorithm.
parrot may not be the only choice and may not be the best choice, as evidenced by the following conversation:
[05:11] <arcady> what's going on with parrot, by the way?
[05:12] <arcady> and how does any of that connect to any of this?
[05:13] <TimToady> Parrot is sort of the other end of the world from me, so I just follow along in p6i mostly. I hear conflicting things, but I think it'll get there eventually, for some definition of "there".
[05:14] <TimToady> Whether it will be "the" Perl platform or "a" Perl platform, or somewhere in between, remains to be seen.
P.S. I must admit, Audrey's "Genetic Algorithm" is funny and helpful even in a general sense. I've successfully applied that to most of my open source projects. Multiple approaches and multiple perspectives often lead to surprisingly deep insights. That may be the most useful "algorithm" I learned from Audrey++. ;-)