Why for A->BC ,Follow of C = Follow of A?


#1

Why for A->BC ,Follow of C = Follow of A?


#2

Follow(B) = First( C )

But you can clearly see that you can’t write Follow( C )=First(anything) as it is the right most literal.
So as per the rules when ever you encounter on the right most literal,
Follow( C )= Follow(A)


#3

I think there is some logic behind,
follow is not just a rule,it helps us in getting a derivation so theres a reason why follow of C = Follow of A for
a production rule like A->BC


#4

Suppose in deriving a derivation tree,

u reach upto this point

BC{some string}
so the real cases can be
BCaaa
BCbbbd
BCabbbc

Now you choose to take A->BC at this point.
So the above thing becomes

Aabbbc

so whats Followi actually is you it tells you which terminals can come after a non terminal and though Im not explaining it here how this thing helps us in getting a derivation ,so follow is which terminals can come after a non terminal.

since now we have used A->BC
so whatver comes after A is actually whatver comes after C.
so if you go backwards

Aabbbc
BCabbbc

so thats what follow actaully is the terminals coming after A can come after C so follow of C = follow of A.
Its highly impossible to make understand the complete picture but I hope I was of some help.
Follow is not a rule,
Its a you can say pre computation done which makes our process if whether a string can be deraivable or not process easier.