non-deterministic pushdown automaton
A non-deterministic pushdown automaton (NPDA) is a type of computational model used in computer science to recognize context-free languages. It extends the capabilities of a finite automaton by incorporating a stack, which allows it to keep track of additional information. The "non-deterministic" aspect means that the NPDA can have multiple possible transitions for a given state and input, enabling it to explore different computational paths simultaneously.
NPDAs are particularly useful for parsing nested structures, such as those found in programming languages and mathematical expressions. They can be represented using formal definitions, including states, input symbols, stack symbols, and transition functions. The ability to make choices at each step makes NPDAs more powerful than deterministic pushdown automata, which have only one possible action for each state and input.