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.
Through hands-on programming projects, you'll develop lexical analyzers, parsers, and language recognition systems solving real-world problems. This balance of theory and practice builds both conceptual understanding and practical skills essential for computational problem-solving.
Ideal for software engineers, computer science students, and professionals working in language processing, this course equips participants with the expertise needed to design, analyze, and implement advanced systems used across modern software and AI-driven technologies.
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.
Recommended Reading: Properties on String Operations - A Proof•10分钟
Recommended Reading: Introducing Languages•10分钟
Recommended Reading: Operations on Languages•10分钟
Recommended Reading: Introduction to Grammar•10分钟
Recommended Reading: Introduction to Automata•10分钟
12个作业•总计117分钟
Introducing Alphabets•6分钟
Introducing Strings•6分钟
Operations - Concatenation & Reverse•6分钟
Operations - Prefix, Suffix & Substring•6分钟
Kleene Star [Σ*]•6分钟
Properties on String Operations - A Proof•6分钟
Introducing Languages•6分钟
Operations on Languages•6分钟
Introduction to Grammar•6分钟
Introduction to Automata•3分钟
Let's Practice: Elements•30分钟
Test Yourself: Elements•30分钟
Regular Languages, Regular Expressions and DFA
第 2 单元•小时 后完成
单元详情
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.
Recommended Reading: Language Accepted by DFA (1)•10分钟
Recommended Reading: Language Accepted by DFA (2)•10分钟
Recommended Reading: Designing DFA•10分钟
Recommended Reading: Grammars for Regular Languages•10分钟
Recommended Reading: Grammars for Regular Languages (2)•10分钟
Recommended Reading: Automaton for Left Linear Grammar•10分钟
22个作业•总计129分钟
Introducing Regular Expressions •6分钟
An Advice on Writing RE’s•3分钟
Definition of Regular Expressions•6分钟
Languages Associated with Regular Expressions•3分钟
Problem Solving – Language for RE (1)•3分钟
Problem Solving – Language for RE (2)•3分钟
Problem Solving – RE for a Language (1)•3分钟
Problem Solving – RE for a Language (2)•3分钟
Regular Language (Using RE)•3分钟
Introducing Finite Automata•3分钟
Deterministic Finite Automata (DFA) (1)•3分钟
Deterministic Finite Automata (DFA) (2)•3分钟
Deterministic Finite Automata (DFA) (3)•3分钟
Language Accepted by DFA (1)•3分钟
Language Accepted by DFA (2)•3分钟
Designing DFA•3分钟
RL as Language Accepted by DFAs•3分钟
Grammars for Regular Languages•3分钟
Grammars for Regular Languages (2)•6分钟
Automaton for Left Linear Grammar•3分钟
Let's Practice: Regular Languages, Regular Expressions and DFA•30分钟
Test Yourself: Regular Languages, Regular Expressions and DFA•30分钟
Implementing DFA & Applications
第 3 单元•小时 后完成
单元详情
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.
涵盖的内容
8个视频9篇阅读材料10个作业
显示有关单元内容的信息
8个视频•总计64分钟
Direct Implementation of a Simple DFA•9分钟
Table Driven Implementation•8分钟
Direct vs Table Driven Implementation•5分钟
Structure of a Compiler•6分钟
Working of a Lexical Analyser•8分钟
Approach to Design Lexical Analyser•5分钟
Lexical Analyser Design Example-1•13分钟
Recognising Longest Match•9分钟
9篇阅读材料•总计130分钟
Recommended Reading: Direct Implementation of a Simple DFA•15分钟
Test Yourself: Implementing DFA & Applications•30分钟
Reduction of States in DFA
第 4 单元•小时 后完成
单元详情
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.
Recommended Reading: Closure Under Set Operations•10分钟
Recommended Reading: Closure Under Reverse & Other Operations•10分钟
17个作业•总计108分钟
Equivalent DFA’s•3分钟
Indistinguishable States•3分钟
Approach to Simplifying DFA•3分钟
Mark in Mark-Reduce Method•3分钟
Reduce in Mark-Reduce Method•3分钟
Mark-Reduce Method – Example (1)•3分钟
0*1* vs. 0n1n (where n≥1)•3分钟
The Myhill-Nerode Theorem•6分钟
Introducing Pumping Lemma•3分钟
Applying Pumping Lemma•3分钟
Applying Pumping Lemma (2)•3分钟
Applying Pumping Lemma (3)•3分钟
Applying Pumping Lemma (4)•3分钟
Closure Under Set Operations•3分钟
Closure Under Reverse & Other Operations•3分钟
Let's Practice: Reduction of States in DFA•30分钟
Test Yourself: Reduction of States in DFA•30分钟
Context-Free Languages
第 5 单元•小时 后完成
单元详情
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.
涵盖的内容
10个视频10篇阅读材料12个作业
显示有关单元内容的信息
10个视频•总计69分钟
Limitations of Regular Languages •6分钟
Revisiting the Definition of Grammar•9分钟
Example of CFG’s Languages Generated by CFG - 1•6分钟
Example of CFG’s Languages Generated by CFG - 2•8分钟
Example of CFG’s Languages Generated by CFG - 3•8分钟
Left Most and Right Most Derivation - 1•8分钟
Context-Free Languages and Applications•7分钟
Introduction to Push-Down Automata•4分钟
Membership in Languages, Equivalence of Languages, Applications•8分钟
Module Closure (Summary)•6分钟
10篇阅读材料•总计145分钟
Recommended Reading: Limitations of Regular Languages •15分钟
Recommended Reading: Revisiting the Definition of Grammar•15分钟
Recommended Reading: Example of CFG’s Languages Generated by CFG - 1•15分钟
Recommended Reading: Example of CFG’s Languages Generated by CFG - 2•15分钟
Recommended Reading: Example of CFG’s Languages Generated by CFG - 3•15分钟
Recommended Reading: Left Most and Right Most Derivation - Example 1•15分钟
Recommended Reading: Left Most and Right Most Derivation - Example 2•10分钟
Recommended Reading: Context-Free Languages and Applications•15分钟
Recommended Reading: Introduction to Push-Down Automata•15分钟
Recommended Reading: Membership in Languages, Equivalence in Languages, Applications•15分钟
12个作业•总计120分钟
Limitations of Regular Languages•6分钟
Revisiting the Definition of Grammar•6分钟
Example of CFG’s Languages Generated by CFG - 1•6分钟
Example of CFG’s Languages Generated by CFG - 2•6分钟
Example of CFG’s Languages Generated by CFG - 3•6分钟
Left Most and Right Most Derivation - Example 1•6分钟
Left Most and Right Most Derivation - Example 2•6分钟
Context-Free Languages and Applications•6分钟
Introduction to Push-Down Automata•6分钟
Membership in Languages, Equivalence in Languages, Applications•6分钟
Let's Practice: Context-Free Languages•30分钟
Test Yourself: Context-Free Languages•30分钟
Ambiguity in CFG
第 6 单元•小时 后完成
单元详情
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).
涵盖的内容
18个视频17篇阅读材料19个作业
显示有关单元内容的信息
18个视频•总计92分钟
What it Means to Verify if w ∈ L•7分钟
Motivation for the Grammar to Specify Languages Unambiguously•4分钟
Example 1 - Ambiguous Grammar•3分钟
Example 2 - Ambiguous Grammar•3分钟
Explanation of Lemma•6分钟
Example 1 - Eliminating Productions•7分钟
Example 2 - Eliminating Productions•5分钟
What is Normal Form? Why is Normal Form? •5分钟
Motivation with an Example•4分钟
Pumping Lemma Statement•3分钟
Example 1•7分钟
Example 2•9分钟
Example 3•7分钟
Closed Under Operations Union, Concatenation and Kleene-Closure•5分钟
Not Closed Under Intersection and Complementation•3分钟
Examples •3分钟
Deciding Whether L(G) is Empty and Infinite•5分钟
Module Closure (Summary) •6分钟
17篇阅读材料•总计255分钟
Recommended Reading: What it Means to Verify if w ∈ L•15分钟
Recommended Reading: Motivation for the Grammar to Specify Languages Unambiguously•15分钟
Recommended Reading: Example 1 - Ambiguous Grammar•15分钟
Recommended Reading: Example 2 - Ambiguous Grammar•15分钟
Recommended Reading: Explanation of Lemma•15分钟
Recommended Reading: Example 1 - Eliminating Productions•15分钟
Recommended Reading: Example 2 - Eliminating Productions•15分钟
Recommended Reading: What is Normal Form? Why is Normal Form? •15分钟
Recommended Reading: Motivation with an Example•15分钟
Recommended Reading: Pumping Lemma Statement•15分钟
Recommended Reading: Example 1•15分钟
Recommended Reading: Example 2•15分钟
Recommended Reading: Example 3•15分钟
Recommended Reading: Closed Under Operations Union, Concatenation and Kleene-Closure•15分钟
Recommended Reading: Not Closed Under Intersection and Complementation•15分钟
Recommended Reading: Example•15分钟
Recommended Reading: Deciding Whether L(G) is Empty and Infinite•15分钟
19个作业•总计150分钟
What it Means to Verify if w ∈ L•6分钟
Motivation for the Grammar to Specify Languages Unambiguously•6分钟
Example 1 - Ambiguous Grammar•3分钟
Example 2 - Ambiguous Grammar•3分钟
Explanation of Lemma•6分钟
Example 1 - Eliminating Productions•3分钟
Example 2 - Eliminating Productions•3分钟
What is Normal Form? Why is Normal Form? •6分钟
Motivation with an Example•6分钟
Pumping Lemma Statement•6分钟
Example 1•6分钟
Example 2•6分钟
Example 3•6分钟
Closed Under Operations Union, Concatenation and Kleene-Closure•6分钟
Not Closed Under Intersection and Complementation•6分钟
Example•6分钟
Deciding Whether L(G) is Empty and Infinite•6分钟
Let's Practice: Ambiguity in CFG•30分钟
Test Yourself: Ambiguity in CFG•30分钟
Introduction to Parsing with Recursive Descent Parsing
第 7 单元•小时 后完成
单元详情
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.
涵盖的内容
11个视频10篇阅读材料12个作业
显示有关单元内容的信息
11个视频•总计67分钟
Introduction to Parsing•6分钟
Approaches to Look for Derivation•7分钟
How to Write Recursive Descent Parser •5分钟
Writing a Recursive Descent Parser in C•10分钟
Issues in the Expression Grammar Example•6分钟
Rewriting the Grammar: Eliminate Left Recursion•4分钟
Rewriting the Grammar: Left Factoring •5分钟
Rewriting the Grammar: Non-Terminals in the Grammar•2分钟
Recursive Descent Parser for Rewritten Expressions Grammar •10分钟
Drawbacks of Recursive Parsing •6分钟
Summary•5分钟
10篇阅读材料•总计150分钟
Recommended Reading: Introduction to Parsing•15分钟
Recommended Reading: Approaches to Look for Derivation•15分钟
Recommended Reading: How to Write Recursive Descent Parser•15分钟
Recommended Reading: Writing a Recursive Descent Parser in C•15分钟
Recommended Reading: Issues in the Expression Grammar Example•15分钟
Recommended Reading: Rewriting the Grammar: Eliminate Left Recursion•15分钟
Recommended Reading: Rewriting the Grammar: Left Factoring •15分钟
Recommended Reading: Rewriting the Grammar: Non-Terminals in the Grammar•15分钟
Recommended Reading: Recursive Descent Parser for Rewritten Expressions Grammar •15分钟
Recommended Reading: Drawbacks of Recursive Parsing •15分钟
12个作业•总计111分钟
Introduction to Parsing•6分钟
Approaches to Look for Derivation•6分钟
How to Write Recursive Descent Parser•6分钟
Writing a Recursive Descent Parser in C•3分钟
Issues in the Expression Grammar Example•6分钟
Rewriting the Grammar: Eliminate Left Recursion•6分钟
Rewriting the Grammar: Left Factoring •6分钟
Rewriting the Grammar: Non-Terminals in the Grammar•3分钟
Recursive Descent Parser for Rewritten Expressions Grammar •3分钟
Drawbacks of Recursive Parsing •6分钟
Let's Practice: Introduction to Parsing with Recursive Descent Parsing•30分钟
Test Yourself: Introduction to Parsing with Recursive Descent Parsing•30分钟
Parsing - LL(1)
第 8 单元•小时 后完成
单元详情
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.
涵盖的内容
14个视频13篇阅读材料15个作业
显示有关单元内容的信息
14个视频•总计69分钟
What is LL(1) Parsing?•4分钟
Introducing (Predictive) Parsing Table and Using it to Parse•6分钟
Construction of Nullable, First and Follow Sets•4分钟
Construction Algorithm - Nullable, First and Follow•4分钟
Nullable, First and Follow - Example 1•5分钟
Nullable, First and Follow - Example 2•4分钟
Table Construction Algorithm•6分钟
Parsing a String Using Table•5分钟
Code Demonstration for LL(1) in C•6分钟
Example 2 – LL(1) Table•6分钟
What are Conflicts in LL(1) Parsing Table?•4分钟
Resolving Conflicts•4分钟
LL(2) and LL(k) Parsers•5分钟
Summary•6分钟
13篇阅读材料•总计195分钟
Recommended Reading: What is LL(1) Parsing?•15分钟
Recommended Reading: Introducing (Predictive) Parsing Table and Using it to Parse•15分钟
Recommended Reading: Construction of Nullable, First and Follow Sets•15分钟
Recommended Reading: Construction Algorithm - Nullable, First and Follow•15分钟
Recommended Reading: Nullable, First and Follow - Example 1•15分钟
Recommended Reading: Nullable, First and Follow - Example 2•15分钟
Recommended Reading: Table Construction Algorithm•15分钟
Recommended Reading: Parsing a String Using Table•15分钟
Recommended Reading: Code Demonstration for LL(1) in C•15分钟
Recommended Reading: Example 2 – LL(1) Table•15分钟
Recommended Reading: What are Conflicts in LL(1) Parsing Table?•15分钟
Recommended Reading: Resolving Conflicts•15分钟
Recommended Reading: LL(2) and LL(k) Parsers•15分钟
15个作业•总计120分钟
What is LL(1) Parsing?•6分钟
Introducing (Predictive) Parsing Table and Using it to Parse•3分钟
Construction of Nullable, First and Follow Sets•6分钟
Construction Algorithm - Nullable, First and Follow•3分钟
Nullable, First and Follow - Example 1•3分钟
Nullable, First and Follow - Example 2•6分钟
Table Construction Algorithm•6分钟
Parsing a String Using Table•3分钟
Code Demonstration for LL(1) in C•3分钟
Example 2 – LL(1) Table•3分钟
What are Conflicts in LL(1) Parsing Table?•6分钟
Resolving Conflicts•6分钟
LL(2) and LL(k) Parsers•6分钟
Let's Practice: Parsing - LL(1)•30分钟
Test Yourself: Parsing - LL(1)•30分钟
Parsing - LR(0) and Illustration LR(k)
第 9 单元•小时 后完成
单元详情
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.
涵盖的内容
10个视频10篇阅读材料12个作业
显示有关单元内容的信息
10个视频•总计62分钟
What are the Weaknesses of LL(k) Parsers•4分钟
Demonstration of Shift Reduce Parser•7分钟
The Need of LR Parsing Table•3分钟
What is LR(0) Parsing?•3分钟
Example: LR(0) Parsing Table to Parse a String•13分钟
Constructing LR(0) Parsing Table•7分钟
Parsing a String Using LR(0)•11分钟
What is LR(1) Parsing and LR(k) Parsing•4分钟
Hierarchy of Grammar Classes Involving LL and LR•6分钟
Summary•5分钟
10篇阅读材料•总计150分钟
Recommended Reading: What are the Weaknesses of LL(k) Parsers•15分钟
Recommended Reading: Demonstration of Shift Reduce Parser•15分钟
Recommended Reading: The Need of LR Parsing Table•15分钟
Recommended Reading: What is LR(0) Parsing?•15分钟
Recommended Reading: Example: LR(0) Parsing Table to Parse a String•15分钟
Recommended Reading: Parsing a String Using LR(0)•15分钟
Recommended Reading: Parsing a String Using LR(0) - 2•15分钟
Recommended Reading: What is LR(1) Parsing and LR(k) Parsing•15分钟
Recommended Reading: Hierarchy of Grammar Classes Involving LL and LR•15分钟
12个作业•总计114分钟
What are the Weaknesses of LL(k) Parsers•6分钟
Demonstration of Shift Reduce Parser•6分钟
The Need of LR Parsing Table•6分钟
What is LR(0) Parsing?•6分钟
Example: LR(0) Parsing Table to Parse a String•6分钟
Constructing LR(0) Parsing Table•6分钟
Parsing a String Using LR(0)•3分钟
Parsing a String Using LR(0) - 2•3分钟
What is LR(1) Parsing and LR(k) Parsing•6分钟
Hierarchy of Grammar Classes Involving LL and LR•6分钟
Let's Practice: Parsing - LR(0) and Illustration LR(k)•30分钟
Test Yourself: Parsing - LR(0) and Illustration LR(k)•30分钟
Constituency Parsing for POS Tagging
第 10 单元•小时 后完成
单元详情
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.
涵盖的内容
9个视频9篇阅读材料10个作业
显示有关单元内容的信息
9个视频•总计54分钟
Introducing POS Tagging - The Task and Applications•5分钟
CFG and POS Tagging•5分钟
POS Tagging as Parsing•8分钟
Introduction to CSG•8分钟
Real World Example 1•6分钟
Real World Example 2•5分钟
Applications •6分钟
Intro to Grammar Hierarchy•6分钟
Overview•4分钟
9篇阅读材料•总计130分钟
Recommended Reading: Introducing POS Tagging - The Task and Applications•15分钟
Recommended Reading: CFG and POS Tagging•15分钟
Recommended Reading: POS Tagging as Parsing•15分钟
Recommended Reading: Introduction to CSG•15分钟
Recommended Reading: Real World Example 1•15分钟
Recommended Reading: Real World Example 2•15分钟
Recommended Reading: Applications •15分钟
Recommended Reading: Intro to Grammar Hierarchy•15分钟
Course Summary•10分钟
10个作业•总计102分钟
Introducing POS Tagging - The Task and Applications•6分钟
CFG and POS Tagging•6分钟
POS Tagging as Parsing•6分钟
Introduction to CSG•6分钟
Real World Example 1•3分钟
Real World Example 2•3分钟
Applications •6分钟
Intro to Grammar Hierarchy•6分钟
Let's Practice: Constituency Parsing for POS Tagging•30分钟
Test Yourself: Constituency Parsing for POS Tagging•30分钟
攻读学位
课程 是 Birla Institute of Technology & Science, Pilani提供的以下学位课程的一部分。如果您被录取并注册,您已完成的课程可计入您的学位学习,您的学习进度也可随之转移。
查看符合条件的学位
攻读学位
课程 是 Birla Institute of Technology & Science, Pilani提供的以下学位课程的一部分。如果您被录取并注册,您已完成的课程可计入您的学位学习,您的学习进度也可随之转移。
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.
When will I have access to the lectures and assignments?
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.
What will I get if I subscribe to this Specialization?
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.
Is financial aid available?
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.