Languages :
A general definition of language must cover a variety of distinct categories: natural languages, programming languages, mathematical languages, etc. The notion of natural languages like English, Hindi, etc. is familiar to us. Informally, language can be defined as a system suitable for expression of certain ideas, facts, or concepts, which includes a set of symbols and rules to manipulate these. The languages we consider for our discussion is an abstraction of natural languages. That is, our focus here is on formal languages that need precise and formal definitions. Programming languages belong to this category. We start with some basic concepts and definitions required in this regard.
Symbols :
Symbols are indivisible objects or entity that cannot be defined. That is, symbols are the atoms of the world of languages. A symbol is any single object such as , a, 0, 1, #, begin, or do. Usually, characters from a typical keyboard are only used as symbols. Quiz
x, y n 0
and
3. Consider the language L={ 01, 11, 011}. Which of the following strings are in L* 010101, 0001, 110, 010111101, 0111111110, 11010111111101, 110111110011, 11101101? 4. Let L1={ 00,11} and L2={ , 0, 01 } a) List the strings in the set L1L2. b) List the strings of the set L2* of length three or less.
Every automaton consists of some essential features as in real computers. It has a mechanism for reading input. The input is assumed to be a sequence of symbols over a given alphabet and is placed on an input tape(or written on an input file). The simpler automata can only read the input one symbol at a time from left to right but not change. Powerful versions can both read (from left to right or right to left) and change the input. The automaton can produce output of some form. If the output in response to an input string is binary (say, accept or reject), then it is called an accepter. If it produces an output sequence in response to an input sequence, then it is called a transducer(or automaton with output). The automaton may have a temporary storage, consisting of an unlimited number of cells, each capable of holding a symbol from an alphabet ( whcih may be different from the input alphabet). The automaton can both read and change the contents of the storage cells in the temporary storage. The accusing capability of this storage varies depending on the type of the storage.
Finite Automata
Automata (singular : automation) are a particularly simple, but useful, model of computation. They were initially proposed as a simple model for the behavior of neurons. The concept of a finite automaton appears to have arisen in the 1943 paper A logical calculus of the ideas immanent in
nervous activity", by Warren McCullock and Walter Pitts. In 1951 Kleene introduced regular expressions to describe the behaviour of finite automata. He also proved the important theorem saying that regular expressions exactly capture the behaviours of finite automata. In 1959, Dana Scott and Michael Rabin introduced non-deterministic automata and showed the surprising theorem that they are equivalent to deterministic automata. We will study these fundamental results. Since those early years, the study of automata has continued to grow, showing that they are indeed a fundamental idea in computing.
Basis :
i) ii) iii) is a RE is a RE , a is RE.
Regular Grammars
A grammar the following three forms:
A cB , A c, A
Where A, B ( with A = B allowed) and . A grammar G is leftlinear if each production has once of the following three forms.
A Bc , A c, A
A right or left-linear grammar is called a regular grammar.
Figure 1
i) Given any arbitrary CFG G there exists some PDA M that accepts exactly the same language generated by G. ii) Given any arbitrary PDA M there exists a CFG G that generates exactly the same language accpeted by M.
That is, for every one-state PDA M there is CFG G such that L(G) = N(M). For every move of the PDA M we introduce a production the grammar where N = T and . in
we can now apply the proof in part (i) in the reverse direction to show that L(G) = N(M).