Language Generated by a Grammar
Given a grammar G with start symbol S , the language generated by G, denoted L(G) , is the set of derivable terminal strings w : L(G) = { w | S +⇒ w }
Two grammars that generate the same language are equivalent. a*b*(a | b)* = (a | b)*
The union of two languages is simply set union, i.e., L1 ∪ L2 = { l | l ∈ L1 ∨ l ∈ L2 }
The concatenation of two languages is: L1L2 = { l1l2 | l1 ∈ L1 ∧ l2 ∈ L2 }