Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a238e964a93b879c

Jump to content

Cyclic language

From Wikipedia, the free encyclopedia

In computer science, more particularly in formal language theory, a cyclic language is a set of strings that is closed with respect to repetition, root, and cyclic shift.

Definition

[edit]

If A is a set of symbols, and A* is the set of all strings built from symbols in A, then a string set LA* is called a formal language over the alphabet A. The language L is called cyclic if

  1. wA*. ∀n>0. wLwnL, and
  2. v,wA*. vwLwvL,

where wn denotes the n-fold repetition of the string w, and vw denotes the concatenation of the strings v and w.[1]:Def.1

Examples

[edit]

For example, using the alphabet A = {a, b }, the language

L = { apbn1 an2bn2 ... ankbnk aq : ni ≥ 0 and p+q = n1 }
{ bp an1bn1 an2bn2 ... ank bq : ni ≥ 0 and p+q = nk }

is cyclic, but not regular.[1]:Exm.2 However, L is context-free, since M = { an1bn1 an2bn2 ... ank bnk : ni ≥ 0 } is, and context-free languages are closed under circular shift; L is obtained as circular shift of M.

References

[edit]
  1. 1 2 Marie-Pierre Béal and Olivier Carton and Christophe Reutenauer (1996). "Cyclic Languages and Strongly Cyclic Languages". Proc. Symposium on Theoretical Aspects of Computer Science. Lecture Notes in Computer Science. Vol. 1046. Springer. pp. 49–59.