En informática , más concretamente en la teoría del lenguaje formal , un lenguaje cíclico es un conjunto de cadenas que es cerrado con respecto a la repetición, la raíz y el desplazamiento cíclico .
Definición
Si A es un conjunto de símbolos y A * es el conjunto de todas las cadenas construidas a partir de símbolos en A , entonces un conjunto de cadenas L ⊆ A * se llama lenguaje formal sobre el alfabeto A . El lenguaje L se llama cíclico si
- ∀ w ∈ A * . ∀ n >0. w ∈ L ⇔ w n ∈ L , y
- ∀ v , w ∈ A * . vw ∈ L ⇔ wv ∈ L ,
donde w n denota la repetición n veces de la cadena w , y vw denota la concatenación de las cadenas v y w . [ 1 ] : Def.1
Ejemplos
Por ejemplo, usando el alfabeto A = { a , b }, el lenguaje
es cíclico, pero no regular . [ 1 ] : Exm.2 Sin embargo, L es libre de contexto , ya que M = { a n 1 b n 1 a n 2 b n 2 ... a n k b n k : n i ≥ 0 } lo es, y los lenguajes libres de contexto son cerrados bajo desplazamiento circular ; L se obtiene como desplazamiento circular de M.
Referencias
- 1 2 Marie-Pierre Béal y Olivier Carton y Christophe Reutenauer (1996). "Lenguajes cíclicos y lenguajes fuertemente cíclicos" . Actas del Simposio sobre Aspectos Teóricos de la Informática . Lecture Notes in Computer Science . Vol. 1046. Springer. págs. 49–59 .
- Lenguajes formales
- esbozos de informática