En informática , más particularmente en teoría del lenguaje formal , un lenguaje cíclico es un conjunto de cadenas que está cerrado con respecto a la repetición, la raíz y el desplazamiento cíclico .
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 denomina lenguaje formal sobre el alfabeto A. El lenguaje L se denomina cíclico si
donde w n denota la repetición n -vez de la cadena w , y vw denota la concatenación de las cadenas v y w . [1] : Def.1
Por ejemplo, utilizando el alfabeto A = { a , b }, el idioma
es cíclico, pero no regular . [1] : Ej. 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 } es, y los lenguajes libres de contexto están cerrados bajo un desplazamiento circular ; L se obtiene como un desplazamiento circular de M .