This page assumes nothing. If you have never seen a set, an arrow, or a star before, start here and every symbol used in the parent topic will be earned before it appears.
The left bucket holds finished letters — things like (, ), a, +. Once one of these is placed, it never changes again. Call these terminals.
The right bucket holds placeholders — labels like S, E, T. A placeholder is a promise: "something will go here later, but not yet." Call these variables (or non-terminals).
Every idea below is about the rules for turning right-bucket tokens into left-bucket tokens.
Why the topic needs it. The parent writes A∈V and S∈V. These are just saying "A is one of the placeholder tokens" and "S is one of them too." No membership symbol, no way to say which tokens are legal.
The symbol ∅ means the empty set — a bag with nothing inside. The parent's rule V∩Σ=∅ (the two buckets share no token) uses it.
Why Σ and not just "letters"? We need a named, finite collection so a rule can say "your finished string may only use these characters." For matched parentheses, Σ={(,)} and nothing else.
Why this tool and not just "a string"? The parent needs to talk about every possible finished string at once — the language L(G) is a subset of Σ∗. The star is the compact way to say "all strings over this alphabet, any length." We could not write L(G)={w∈Σ∗∣…} without it.
The mixed version (V∪Σ)∗ (used in the definition of a production) means "all strings you can build from placeholders AND letters mixed together" — because a half-finished line like ((S)S) contains both.
Why the topic needs it. The grammar S→(S)S∣ε relies on ε to end the recursion — without a rule that makes a placeholder disappear, you could never finish a string.
Why two different arrows?→ is a rule that exists in your rulebook R. ⇒ is an act of using one rule right now on your current line. One is potential, the other is an event.
Why the topic needs it. The language is L(G)={w∈Σ∗∣S⇒∗w}: "all finished strings w you can reach from the start placeholder S by any number of swaps." Without ⇒∗ you could only speak of one swap at a time and never define the full language.
Why the topic needs it. A derivation is a list of steps; a parse tree keeps only who-is-whose-child, discarding the order. You cannot understand "structure vs. order" or "ambiguity = two trees" without the tree picture first.
This map feeds directly into the parent CFG topic. It also connects forward to Pushdown automata (the machine that recognises what CFGs generate), Chomsky hierarchy (where CFGs sit), and Compilers — parsing (where parse trees get used). Contrast with Regular expressions and DFAs — the weaker tools that cannot count nesting.