Циклический язык - Cyclic language

В Информатика, особенно в формальная теория языка, а циклический язык представляет собой набор строк, закрытых по отношению к повторению, корню и циклический сдвиг.

Определение

Если А представляет собой набор символов, а А* это набор всех строк, построенных из символов в А, то набор строк LА* называется формальный язык над алфавит А.Язык L называется циклический если

  1. шА*. ∀п>0. шLшпL, и
  2. v,шА*. vwLwvL,

куда шп обозначает п-кратный повтор струны ш, и vw обозначает конкатенация струн v и ш.[1]:Def.1

Примеры

Например, используя алфавит А = {а, б }, язык

L ={апбп1ап2бп2...апkбпkаq:пя ≥ 0 и п+q = п1 }
{бпап1бп1ап2бп2...апk бq:пя ≥ 0 и п+q = пk }

циклично, но не обычный.[1]:Exm.2Тем не мение, L является контекстно-свободный, поскольку M = { ап1бп1 ап2бп2 ... апk бпk : пя ≥ 0} есть, а контекстно-свободные языки закрываются круговой сдвиг; L получается как круговой сдвиг M.

Рекомендации

  1. ^ а б Мари-Пьер Беаль, Оливье Картон и Кристоф Ройтенауэр (1996). «Циклические языки и строго циклические языки» (PDF). Proc. Симпозиум по теоретическим аспектам информатики. Конспект лекций по информатике. 1046. Springer. С. 49–59.