Introduction: Theory of Computation | Theory of Computation - Computer Science Engineering (CSE) PDF Download

Definition - Theory of Computation

Automata theory (also known as Theory Of Computation) is a theoretical branch of Computer Science and Mathematics, which mainly deals with the logic of computation with respect to simple machines, referred to as automata.

Theory Of ComputationTheory Of ComputationSome more points regarding the theory of computation: 

  • Automata* enables the scientists to understand how machines compute the functions and solve problems. 
  • The main motivation behind developing Automata Theory was to develop methods to describe and analyse the dynamic behavior of discrete systems.
  • The field is divided into three major branches: automata theory, computability theory and computational complexity theory. 
  • In order to perform a rigorous study of computation, computer scientists work with a mathematical abstraction of computers called a model of computation. There are several models in use, but the most commonly examined is the Turing machine
  • Automata is originated from the word “Automaton” which is closely related to “Automation”.
  • This automaton consists of:
    1. states (represented in the figure by circles),
    2. transitions (represented by arrows). 
  • As the automaton sees a symbol of input, it makes a transition (or jump) to another state, according to its transition function (which takes the current state and the recent symbol as its inputs). Uses of Automata: compiler design and parsing.
    Introduction: Theory of Computation | Theory of Computation - Computer Science Engineering (CSE) 

Question for Introduction: Theory of Computation
Try yourself:Automata word has originated from which word?
View Solution

Basics of Formal Language Theory

Our view of languages is that a language is a set of strings. In turn, a string is a finite sequence of letters from some alphabet. These concepts are defined rigorously as follows.

1. Symbol: 

Symbol is the smallest building block, which can be any alphabet, letter or any picture.

Introduction: Theory of Computation | Theory of Computation - Computer Science Engineering (CSE)

2. Alphabets (Σ): 

Alphabets are set of symbols, which are always finite. 

Introduction: Theory of Computation | Theory of Computation - Computer Science Engineering (CSE)

3. String: 

String is a finite sequence of symbols from some alphabet. String is generally denoted as w and length of a string is denoted as |w|.

Empty string is the string with zero occurrence of symbols, represented as ε.

Number of Strings (of length 2) that can be generated over the alphabet {a, b} -

Introduction: Theory of Computation | Theory of Computation - Computer Science Engineering (CSE)

Length of String |w| = 2

Number of Strings = 4

Conclusion:
For alphabet {a, b} with length n, number of strings can be generated = 2n.
Note: If the number of Σ’s is represented by |Σ|, then number of strings of length n, possible over Σ is |Σ|n. 

Question for Introduction: Theory of Computation
Try yourself:
How many strings of length 3 can be generated over the alphabet {0, 1}?
View Solution

4. Language: 

A language is a set of strings, chosen from some Σ* or we can say- A language is a subset of Σ* . A language which can be formed over ‘ Σ ‘ can be Finite or Infinite. 

Introduction: Theory of Computation | Theory of Computation - Computer Science Engineering (CSE)

5. Powers of ‘Σ‘:


Say Σ = {a,b} then
Σ0 = Set of all strings over Σ of length 0. {ε}
Σ1 = Set of all strings over Σ of length 1. {a, b}
Σ2 = Set of all strings over Σ of length 2. {aa, ab, ba, bb}
i.e. |Σ2|= 4 and Similarly, |Σ3| = 8
Σ* is a Universal Set.
Σ* = Σ0 U ΣU Σ2 ..........
= {ε} U {a, b} U {aa, ab, ba, bb}
= .............   //infinite language

Question for Introduction: Theory of Computation
Try yourself:
Which of the following correctly defines a language in the context of theoretical computer science?
View Solution

6. Convention: 

Capital letters A, B, C, L, etc. with or without subscripts are normally used to denote languages.

 

The document Introduction: Theory of Computation | Theory of Computation - Computer Science Engineering (CSE) is a part of the Computer Science Engineering (CSE) Course Theory of Computation.
All you need of Computer Science Engineering (CSE) at this link: Computer Science Engineering (CSE)
18 videos|69 docs|44 tests

Top Courses for Computer Science Engineering (CSE)

FAQs on Introduction: Theory of Computation - Theory of Computation - Computer Science Engineering (CSE)

1. What is the theory of computation?
Ans. The theory of computation is a branch of computer science that deals with the study of how problems can be solved using algorithms and the computational models that can be used to represent and analyze these algorithms. It explores the fundamental concepts and principles underlying computation and aims to understand the limitations and capabilities of different computational devices.
2. What is formal language theory?
Ans. Formal language theory is a subfield of the theory of computation that focuses on the study of formal languages, which are sets of strings defined over a finite alphabet. It investigates the formal properties of these languages, such as their syntax, grammar, and structure, and explores the relationships between different types of formal languages and their associated automata.
3. What are the basics of formal language theory?
Ans. The basics of formal language theory involve understanding the concepts of alphabets, strings, and formal languages. An alphabet is a finite set of symbols, and a string is a finite sequence of symbols from an alphabet. A formal language is a set of strings formed from an alphabet. Formal language theory also includes the study of formal grammars, which are used to generate and describe languages, and automata, which are computational models that recognize and process these languages.
4. What are the main components of the theory of computation?
Ans. The theory of computation consists of three main components: formal languages, automata theory, and computability theory. Formal languages involve the study of sets of strings defined over a finite alphabet. Automata theory focuses on the design and analysis of abstract computational devices, such as finite automata, pushdown automata, and Turing machines. Computability theory explores the concept of what can be computed and what cannot be computed by any computational device.
5. Why is the theory of computation important in computer science?
Ans. The theory of computation is important in computer science as it provides a theoretical foundation for understanding and analyzing the capabilities and limitations of different computational models. It helps in designing efficient algorithms, developing programming languages, and solving complex computational problems. The theory of computation also plays a crucial role in areas such as artificial intelligence, cryptography, and software engineering.
18 videos|69 docs|44 tests
Download as PDF
Explore Courses for Computer Science Engineering (CSE) exam

Top Courses for Computer Science Engineering (CSE)

Signup for Free!
Signup to see your scores go up within 7 days! Learn & Practice with 1000+ FREE Notes, Videos & Tests.
10M+ students study on EduRev
Related Searches

Previous Year Questions with Solutions

,

MCQs

,

Extra Questions

,

mock tests for examination

,

Summary

,

Semester Notes

,

video lectures

,

practice quizzes

,

ppt

,

Exam

,

Sample Paper

,

Free

,

Important questions

,

pdf

,

Viva Questions

,

past year papers

,

Objective type Questions

,

shortcuts and tricks

,

Introduction: Theory of Computation | Theory of Computation - Computer Science Engineering (CSE)

,

Introduction: Theory of Computation | Theory of Computation - Computer Science Engineering (CSE)

,

Introduction: Theory of Computation | Theory of Computation - Computer Science Engineering (CSE)

,

study material

;