Skip to main content

Kleene Star Closure , Kleen Plus Operation and Recursive definition of languages

Kleene Star Closure
Given Σ, then the Kleene Star Closure of the alphabet Σ, denoted by Σ * , is the collection of all strings defined over Σ, including Λ.
It is to be noted that Kleene Star Closure can be defined over any set of strings.
Examples

If Σ = {x}
Then Σ * = {Λ, x, xx, xxx, xxxx, ....}
If Σ = {0,1}
Then Σ * = {Λ, 0, 1, 00, 01, 10, 11, ....}
If Σ = {aaB, c}
Then Σ * = {Λ, aaB, c, aaBaaB, aaBc, caaB, cc, ....}
Note
Languages generated by Kleene Star Closure of set of strings, are infinite languages. (By infinite language, it is supposed that the language contains infinite many words, each of finite length).

Kleen PLUS Operation ( + )
Kleen Plus Operation is same as Kleene Star Closure except that it does not generate Λ (null string), automatically.
Example

If Σ = {0,1}
Then Σ + = {0, 1, 00, 01, 10, 11, ....}
If Σ = {aab, c}
Then Σ + = {aab, c, aabaab, aabc, caab, cc, ....}
Remark
It is to be noted that Kleene Star can also be operated on any string i.e. a * can be considered to be all possible strings defined over {a}, which shows that a * generates Λ, a, aa, aaa, ...
It may also be noted that a + can be considered to be all possible non empty strings defined over {a}, which shows that a + generates a, aa, aaa, aaaa, ...

Recursive definition of languages
The following three steps are used in recursive definition
Some basic words are specified in the language.
Rules for constructing more words are defined in the language.
No strings except those constructed in above, are allowed to be in the language.
Example

Defining language of INTEGER
Step 1: 1 is in INTEGER.
Step 2: If x is in INTEGER then x+1 and x-1 are also in INTEGER
Step 3: No strings except those constructed in above, are allowed to be in INTEGER.
Example
Defining language of EVEN
Step 1: 2 is in EVEN.
Step 2: If x is in EVEN then x+2 and x-2 are also in EVEN
Step 3: No strings except those constructed in above, are allowed to be in EVEN.
Example
Defining the language factorial
Step 1: As 0!=1, so 1 is in factorial.
Step 2: n!=n*(n-1)! is in factorial.
Step 3: No strings except those constructed in above, are allowed to be in factorial.

Comments

Popular posts from this blog

important question on Entity Relationship Model(ER Model)

5)A university registrar’s office maintains data about the following entities: (a) courses, including number, title, credits, syllabus, and prerequisites; (b) course offerings, including course number, year, semester, section number, instructor(s), timings, and classroom; (c) students, including student-id, name, and program; and (d) instructors, including identification number, name, department, and title. Further, the enrollment of students in courses and grades awarded to students in each course they are enrolled for must be appropriately modeled. Construct an E-R diagram for the registrar’s office. Document all assumptions that you make about the mapping constraints. Answer:   In the answer given here, the main entity sets are student, course, course-offering, and instructor. The entity set course-offering is a weak entity set dependent on course. The assumptions made are : a class meets only at one particular place and time. This E - R diagram cannot model a c...

Library Management System DataFlow Diagram

Library Management System DataFlow Diagram 1) Zero Level DFD 2) 1st level DFD and 2nd level DFD

how to Install Numpy, Pandas and matplotlib on ubuntu 18.04 and Linux Mint

Install Python, NumPy,Matplotlib for Python 3 on Ubuntu 18.04, Linux Mint, Debian Linux. This is a short article about installing Numpy, Pandas , Matplotlib, Python3 on the latest Ubuntu 18.04 LTS, Linux Mint, Debian Linux which comes with Python 3.6.5. Let’s start by making sure we have an updated system: 1 sudo apt update 2 sudo apt upgrade Now, let’s install NumPy, Pandas,Matplotlib : sudo apt-get install python-pip sudo pip install numpy sudo pip install pandas sudo pip install matplotlib Test numpy : Open up a Terminal in Your Linux Operating System by running the following: python3 At the Terminal, type the following: >>> import numpy as np >>> np.__version__ '1.13.3'   Test Pandas : Open up a Terminal in Your Linux Operating System by running the following: python3 At the Terminal, type the following: >>> import pandas as pd >>> pd.__version__ '0.22.0'   Test Matpl...