Ok I have a simple question. Let us say we have a formal grammar, let us take this simple example: S → aSb S → ab This grammar generates language [itex]a^n b^n[/itex]. My question is, is there a way I can tell what kind of language this generates from the rules? I can of course apply the rules and find out this grammar can generate such a language but sometimes we may have more complex examples containing more rules. So my questions is, how can we then find out exactly the kind of language generated by a given grammar without having to manually apply rules as this may not be always practical? Thanks in advance!