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.



Expérience recommandée
Ce que vous apprendrez
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.
Compétences que vous acquerrez
- Catégorie : Technical Analysis
- Catégorie : Text Mining
- Catégorie : Program Development
- Catégorie : Debugging
- Catégorie : Machine Learning Methods
- Catégorie : Analysis
- Catégorie : Data Science
- Catégorie : Computer Science
- Catégorie : Computer Programming
- Catégorie : Algorithms
- Catégorie : Theoretical Computer Science
- Catégorie : Formal Learning
- Catégorie : Software Engineering
Détails à connaître

Ajouter à votre profil LinkedIn
novembre 2025
Découvrez comment les employés des entreprises prestigieuses maîtrisent des compétences recherchées

Il y a 10 modules dans ce cours
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.
Inclus
15 vidéos12 lectures12 devoirs
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.
Inclus
20 vidéos19 lectures22 devoirs
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.
Inclus
8 vidéos9 lectures10 devoirs
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.
Inclus
13 vidéos15 lectures17 devoirs
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.
Inclus
10 vidéos10 lectures12 devoirs
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).
Inclus
18 vidéos17 lectures19 devoirs
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.
Inclus
11 vidéos10 lectures12 devoirs
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.
Inclus
14 vidéos13 lectures15 devoirs
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.
Inclus
10 vidéos10 lectures12 devoirs
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.
Inclus
9 vidéos9 lectures10 devoirs
Instructeur

En savoir plus sur Algorithms

Birla Institute of Technology & Science, Pilani

University of Colorado Boulder
Statut : PrévisualisationUniversity of Washington
Statut : PrévisualisationUniversity of Washington
Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?





Ouvrez de nouvelles portes avec Coursera Plus
Accès illimité à 10,000+ cours de niveau international, projets pratiques et programmes de certification prêts à l'emploi - tous inclus dans votre abonnement.
Faites progresser votre carrière avec un diplôme en ligne
Obtenez un diplôme auprès d’universités de renommée mondiale - 100 % en ligne
Rejoignez plus de 3 400 entreprises mondiales qui ont choisi Coursera pour les affaires
Améliorez les compétences de vos employés pour exceller dans l’économie numérique
Foire Aux 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.
Plus de questions
Aide financière disponible,
¹ Certains travaux de ce cours sont notés par l'IA. Pour ces travaux, vos Données internes seront utilisées conformément à Notification de confidentialité de Coursera.

