Ambientazione:
- espressioni regolari con riferimenti secondari
- lingua unaria (alfabeto a 1 simbolo)
È il seguente problema decidibile in questa impostazione:
- Data un'espressione regolare con riferimenti secondari, definisce una lingua regolare?
Ad esempio, (aa+)\1
definisce una lingua normale, mentre (aa+)\1+
non lo fa. Possiamo decidere quale è il caso?
Per concretezza, "espressioni regolari con riferimenti arretrati" si riferiscono ad esempio al seguente sottoinsieme delle normali espressioni regolari compatibili con Perl :
a
corrisponde al caratterea
(l'unico carattere dell'alfabeto)X*
corrisponde a 0 o più occorrenze diX
X|Y
partiteX
oY
- le parentesi possono essere utilizzate per raggruppare e catturare
\1
.\2
, ecc. corrispondono alla stessa stringa della prima, seconda, ecc. coppia di parentesi
Possiamo anche usare le normali scorciatoie, ad esempio X+
= XX*
.