Las gramáticas SLR son la clase de gramáticas formales aceptadas por un analizador LR simple . Las gramáticas SLR son un superconjunto de todas las gramáticas LR(0) y un subconjunto de todas las gramáticas LALR(1) y LR(1).
Cuando se procesa mediante un analizador SLR, una gramática SLR se convierte en tablas de análisis sin conflictos de desplazamiento/reducción o reducción/reducción para cualquier combinación de estado del analizador LR(0) y símbolo de anticipación esperado. Si la gramática no es SLR, las tablas de análisis tendrán conflictos de desplazamiento/reducción o conflictos de reducción/reducción para algún estado y algunos símbolos de anticipación, y el analizador rechazado resultante ya no es determinista. El analizador no puede decidir si desplazar o reducir a continuación, o no puede decidir entre dos reducciones candidatas. Los analizadores SLR utilizan un cálculo Follow(A) para elegir los símbolos de anticipación que se esperan para cada no terminal completado.
Los analizadores LALR utilizan un cálculo diferente que, a veces, proporciona conjuntos de anticipación más pequeños y más ajustados para los mismos estados del analizador. Esos conjuntos más pequeños pueden eliminar la superposición con las acciones de cambio de estado y la superposición con las anticipaciones para otras reducciones en este mismo estado. Los conflictos de superposición informados por los analizadores SLR son entonces falsos, resultado del cálculo aproximado utilizando Follow(A).
Una gramática ambigua tendrá conflictos inevitables de cambio/reducción o de reducción/reducción para cada método de análisis LR, incluido SLR. Una forma común de que las gramáticas de lenguajes informáticos sean ambiguas es si algún no terminal es recursivo tanto a la izquierda como a la derecha:
Se dice que una regla de la forma B → y • dentro de un estado de un autómata SLR(1) es irreducible o está en un estado reducido porque se ha expandido completamente y es incapaz de experimentar ninguna transición de desplazamiento. Las reglas en este estado tendrán un punto ( • , la posición actual de anticipación) ubicado en el extremo más a la derecha de su RHS (lado derecho).
Se dice que una gramática es SLR(1) si y solo si, para todos y cada uno de los estados s en el autómata SLR(1), no se viola ninguna de las siguientes condiciones:
Se dice que una gramática es SLR(1) si el siguiente algoritmo de analizador LR simple no genera ninguna ambigüedad.