Cyclic language  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. If "A" is a set of symbols, and "A"* is the set of all strings built from symbols in "A", then a string set "L" ⊆ "A"* is called a formal language over the alphabet "A". The language "L" is called "cyclic" if where "w""n" denotes the "n"-fold repetition of the string "w", and "vw" denotes the concatenation of the strings "v" and "w". For example, using the alphabet "A" = {"a", "b" }, the language  is cyclic, but not regular. However, "L" is context-free, since "M" = { "a""n"1"b""n"1 "a""n"2"b""n"2 ... "a""n""k" "b""n""k" : "n""i" ≥ 0 } is, and context-free languages are closed under circular shift; "L" is obtained as circular shift of "M".