Welcome to the "Formal Languages and Applications" course! This course provides a comprehensive exploration of formal language structures and computational models. It covers regular expressions, finite automata, context-free grammars, and parsing algorithms, examining how these frameworks form the mathematical basis for programming languages, compilers, and natural language processing. Learners will study the theoretical underpinnings of language recognition systems while analyzing their role in solving computational problems.

Formal Languages and Applications

Recommended experience
Recommended experience
Intermediate level
Basic programming skills and familiarity with algorithms and discrete mathematics for understanding formal language theory is recommended.
Recommended experience
Recommended experience
Intermediate level
Basic programming skills and familiarity with algorithms and discrete mathematics for understanding formal language theory is recommended.
What you'll learn
Recognise different formal languages and describe their unique properties and structures.
Create tools to process languages, preparing learners for applications in programming languages.
Use automata and parsing methods to address computational challenges in various domains.
Utilize automata and formal methods to identify and generate languages accurately.
Details to know

Add to your LinkedIn profile
November 2025
See how employees at top companies are mastering in-demand skills

There are 10 modules in this course
This module introduces the learners to the fundamental elements of formal languages. Topics introduced in this module are Alphabets, Strings, Operations on Strings, and Languages as a set of strings and their applications. We will discuss how to use the proof techniques to prove some properties of strings and languages. We assume the learners are already exposed to some basic proof techniques, which we can use directly with a brief review. The approach to cover the topics will be with representative pen and paper exercises.
What's included
15 videos12 readings12 assignments
15 videos• Total 80 minutes
- Meet Your Instructor - Prof. S.P. Vimal• 1 minute
- Meet Your Instructor - Prof. Kunal Korgaonkar• 2 minutes
- Course Introductory Video• 2 minutes
- Introduction• 2 minutes
- Introducing Alphabets• 3 minutes
- Introducing Strings• 4 minutes
- Operations - Concatenation & Reverse• 4 minutes
- Operations - Prefix, Suffix & Substring• 9 minutes
- Kleene Star [Σ*]• 5 minutes
- Properties on String Operations - A Proof• 10 minutes
- Introducing Languages• 9 minutes
- Operations on Languages• 9 minutes
- Introduction to Grammar• 13 minutes
- Introduction to Automata• 4 minutes
- Summary of Module on Elements• 3 minutes
12 readings• Total 120 minutes
- Course Overview• 10 minutes
- Course Structure & Critical Information• 10 minutes
- Recommended Reading: Introducing Alphabets• 10 minutes
- Recommended Reading: Introducing Strings• 10 minutes
- Recommended Reading: Operations - Concatenation & Reverse• 10 minutes
- Recommended Reading: Operations - Prefix, Suffix & Substring• 10 minutes
- Recommended Reading: Kleene Star [Σ*]• 10 minutes
- Recommended Reading: Properties on String Operations - A Proof• 10 minutes
- Recommended Reading: Introducing Languages• 10 minutes
- Recommended Reading: Operations on Languages• 10 minutes
- Recommended Reading: Introduction to Grammar• 10 minutes
- Recommended Reading: Introduction to Automata• 10 minutes
12 assignments• Total 117 minutes
- Introducing Alphabets• 6 minutes
- Introducing Strings• 6 minutes
- Operations - Concatenation & Reverse• 6 minutes
- Operations - Prefix, Suffix & Substring• 6 minutes
- Kleene Star [Σ*]• 6 minutes
- Properties on String Operations - A Proof• 6 minutes
- Introducing Languages• 6 minutes
- Operations on Languages• 6 minutes
- Introduction to Grammar• 6 minutes
- Introduction to Automata• 3 minutes
- Let's Practice: Elements• 30 minutes
- Test Yourself: Elements• 30 minutes
This module is designed to introduce regular languages, regular expressions to specify RL, and dfa as acceptors of regular languages. Theorems on the formal relationship between RE and DFA will be discussed intuitively. The learners will be introduced to grammars, specifically left-linear and right-linear grammars, and their role in generating regular languages. Theorems on the connection between regular languages, regular expressions, DFA, and Left Linear, and right Linear Grammars will be discussed intuitively with examples. The learner will be encouraged to look for practical applications of the concepts introduced.
What's included
20 videos19 readings22 assignments
20 videos• Total 110 minutes
- Introducing Regular Expressions • 7 minutes
- An Advice on Writing RE’s• 4 minutes
- Definition of Regular Expressions• 9 minutes
- Languages Associated with REs• 7 minutes
- Problem Solving – Language for RE (1)• 6 minutes
- Problem Solving – Language for RE (2)• 5 minutes
- Problem Solving – RE for a Language (1)• 5 minutes
- Problem Solving – RE for a Language (2)• 3 minutes
- Regular Language (using RE)• 2 minutes
- Introducing Finite Automata• 7 minutes
- Deterministic Finite Automata (DFA) (1)• 11 minutes
- Deterministic Finite Automata (DFA) (2)• 4 minutes
- Deterministic Finite Automata (DFA)(3)• 5 minutes
- Language Accepted by DFA (1)• 6 minutes
- Language Accepted by DFA (2)• 3 minutes
- Designing DFA• 5 minutes
- RL as Language Accepted by DFAs• 3 minutes
- Grammars for Regular Languages• 8 minutes
- Grammars for Regular Languages (2)• 6 minutes
- Module Closure (Summary)• 4 minutes
19 readings• Total 190 minutes
- Recommended Reading: Introducing Regular Expressions • 10 minutes
- Recommended Reading: An Advice on Writing RE’s• 10 minutes
- Recommended Reading: Definition of Regular Expressions• 10 minutes
- Recommended Reading: Languages Associated with Regular Expressions• 10 minutes
- Recommended Reading: Problem Solving – Language for RE (1)• 10 minutes
- Recommended Reading: Problem Solving – Language for RE (2)• 10 minutes
- Recommended Reading: Problem Solving – RE for a Language (1)• 10 minutes
- Recommended Reading: Problem Solving – RE for a Language (2)• 10 minutes
- Recommended Reading: Regular Language (Using RE)• 10 minutes
- Recommended Reading: Introducing Finite Automata• 10 minutes
- Recommended Reading: Deterministic Finite Automata (DFA) (1)• 10 minutes
- Recommended Reading: Deterministic Finite Automata (DFA) (2)• 10 minutes
- Recommended Reading: Deterministic Finite Automata (DFA) (3)• 10 minutes
- Recommended Reading: Language Accepted by DFA (1)• 10 minutes
- Recommended Reading: Language Accepted by DFA (2)• 10 minutes
- Recommended Reading: Designing DFA• 10 minutes
- Recommended Reading: Grammars for Regular Languages• 10 minutes
- Recommended Reading: Grammars for Regular Languages (2)• 10 minutes
- Recommended Reading: Automaton for Left Linear Grammar• 10 minutes
22 assignments• Total 129 minutes
- Introducing Regular Expressions • 6 minutes
- An Advice on Writing RE’s• 3 minutes
- Definition of Regular Expressions• 6 minutes
- Languages Associated with Regular Expressions• 3 minutes
- Problem Solving – Language for RE (1)• 3 minutes
- Problem Solving – Language for RE (2)• 3 minutes
- Problem Solving – RE for a Language (1)• 3 minutes
- Problem Solving – RE for a Language (2)• 3 minutes
- Regular Language (Using RE)• 3 minutes
- Introducing Finite Automata• 3 minutes
- Deterministic Finite Automata (DFA) (1)• 3 minutes
- Deterministic Finite Automata (DFA) (2)• 3 minutes
- Deterministic Finite Automata (DFA) (3)• 3 minutes
- Language Accepted by DFA (1)• 3 minutes
- Language Accepted by DFA (2)• 3 minutes
- Designing DFA• 3 minutes
- RL as Language Accepted by DFAs• 3 minutes
- Grammars for Regular Languages• 3 minutes
- Grammars for Regular Languages (2)• 6 minutes
- Automaton for Left Linear Grammar• 3 minutes
- Let's Practice: Regular Languages, Regular Expressions and DFA• 30 minutes
- Test Yourself: Regular Languages, Regular Expressions and DFA• 30 minutes
This module focuses on the practical implementation of deterministic finite automata (DFA) through the development of a simple lexical analyser. Students will learn to represent DFA as transition tables, write pseudo-code for table-based computation, and implement these concepts in C programs. The module also explores the role of lexical analysis in language translation, the notion of lexical tokens, and the idea of the longest match in lexical analysers. By the end of the module, students can extend a lexical analyser to handle various tokens and reserved words, culminating in a programming exercise to apply these skills.
What's included
8 videos9 readings10 assignments
8 videos• Total 64 minutes
- Direct Implementation of a Simple DFA• 9 minutes
- Table Driven Implementation• 8 minutes
- Direct vs Table Driven Implementation• 5 minutes
- Structure of a Compiler• 6 minutes
- Working of a Lexical Analyser• 8 minutes
- Approach to Design Lexical Analyser• 5 minutes
- Lexical Analyser Design Example-1• 13 minutes
- Recognising Longest Match• 9 minutes
9 readings• Total 130 minutes
- Recommended Reading: Direct Implementation of a Simple DFA• 15 minutes
- Recommended Reading: Table Driven Implementation• 15 minutes
- Recommended Reading: Direct vs Table Driven Implementation• 15 minutes
- Recommended Reading: Structure of a Compiler• 15 minutes
- Recommended Reading: Working of a Lexical Analyser• 15 minutes
- Recommended Reading: Approach to Design Lexical Analyser• 15 minutes
- Recommended Reading: Lexical Analyser Design Example-1• 15 minutes
- Recommended Reading: Recognising Longest Match• 15 minutes
- Practice Labs• 10 minutes
10 assignments• Total 93 minutes
- Direct Implementation of a Simple DFA• 6 minutes
- Table Driven Implementation• 6 minutes
- Direct vs Table Driven Implementation• 3 minutes
- Structure of a Compiler• 3 minutes
- Working of a Lexical Analyser• 6 minutes
- Approach to Design Lexical Analyser• 3 minutes
- Lexical Analyser Design Example-1• 3 minutes
- Recognising Longest Match• 3 minutes
- Let's Practice: Implementing DFA & Applications• 30 minutes
- Test Yourself: Implementing DFA & Applications• 30 minutes
In this module, learners will explore reducing the number of states in a deterministic finite automaton (DFA). They will revisit the concept of equivalence classes, understand the Myhill-Nerode theorem, and learn its applications in state reduction. The module will cover the theorem's intuitive explanation and practical applications, present an algorithm for minimizing DFA states, and demonstrate the process through examples. The session will conclude with a discussion on the implications of state minimization in lexical analyzers and its benefits.
What's included
13 videos15 readings17 assignments
13 videos• Total 94 minutes
- Equivalent DFA’s • 6 minutes
- Indistinguishable States• 12 minutes
- Approach to Simplifying DFA• 5 minutes
- Mark in Mark-Reduce Method• 13 minutes
- Reduce in Mark-Reduce Method• 6 minutes
- Mark-Reduce Method – Example (1)• 12 minutes
- 0*1* vs. 0n1n (where n≥1)• 7 minutes
- The Myhill-Nerode Theorem• 5 minutes
- Applying Pumping Lemma • 7 minutes
- Applying Pumping Lemma (2)• 7 minutes
- Applying Pumping Lemma (3) • 5 minutes
- Closure Under Set Operations• 3 minutes
- Closure Under Reverse & Other Operations• 5 minutes
15 readings• Total 150 minutes
- Recommended Reading: Equivalent DFA’s • 10 minutes
- Recommended Reading: Indistinguishable States• 10 minutes
- Recommended Reading: Approach to Simplifying DFA• 10 minutes
- Recommended Reading: Mark in Mark-Reduce Method• 10 minutes
- Recommended Reading: Reduce in Mark-Reduce Method• 10 minutes
- Recommended Reading: Mark-Reduce Method – Example (1)• 10 minutes
- Recommended Reading: 0*1* vs. 0n1n (where n≥1)• 10 minutes
- Recommended Reading: The Myhill-Nerode Theorem• 10 minutes
- Recommended Reading: Introducing Pumping Lemma • 10 minutes
- Recommended Reading: Applying Pumping Lemma • 10 minutes
- Recommended Reading: Applying Pumping Lemma (2) • 10 minutes
- Recommended Reading: Applying Pumping Lemma (3) • 10 minutes
- Recommended Reading: Applying Pumping Lemma (4) • 10 minutes
- Recommended Reading: Closure Under Set Operations• 10 minutes
- Recommended Reading: Closure Under Reverse & Other Operations• 10 minutes
17 assignments• Total 108 minutes
- Equivalent DFA’s• 3 minutes
- Indistinguishable States• 3 minutes
- Approach to Simplifying DFA• 3 minutes
- Mark in Mark-Reduce Method• 3 minutes
- Reduce in Mark-Reduce Method• 3 minutes
- Mark-Reduce Method – Example (1)• 3 minutes
- 0*1* vs. 0n1n (where n≥1)• 3 minutes
- The Myhill-Nerode Theorem• 6 minutes
- Introducing Pumping Lemma• 3 minutes
- Applying Pumping Lemma• 3 minutes
- Applying Pumping Lemma (2)• 3 minutes
- Applying Pumping Lemma (3)• 3 minutes
- Applying Pumping Lemma (4)• 3 minutes
- Closure Under Set Operations• 3 minutes
- Closure Under Reverse & Other Operations• 3 minutes
- Let's Practice: Reduction of States in DFA• 30 minutes
- Test Yourself: Reduction of States in DFA• 30 minutes
This module introduces us to the second formal language of our course, called Context Free Language (CFL), and its applications. In this module, we will learn the motivations for understanding CFL and how to write (Context free) Grammar to generate CFL. This module will use many examples to demonstrate how to write grammar and perform derivation. The session will also cover the applications of CFLs and provide a high-level introduction to push-down automata, which accept languages generated by CFGs.
What's included
10 videos10 readings12 assignments
10 videos• Total 69 minutes
- Limitations of Regular Languages • 6 minutes
- Revisiting the Definition of Grammar• 9 minutes
- Example of CFG’s Languages Generated by CFG - 1• 6 minutes
- Example of CFG’s Languages Generated by CFG - 2• 8 minutes
- Example of CFG’s Languages Generated by CFG - 3• 8 minutes
- Left Most and Right Most Derivation - 1• 8 minutes
- Context-Free Languages and Applications• 7 minutes
- Introduction to Push-Down Automata• 4 minutes
- Membership in Languages, Equivalence of Languages, Applications• 8 minutes
- Module Closure (Summary)• 6 minutes
10 readings• Total 145 minutes
- Recommended Reading: Limitations of Regular Languages • 15 minutes
- Recommended Reading: Revisiting the Definition of Grammar• 15 minutes
- Recommended Reading: Example of CFG’s Languages Generated by CFG - 1• 15 minutes
- Recommended Reading: Example of CFG’s Languages Generated by CFG - 2• 15 minutes
- Recommended Reading: Example of CFG’s Languages Generated by CFG - 3• 15 minutes
- Recommended Reading: Left Most and Right Most Derivation - Example 1• 15 minutes
- Recommended Reading: Left Most and Right Most Derivation - Example 2• 10 minutes
- Recommended Reading: Context-Free Languages and Applications• 15 minutes
- Recommended Reading: Introduction to Push-Down Automata• 15 minutes
- Recommended Reading: Membership in Languages, Equivalence in Languages, Applications• 15 minutes
12 assignments• Total 120 minutes
- Limitations of Regular Languages• 6 minutes
- Revisiting the Definition of Grammar• 6 minutes
- Example of CFG’s Languages Generated by CFG - 1• 6 minutes
- Example of CFG’s Languages Generated by CFG - 2• 6 minutes
- Example of CFG’s Languages Generated by CFG - 3• 6 minutes
- Left Most and Right Most Derivation - Example 1• 6 minutes
- Left Most and Right Most Derivation - Example 2• 6 minutes
- Context-Free Languages and Applications• 6 minutes
- Introduction to Push-Down Automata• 6 minutes
- Membership in Languages, Equivalence in Languages, Applications• 6 minutes
- Let's Practice: Context-Free Languages• 30 minutes
- Test Yourself: Context-Free Languages• 30 minutes
This module introduces the concept of parsing and the significance of ambiguity in grammars. Parsing is crucial for verifying whether a string belongs to a language. The module explores the motivation behind unambiguous grammar specifications, particularly in programming languages, and provides methods to identify and eliminate ambiguity in grammars. Additionally, the session covers the simplification of context-free grammars (CFGs) by eliminating redundant or useless productions and introduces the concept and importance of normal forms, particularly Chomsky Normal Form (CNF).
What's included
18 videos17 readings19 assignments
18 videos• Total 92 minutes
- What it Means to Verify if w ∈ L• 7 minutes
- Motivation for the Grammar to Specify Languages Unambiguously• 4 minutes
- Example 1 - Ambiguous Grammar• 3 minutes
- Example 2 - Ambiguous Grammar• 3 minutes
- Explanation of Lemma• 6 minutes
- Example 1 - Eliminating Productions• 7 minutes
- Example 2 - Eliminating Productions• 5 minutes
- What is Normal Form? Why is Normal Form? • 5 minutes
- Motivation with an Example• 4 minutes
- Pumping Lemma Statement• 3 minutes
- Example 1• 7 minutes
- Example 2• 9 minutes
- Example 3• 7 minutes
- Closed Under Operations Union, Concatenation and Kleene-Closure• 5 minutes
- Not Closed Under Intersection and Complementation• 3 minutes
- Examples • 3 minutes
- Deciding Whether L(G) is Empty and Infinite• 5 minutes
- Module Closure (Summary) • 6 minutes
17 readings• Total 255 minutes
- Recommended Reading: What it Means to Verify if w ∈ L• 15 minutes
- Recommended Reading: Motivation for the Grammar to Specify Languages Unambiguously• 15 minutes
- Recommended Reading: Example 1 - Ambiguous Grammar• 15 minutes
- Recommended Reading: Example 2 - Ambiguous Grammar• 15 minutes
- Recommended Reading: Explanation of Lemma• 15 minutes
- Recommended Reading: Example 1 - Eliminating Productions• 15 minutes
- Recommended Reading: Example 2 - Eliminating Productions• 15 minutes
- Recommended Reading: What is Normal Form? Why is Normal Form? • 15 minutes
- Recommended Reading: Motivation with an Example• 15 minutes
- Recommended Reading: Pumping Lemma Statement• 15 minutes
- Recommended Reading: Example 1• 15 minutes
- Recommended Reading: Example 2• 15 minutes
- Recommended Reading: Example 3• 15 minutes
- Recommended Reading: Closed Under Operations Union, Concatenation and Kleene-Closure• 15 minutes
- Recommended Reading: Not Closed Under Intersection and Complementation• 15 minutes
- Recommended Reading: Example• 15 minutes
- Recommended Reading: Deciding Whether L(G) is Empty and Infinite• 15 minutes
19 assignments• Total 150 minutes
- What it Means to Verify if w ∈ L• 6 minutes
- Motivation for the Grammar to Specify Languages Unambiguously• 6 minutes
- Example 1 - Ambiguous Grammar• 3 minutes
- Example 2 - Ambiguous Grammar• 3 minutes
- Explanation of Lemma• 6 minutes
- Example 1 - Eliminating Productions• 3 minutes
- Example 2 - Eliminating Productions• 3 minutes
- What is Normal Form? Why is Normal Form? • 6 minutes
- Motivation with an Example• 6 minutes
- Pumping Lemma Statement• 6 minutes
- Example 1• 6 minutes
- Example 2• 6 minutes
- Example 3• 6 minutes
- Closed Under Operations Union, Concatenation and Kleene-Closure• 6 minutes
- Not Closed Under Intersection and Complementation• 6 minutes
- Example• 6 minutes
- Deciding Whether L(G) is Empty and Infinite• 6 minutes
- Let's Practice: Ambiguity in CFG• 30 minutes
- Test Yourself: Ambiguity in CFG• 30 minutes
In this module, learners will be introduced to the fundamentals of parsing, focusing on the recursive descent parsing technique. Through examples, pseudo-code, and hands-on demonstrations, students will gain a practical understanding of how recursive descent parsers work. They will learn how to implement and troubleshoot parsers for context-free grammars and address common challenges such as left recursion and grammar conflicts.
What's included
11 videos10 readings12 assignments
11 videos• Total 67 minutes
- Introduction to Parsing• 6 minutes
- Approaches to Look for Derivation• 7 minutes
- How to Write Recursive Descent Parser • 5 minutes
- Writing a Recursive Descent Parser in C• 10 minutes
- Issues in the Expression Grammar Example• 6 minutes
- Rewriting the Grammar: Eliminate Left Recursion• 4 minutes
- Rewriting the Grammar: Left Factoring • 5 minutes
- Rewriting the Grammar: Non-Terminals in the Grammar• 2 minutes
- Recursive Descent Parser for Rewritten Expressions Grammar • 10 minutes
- Drawbacks of Recursive Parsing • 6 minutes
- Summary• 5 minutes
10 readings• Total 150 minutes
- Recommended Reading: Introduction to Parsing• 15 minutes
- Recommended Reading: Approaches to Look for Derivation• 15 minutes
- Recommended Reading: How to Write Recursive Descent Parser• 15 minutes
- Recommended Reading: Writing a Recursive Descent Parser in C• 15 minutes
- Recommended Reading: Issues in the Expression Grammar Example• 15 minutes
- Recommended Reading: Rewriting the Grammar: Eliminate Left Recursion• 15 minutes
- Recommended Reading: Rewriting the Grammar: Left Factoring • 15 minutes
- Recommended Reading: Rewriting the Grammar: Non-Terminals in the Grammar• 15 minutes
- Recommended Reading: Recursive Descent Parser for Rewritten Expressions Grammar • 15 minutes
- Recommended Reading: Drawbacks of Recursive Parsing • 15 minutes
12 assignments• Total 111 minutes
- Introduction to Parsing• 6 minutes
- Approaches to Look for Derivation• 6 minutes
- How to Write Recursive Descent Parser• 6 minutes
- Writing a Recursive Descent Parser in C• 3 minutes
- Issues in the Expression Grammar Example• 6 minutes
- Rewriting the Grammar: Eliminate Left Recursion• 6 minutes
- Rewriting the Grammar: Left Factoring • 6 minutes
- Rewriting the Grammar: Non-Terminals in the Grammar• 3 minutes
- Recursive Descent Parser for Rewritten Expressions Grammar • 3 minutes
- Drawbacks of Recursive Parsing • 6 minutes
- Let's Practice: Introduction to Parsing with Recursive Descent Parsing• 30 minutes
- Test Yourself: Introduction to Parsing with Recursive Descent Parsing• 30 minutes
In this module, learners will be introduced to LL(1) parsing, a top-down parsing technique. The module will cover the construction of nullable, first, and follow sets, which are essential for building the LL(1) parsing table. Through examples and code demonstrations, learners will gain a practical understanding of constructing and using LL(1) parsing tables. The module will also address handling conflicts in LL(1) parsing and provide an overview of LL(k) parsing techniques.
What's included
14 videos13 readings15 assignments
14 videos• Total 69 minutes
- What is LL(1) Parsing?• 4 minutes
- Introducing (Predictive) Parsing Table and Using it to Parse• 6 minutes
- Construction of Nullable, First and Follow Sets• 4 minutes
- Construction Algorithm - Nullable, First and Follow• 4 minutes
- Nullable, First and Follow - Example 1• 5 minutes
- Nullable, First and Follow - Example 2• 4 minutes
- Table Construction Algorithm• 6 minutes
- Parsing a String Using Table• 5 minutes
- Code Demonstration for LL(1) in C• 6 minutes
- Example 2 – LL(1) Table• 6 minutes
- What are Conflicts in LL(1) Parsing Table?• 4 minutes
- Resolving Conflicts• 4 minutes
- LL(2) and LL(k) Parsers• 5 minutes
- Summary• 6 minutes
13 readings• Total 195 minutes
- Recommended Reading: What is LL(1) Parsing?• 15 minutes
- Recommended Reading: Introducing (Predictive) Parsing Table and Using it to Parse• 15 minutes
- Recommended Reading: Construction of Nullable, First and Follow Sets• 15 minutes
- Recommended Reading: Construction Algorithm - Nullable, First and Follow• 15 minutes
- Recommended Reading: Nullable, First and Follow - Example 1• 15 minutes
- Recommended Reading: Nullable, First and Follow - Example 2• 15 minutes
- Recommended Reading: Table Construction Algorithm• 15 minutes
- Recommended Reading: Parsing a String Using Table• 15 minutes
- Recommended Reading: Code Demonstration for LL(1) in C• 15 minutes
- Recommended Reading: Example 2 – LL(1) Table• 15 minutes
- Recommended Reading: What are Conflicts in LL(1) Parsing Table?• 15 minutes
- Recommended Reading: Resolving Conflicts• 15 minutes
- Recommended Reading: LL(2) and LL(k) Parsers• 15 minutes
15 assignments• Total 120 minutes
- What is LL(1) Parsing?• 6 minutes
- Introducing (Predictive) Parsing Table and Using it to Parse• 3 minutes
- Construction of Nullable, First and Follow Sets• 6 minutes
- Construction Algorithm - Nullable, First and Follow• 3 minutes
- Nullable, First and Follow - Example 1• 3 minutes
- Nullable, First and Follow - Example 2• 6 minutes
- Table Construction Algorithm• 6 minutes
- Parsing a String Using Table• 3 minutes
- Code Demonstration for LL(1) in C• 3 minutes
- Example 2 – LL(1) Table• 3 minutes
- What are Conflicts in LL(1) Parsing Table?• 6 minutes
- Resolving Conflicts• 6 minutes
- LL(2) and LL(k) Parsers• 6 minutes
- Let's Practice: Parsing - LL(1)• 30 minutes
- Test Yourself: Parsing - LL(1)• 30 minutes
In this module, learners will be introduced to bottom-up parsing techniques with detailed construction and implementation of LR(0) parsers. The need for bottom-up parsing, parsers with various look-ahead, their relative strengths, and applications will be discussed.
What's included
10 videos10 readings12 assignments
10 videos• Total 62 minutes
- What are the Weaknesses of LL(k) Parsers• 4 minutes
- Demonstration of Shift Reduce Parser• 7 minutes
- The Need of LR Parsing Table• 3 minutes
- What is LR(0) Parsing?• 3 minutes
- Example: LR(0) Parsing Table to Parse a String• 13 minutes
- Constructing LR(0) Parsing Table• 7 minutes
- Parsing a String Using LR(0)• 11 minutes
- What is LR(1) Parsing and LR(k) Parsing• 4 minutes
- Hierarchy of Grammar Classes Involving LL and LR• 6 minutes
- Summary• 5 minutes
10 readings• Total 150 minutes
- Recommended Reading: What are the Weaknesses of LL(k) Parsers• 15 minutes
- Recommended Reading: Demonstration of Shift Reduce Parser• 15 minutes
- Recommended Reading: The Need of LR Parsing Table• 15 minutes
- Recommended Reading: What is LR(0) Parsing?• 15 minutes
- Recommended Reading: Example: LR(0) Parsing Table to Parse a String• 15 minutes
- Recommended Reading: Constructing LR(0) Parsing Table• 15 minutes
- Recommended Reading: Parsing a String Using LR(0)• 15 minutes
- Recommended Reading: Parsing a String Using LR(0) - 2• 15 minutes
- Recommended Reading: What is LR(1) Parsing and LR(k) Parsing• 15 minutes
- Recommended Reading: Hierarchy of Grammar Classes Involving LL and LR• 15 minutes
12 assignments• Total 114 minutes
- What are the Weaknesses of LL(k) Parsers• 6 minutes
- Demonstration of Shift Reduce Parser• 6 minutes
- The Need of LR Parsing Table• 6 minutes
- What is LR(0) Parsing?• 6 minutes
- Example: LR(0) Parsing Table to Parse a String• 6 minutes
- Constructing LR(0) Parsing Table• 6 minutes
- Parsing a String Using LR(0)• 3 minutes
- Parsing a String Using LR(0) - 2• 3 minutes
- What is LR(1) Parsing and LR(k) Parsing• 6 minutes
- Hierarchy of Grammar Classes Involving LL and LR• 6 minutes
- Let's Practice: Parsing - LR(0) and Illustration LR(k)• 30 minutes
- Test Yourself: Parsing - LR(0) and Illustration LR(k)• 30 minutes
In this module, learners will explore the concepts of Part-of-Speech (POS) tagging, their applications in Natural Language Processing (NLP), and the role of Context-Free Grammars (CFG) and parsers in these processes. The module will provide insights into developing a POS Tagger as a top-down/bottom-up parsing as explained in the earlier modules. The module will also discuss other possible applications of Context-Free Languages.
What's included
9 videos9 readings10 assignments
9 videos• Total 54 minutes
- Introducing POS Tagging - The Task and Applications• 5 minutes
- CFG and POS Tagging• 5 minutes
- POS Tagging as Parsing• 8 minutes
- Introduction to CSG• 8 minutes
- Real World Example 1• 6 minutes
- Real World Example 2• 5 minutes
- Applications • 6 minutes
- Intro to Grammar Hierarchy• 6 minutes
- Overview• 4 minutes
9 readings• Total 130 minutes
- Recommended Reading: Introducing POS Tagging - The Task and Applications• 15 minutes
- Recommended Reading: CFG and POS Tagging• 15 minutes
- Recommended Reading: POS Tagging as Parsing• 15 minutes
- Recommended Reading: Introduction to CSG• 15 minutes
- Recommended Reading: Real World Example 1• 15 minutes
- Recommended Reading: Real World Example 2• 15 minutes
- Recommended Reading: Applications • 15 minutes
- Recommended Reading: Intro to Grammar Hierarchy• 15 minutes
- Course Summary• 10 minutes
10 assignments• Total 102 minutes
- Introducing POS Tagging - The Task and Applications• 6 minutes
- CFG and POS Tagging• 6 minutes
- POS Tagging as Parsing• 6 minutes
- Introduction to CSG• 6 minutes
- Real World Example 1• 3 minutes
- Real World Example 2• 3 minutes
- Applications • 6 minutes
- Intro to Grammar Hierarchy• 6 minutes
- Let's Practice: Constituency Parsing for POS Tagging• 30 minutes
- Test Yourself: Constituency Parsing for POS Tagging• 30 minutes
Instructor

Offered by

Offered by

Birla Institute of Technology & Science, Pilani (BITS Pilani) is one of only ten private universities in India to be recognised as an Institute of Eminence by the Ministry of Human Resource Development, Government of India. It has been consistently ranked high by both governmental and private ranking agencies for its innovative processes and capabilities that have enabled it to impart quality education and emerge as the best private science and engineering institute in India. BITS Pilani has four international campuses in Pilani, Goa, Hyderabad, and Dubai, and has been offering bachelor's, master’s, and certificate programmes for over 58 years, helping to launch the careers for over 1,00,000 professionals.
Explore more from Algorithms
BBirla Institute of Technology & Science, Pilani
Course
- U
University of Colorado Boulder
Specialization
UUniversity of Colorado Boulder
Course
UUniversity of Washington
Course
Why people choose Coursera for their career

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.

Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy
Frequently asked questions
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
More questions
Financial aid available,
¹ Some assignments in this course are AI-graded. For these assignments, your data will be used in accordance with Coursera's Privacy Notice.