PLT textboks often use Greek and Latin letters to denote grammatic notations such as terminal, non-terminals, and other such concepts. For a beginner (like me!) it could be rather overwhelming. So I created this cheatsheet to be used as reference for any curious person or learners, alike.
Always Terminal
T1. Lowercase letters early in the alphabet (a, b, c, ...)
T2. Operators and symbols (+, *, /...)
T3. Punctuation symbols ( (, {, ,...)
T4. The digits (0..9)
T5. Boldface strings (if, id)
Always Nonterminal
NT1. Uppercase letters early in the alphabet (A, B, C, ...)
NT2. Start symbols is always an uppercase S. If we prime the S symbol, i.e. S'. it means 'Constructed Start Symbol'.
NT3. Lower, italic names, e.g. expr and stmt
NT4. Uppercase letters such as E, T, and F reckon back to constructs (Expression, Term, Factor)
Either Terminal, Nonterminal or Production
TNT1. Uppercase letters late in the alphabet (X, Y, Z)
TNT2. Lowercase letters late in the alphabet denote strings of terminals (x, y, z)
TNT3. Lowercase Greek letters denote (possibly empty) strings of grammar symbols (α, β, ζ)
TNT4. A -> ζ (or any letter of TNT3) denotes a production
TNT5. Likewise, A -> ζ₀ | ζ₁ | ζ₂ ... denotes a production with alternatives
TNT6. Likewise, X -> X₀ X₁ X₂ ... denotes a production with its symbols (term/nterm)
TNT6. Likewise, A -> α B β denotes a production with prefix of α, non-terminal of B and postfix of β.
Good luck!