MCA-C303 Theory of Computer Science

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

MCA- C303

Theory of Computer Science


(2020-2021)
Dr. Karamjit Bhatia
Professor
Department of Computer Science
G. K. V., Haridwar (Uttarakhand)
Course objective
• Develop a formal notation for strings, languages and
machines.
• Design finite automata to accept a set of strings of a language.
• Learn about regular language and apply the closure
properties of languages.
• Design context free grammars to generate strings from a
context free language and convert them into normal forms.
• Demonstrate equivalence of languages accepted by Push
Down Automata and languages generated by context free
grammars.
• Identify the hierarchy of formal languages, grammars and
machines.
• Distinguish between computability and non-computability
and Decidability and undecidability.
Course outcomes
• Write a formal notation for strings, languages and machines.
• Design finite automata to accept a set of strings of a
language.
• For a given language determine whether the given language
is regular or not.
• Design context free grammars to generate strings of context
free language.
• Determine equivalence of languages accepted by Push Down
Automata and languages generated by context free
grammars.
• Write the hierarchy of formal languages, grammars and
machines.
• Distinguish between computability and non-computability
and Decidability and undecidability.
Significance

In designing Compilers

• Lexical Analyzer (to recognize tokens – identifiers, key


words, constants, operators, punctuation symbols etc.), and

• Syntax Analyzer (determining whether the given sentence is


grammatically correct)

In competitive examinations such as GATE, NET etc.


Prerequisite

• String operations

• Basic knowledge of Set Theory

• Logical thinking ability


Syllabus
Introduction to Languages; Recursive Definitions; Regular Expressions;
Finite Automata; Transition Graphs; Kleene's Theorem.

Non-deterministic Finite Automata, Finite Automata with Output -


Moore and Mealy machines, Equivalence of Moore and Mealy machines;
Regular Languages; Non-regular Languages; Decidability.

Context-Free Grammars. Trees; Regular Grammars; Chomsky's Normal


Form; Pushdown Automata; Context- Free Languages; Non- Context-
Free Languages; Parsing; Decidability for CFG - Emptiness, Finiteness
and Membership questions about CFG.

Turing Machines (TM); Post Machines (PM), simulating a PM on TM.

Recursively Enumerable Languages; Encoding of Turing Machines;


Phrase Structure Grammar; Context Sensitive Grammar; Defining the
Computer and Computable Functions; Church’s Thesis; Halting Problem
for Turing Machines.
Recommended Books (Latest Edition)
(Not limited to following list)

• Cohen, Daniel I. A., “Introduction to Computer Theory”,


John Wiley & Sons.
• Hopcroft, J. E. & Ullman, J. D., “Introduction to Automata
Theory, Languages and Computation”, Narosa Publishing
House.
• Lewis, H. R., Papadilypriou, C. H., “Elements of the
Theory of Computation”, PHI.
• Mishra, K. L. P. & Chandrashekaran, N., “Theory of
Computer Science”, PHI
• Xavier S. P. E, “Theory of Automata, Formal Languages
and Computation”, New Age International Publishers

You might also like