Un Aceptor Push-Down (APD) es una tupla de 6 elementos con:
- : conjunto finito de estados.
- : alfabeto finito de entrada.
- : alfabeto finito de pila o stack.
- : es el programa de . Es una secuencia finita de instrucciones.
- : conjunto de estados iniciales.
- : conjunto de estados finales.
En cada instrucción el estado es la etiqueta o rótulo de la instrucción y es el estado sucesor. Cada en rotula un único tipo de instrucción (scan, write, o read). Se considera una tupla con la configuración de . Una configuración describe el estado total de un APD en algún punto de su análisis de una cinta.

Algunos conceptos:
- es configuración inicial de .
- es configuración final de .
- es string aceptado por tiene secuencia de movimientos , donde el stack debe estar vacío.
- es el lenguaje reconocido .
- es determinístico para toda configuración nunca hay más de un movimiento posible.
- Una instrucción es impropia si es rótulo de una instrucción
read. - Un APD es propio si su programa no contiene instrucciones impropias.
Transformación de APD a APDP
Sean los APD y APDP : el siguiente procedimiento verifica que .
- con con (1). Por cada instrucción se agrega . Si en en . Esto se repite para cada par y para los cuales tiene una secuencia de movimientos como (1).
- Se borran todas las instrucciones impropias. Las restantes forman el de .
Tabla: Construcción de un Analizador Push-Down
Dada se puede construir un . Sean , , , .
| Acción | Condición | Instrucción |
|---|---|---|
| Para inicializar: | ] write | |
| Para expandir: | ] read ] write | |
| Para hacer “matching”: | ] read ] scan | |
| Para aceptar : | Si |
Por cada GLC se puede construir un APD tal que .
