The Kleene star operation, denoted by the superscript “*” (as in L*), is a fundamental operation in formal language theory, particularly in the study of regular languages. It plays a central role in the construction and analysis of regular expressions, automata, and the theoretical understanding of language closure properties. To understand its effect on a regular language, it is necessary to examine its definition, properties, implications for computational models, and its relationship with other language operations.
Definition and Formal Description
Let Σ be an alphabet, and let L be a language over Σ, that is, L ⊆ Σ*. The Kleene star of L, written as L*, is defined as the set of all strings that can be formed by concatenating zero or more strings from L. Formally,
L* = ⋃_{n=0}^{∞} L^n
where L^0 = {ε} (the set containing the empty string ε), and for n > 0, L^n = L^{n-1} · L (the concatenation of n strings from L).
This means that L* contains:
– The empty string ε (since by convention, the concatenation of zero strings is the empty string),
– All strings that can be obtained by concatenating any finite number (including zero) of strings from L.
It is important to note that the elements being concatenated may be the same or different strings from L, and the number of concatenations is unbounded but always finite for any individual string in L*.
Effect on Regular Languages
A language is termed "regular" if it can be accepted by a finite automaton or described by a regular expression. Regular languages are closed under the Kleene star operation; that is, if L is a regular language, then so is L*. This property is critical in both theoretical and practical contexts, as it ensures that the class of regular languages is robust under iterative repetition.
The closure under the Kleene star operation is a fundamental aspect of regular languages. This closure property is important when building complex languages from simpler ones. It guarantees that the introduction of arbitrary repetitions, including the possibility of zero repetitions (which introduces the empty string), does not take the language outside the class of regular languages.
Examples
1. Simple Example:
Let L = {a}, where Σ = {a}. Then,
L* = {ε, a, aa, aaa, aaaa, …}
This is, in fact, equal to Σ*, the set of all strings over the alphabet {a}.
2. More Complex Example:
Let L = {ab, c}. Then,
L* = {ε, ab, c, abab, abc, cab, cc, ababab, ababc, …}
This set contains all strings that can be formed by concatenating any number (including zero) of the strings "ab" or "c" in any order.
3. Regular Expression Example:
The regular expression (01)* describes the language L = {"", "01", "0101", "010101", …}, which is all strings that are concatenations of zero or more copies of "01".
Automata-Theoretic Perspective
From the perspective of finite automata, the Kleene star operation can be interpreted as follows. If there exists a finite automaton (deterministic or nondeterministic) that recognizes L, then one can construct a finite automaton that recognizes L* by adding transitions that allow the automaton to restart the computation at the initial state after reaching any accepting state. This construction is possible due to the finiteness of the automaton and the fact that the repetition is always finite for each accepted string.
For instance, given an NFA (nondeterministic finite automaton) for L, one can create an NFA for L* by adding ε-transitions from every accepting state back to the initial state, and by making the initial state also an accepting state (to accept ε).
Properties of the Kleene Star Operation
1. Inclusion of the Empty String:
L* always contains the empty string ε, regardless of whether ε was originally in L. This is because concatenating zero strings from L yields ε.
2. Idempotence:
Applying the Kleene star twice does not change the result: (L*)* = L*. This follows directly from the definition.
3. Monotonicity:
If L ⊆ M, then L* ⊆ M*. This is because any string formed by concatenating elements of L is also a concatenation of elements from M if L is a subset of M.
4. Distributivity over Union:
(L ∪ M)* = (L*) ∪ (M*) ∪ (L* M*), but not in the sense of simple algebraic distributivity. It is, strictly speaking, equal to the set of all finite concatenations of elements from L ∪ M.
Closure Properties
The closure of regular languages under the Kleene star operation is a critical result in automata theory. It is one of the three fundamental operations (along with union and concatenation) used in the construction of regular expressions. Regular languages are also closed under intersection, complementation, and difference, but the Kleene star is unique in enabling unbounded iteration.
Formally, if L is a regular language, then L* is regular. This is commonly shown using either regular expressions or automata constructions. For example, if L is accepted by a finite automaton, one can construct a new automaton for L* as outlined earlier.
Relationship to Regular Expressions
Regular expressions are algebraic notations for describing regular languages. The Kleene star is a primary operator in this notation. For instance, the regular expression (a|b)* represents the set of all strings over the alphabet {a, b}, that is, the language Σ*.
The Kleene star is indispensable in the design of pattern-matching engines and lexical analyzers, as it provides a concise way to express repetition.
Impact on Expressiveness
Applying the Kleene star to a regular language does not increase the expressive power beyond regular languages, because the result remains within the class of regular languages. However, it greatly enhances the ability to succinctly describe infinite languages using finite means. For instance, while L = {a} is finite, L* is infinite, as it includes all possible repetitions of "a".
Examples in Computer Science Applications
– Lexical Analysis:
In the design of programming language compilers, regular expressions with the Kleene star are used to define patterns for tokens, such as identifiers, numbers, and whitespace. For example, the pattern [a-zA-Z][a-zA-Z0-9]* matches identifiers that begin with a letter and are followed by zero or more letters or digits.
– Pattern Matching:
Text editors and search engines use regular expressions with the Kleene star to locate patterns within text. For instance, the pattern ab*c matches strings where "a" is followed by zero or more "b"s and then a "c", such as "ac", "abc", "abbc", etc.
Mathematical Properties and Proofs
The proof of closure under the Kleene star often uses the construction of automata. Given a DFA (Deterministic Finite Automaton) or NFA for L, the automaton for L* can be constructed as follows:
– Introduce a new initial state, which is also an accepting state.
– Add ε-transitions from this new state to the original initial state.
– Add ε-transitions from every accepting state of the original automaton back to the original initial state.
This construction ensures that any number (including zero) of iterations through the automaton for L are possible, corresponding exactly to the concatenations defined by the Kleene star.
Non-Regular Languages and the Kleene Star
It is instructive to note that while the Kleene star of a regular language is always regular, the Kleene star of a non-regular language may or may not be regular. However, this does not impact regular languages directly, as the operation preserves regularity when starting from a regular language.
Distinction between Kleene Star and Plus
There is a related operation called the Kleene plus, denoted as L+, which is defined as L+ = L · L*. That is, L+ contains all strings that are concatenations of one or more strings from L, whereas L* includes the empty string as well. This distinction can be important in language definitions where the presence or absence of the empty string is significant.
Role in Language Hierarchy
Within the Chomsky hierarchy, the regular languages (Type 3) are the simplest. The Kleene star is central to the definition of regular languages, as it is one of the core operations (alongside union and concatenation) that generate all regular languages from finite languages through iterative application.
Algebraic Structure
The regular languages over a fixed alphabet form a Kleene algebra, where the set of languages is equipped with operations of union, concatenation, and star, and has identity elements for each operation (empty set for union, ε for concatenation, etc.). The Kleene star operation endows this algebraic structure with properties analogous to closure under repetition in arithmetic or algebra.
Decidability and Computability
Because regular languages are closed under the Kleene star, questions about membership, emptiness, finiteness, and equivalence remain decidable after the application of this operation. This is a significant property in computational theory, as it allows for effective algorithms for working with regular languages and their representations.
Summary Paragraph
The Kleene star is a fundamental operation in the theory of regular languages, enabling the construction of new regular languages through the finite concatenation of strings from a given language, including the empty string. It preserves regularity, is expressible via both automata and regular expressions, and is essential in the practical engineering of programming languages, text processing tools, and pattern-matching systems. Its mathematical properties and its role in the closure of the class of regular languages underpin both theoretical and applied aspects of computer science.
Other recent questions and answers regarding Closure of Regular Operations:
- Describe the process of applying the star operation to a regular language and how it affects the resulting language.
- What is the closure under concatenation, and how does it relate to regular languages?
- Explain the construction process of creating a new NFA to recognize the concatenation of two regular languages.
- How can we prove that the union of two regular languages is also a regular language?
- What does it mean for regular languages to be closed under the regular operations of concatenation and union?

