views:

69

answers:

1

I've been reading a couple books/online references about compiler theory, and keep seeing that particular operator coming up every once in a while (as seen here), specifically when the current topic is context free grammars. What does it mean? As well, how does it differ from =>?

Explanations with examples distinguishing => from =*> would be most helpful.

+5  A: 

=> means derives in one step while =*> derives in zero or more steps (the reflexive transitive closure of =>).

Firas Assaad
Oh - that makes sense! Actually, could you clarify how something could be derived in 0 steps?
Cam
In other words, the `*` modifies `=>` in the same way it modifies items in regular expressions.
Joel Coehoorn
@incrediman: It's when something derives itself. e.g. 01b =*> 01b (zero steps) vs. 01b =*> 011 (one step)
Firas Assaad
@Firas: Cool, thanks. (+1)
Cam