A nonterminal symbol is a fundamental component of a formal grammar used in computational linguistics and programming languages, representing a set of possible strings that can be generated. It acts as an intermediary step in the production rules, allowing for the recursive generation of complex structures from simpler components.