0% found this document useful (0 votes)
289 views

Theory of Computation and Compiler Design - Introduction PDF

The document discusses theory of computation and compiler design. It introduces formal languages, automata theory, and abstract models of computation. It covers topics like finite automata, alphabets, strings, languages, and provides examples to illustrate concepts from automata theory including modeling systems with a finite number of states. The document also gives some history and applications of automata theory.

Uploaded by

sahuashishcs
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
289 views

Theory of Computation and Compiler Design - Introduction PDF

The document discusses theory of computation and compiler design. It introduces formal languages, automata theory, and abstract models of computation. It covers topics like finite automata, alphabets, strings, languages, and provides examples to illustrate concepts from automata theory including modeling systems with a finite number of states. The document also gives some history and applications of automata theory.

Uploaded by

sahuashishcs
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Theory of Computation and

Compiler Design
Course Code: CSE2004
Course Type: LT
Credits: 4
Taught by Ashish Kumar Sahu
Course Objectives:
To introduce Formal Languages, Automata Theory and Abstract models
of Computation and Computability.
To gain knowledge in computational theory.
To realize the theoretical concepts and techniques involved in the
software system development
To provide an insight into compiler design concepts.
Pre-requisites
• Data Structures

• Discrete Structures

3
Required Textbook
• Introduction to Automata Theory, Languages and Computation
• By J.E. Hopcroft, R. Motwani, J.D. Ullman
• 3rd Edition
• Addison Wesley/Pearson
• Author: Peter Linz profile imagePeter Linz
Publisher: C. Heath and Company125 Spring St. Lexington, MAUnited States

4
Homework Submission Policy

• Scan of Hardcopy to be submitted in the Googleclass on the due date


• Early submissions allowed
• No late submissions
• Extensions may be permitted under extraordinary circumstances
• Contact the instructor at least 2 days prior.

5
Homework Policy

• All homework must be done individually

• Cheating:
• Helping others, getting help, looking up website for
solutions, etc.
• Students caught cheating will be awarded by 0.

6
Introduction to Automata
Theory

7
What is Automata Theory?
• Study of abstract computing devices, or “machines”
• Automaton = an abstract computing device
• Note: A “device” need not even be a physical hardware!
• A fundamental question in computer science:
• Find out what different models of machines can do and cannot do
• The theory of computation
• Computability vs. Complexity

8
(A pioneer of automata theory)
Alan Turing (1912-1954)

• Father of Modern Computer Science


• English mathematician
• Studied abstract machines called
Turing machines even before
computers existed

9
Theory of Computation: A Historical
Perspective
1930s • Alan Turing studies Turing machines
• Decidability
• Halting problem

1940-1950s • “Finite automata” machines studied


• Noam Chomsky proposes the
“Chomsky Hierarchy” for formal
languages

1969 Cook introduces “intractable” problems


or “NP-Hard” problems

1970- Modern computer science: compilers,


computational & complexity theory evolve
10
Languages & Grammars
• Languages: “A language is a collection of
Or “words” sentences of finite length all constructed
from a finite alphabet of symbols”
• Grammars: “A grammar can be regarded as
a device that enumerates the sentences of a
language” - nothing more, nothing less

• N. Chomsky, Information and Control, Vol 2,


1959

Image source: Nowak et al. Nature, vol 417, 2002 11


The Chomsky Hierachy
• A containment hierarchy of classes of formal languages

Regular Context-
(DFA) free Context-
Recursively-
(PDA) sensitive
enumerable
(LBA)
(TM)

12
The Central Concepts of
Automata Theory

13
Alphabet
An alphabet is a finite, non-empty set of symbols
• We use the symbol ∑ (sigma) to denote an alphabet
• Examples:
• Binary: ∑ = {0,1}
• All lower case letters: ∑ = {a,b,c,..z}
• Alphanumeric: ∑ = {a-z, A-Z, 0-9}
• DNA molecule letters: ∑ = {a,c,g,t}
• …

14
Strings
A string or word is a finite sequence of symbols chosen from ∑
• Empty string is  (or “epsilon”)

• Length of a string w, denoted by “|w|”, is equal to the number of (non-


) characters in the string
• E.g., x = 010100 |x| = 6
• x = 01  0  1  00  |x| = ?

15
Powers of an alphabet
Let ∑ be an alphabet.

• ∑k = the set of all strings of length k

• ∑* = ∑0 U ∑1 U ∑2 U …

• ∑+ = ∑1 U ∑2 U ∑3 U …

16
Languages
L is a said to be a language over alphabet ∑, only if L  ∑*
 this is because ∑* is the set of all strings (of all possible length including 0) over the given
alphabet ∑
Examples:
1. Let L be the language of all strings consisting of n 0’s followed by n 1’s:
L = {, 01, 0011, 000111,…}
2. Let L be the language of all strings of with equal number of 0’s and 1’s:
L = {, 01, 10, 0011, 1100, 0101, 1010, 1001,…}

Definition: Ø denotes the EmptyCanonical


language ordering of strings in the language

• Let L = {}; Is L=Ø?


NO
17
Finite Automata
• Some Applications
• Software for designing and checking the behavior of digital circuits
• Lexical analyzer of a typical compiler
• Software for scanning large bodies of text (e.g., web pages) for pattern finding
• Software for verifying systems of all types that have a finite number of states
(e.g., stock market transaction, communication/network protocol)

18
Finite Automata : Examples
• On/Off switch action

state

• Modeling recognition of the word “then”

Start state Transition Intermediate Final state


state

19
Summary
• Automata theory & a historical perspective
• Chomsky hierarchy
• Finite automata
• Alphabets, strings/words/sentences, languages

20

You might also like