CS 310 : Automata Theory Lecture-1 Summary : By Ashutosh Pankaj July 29, 2022 Today’s lecture was a brief overview of the content that we are going to cover in this course. It broadly has two major parts - Grammar and Machines. Before getting into that, let’s first look into some notations. Σ : Terminal Symbols (or simply, Alphabets of the language) N : Non-terminal Symbols (also called variables) Σ* : String (or Sequence) using elements from Terminal symbols (Σ ∪ N)* : String using elements from both Terminal and Non-Terminal symbols 1 Grammar Grammar is a finite set of formal rules that generate syntactically correct strings. The set of such strings is called a Language. We have seen examples of this in Lecture-0. Grammars can be Restricted and Un-restricted. Grammar Restricted Context-Free Unrestricted Context Sensitive Right-Linear • Un-restricted : No restriction on α and β • Restricted Context-free : α is a single Non-terminal variable • Restricted Context-Sensitive : |α| ≤ |β|, also called non-erasing • Restricted Context-Free Right-Linear : Rightmost symbol is Non-Terminal along with the restriction of context-free 1 Example: Grammar for generating only and all Palindromes using binary (0 and 1). 1. α → 0 α 0 2. α → 1 α 1 3. α → Homework : Write Grammar for a Language that has equal number of zeroes and ones. 2 Machine models There are three main Machine Models which we will discuss in the coming lectures. Grammar Finite State Automata Push Down Automata Turing Machine I won’t be writing about Finite State Automata because it is already covered last semester in CS 228. Push Down Automata : It ewill have an input, a finite control and a stack. We have a special marker to represent the botton of the stack. Example : PDA for the Grammar - n0 (w) = n1 (w) (try to comprehend this PDA and how stack is used here on your own) Homework : Construct a Push Down Automata to accept all Palindromes. Turing Machine will be covered in the next lecture. 1 1 do let me know if there are any mistake(s) in this document 2