Skip to main content

Automata Theory: inside a RegExp machine

1h 48m 5s
English
Paid

State machines are a fundamental concept utilized in a myriad of practical applications today, ranging from UI programming like React, automated reply systems, lexical analysis in parsers, to formal language theory — specifically, Regular Expression (RegExp) machines. Beyond the digital realm, state machines find usage in everyday devices such as traffic lights and vending machines.

The concept of state machines is deeply embedded in the broader theoretical field known as the Theory of Computation, supported directly by Automata Theory. In this course, we explore Automata Theory through the practical lens of implementing a Regular Expressions machine.

Why Take This Class?

It's a well-known fact that major technology companies like Google and Facebook focus their recruitment processes around generalist engineers who comprehend fundamental systems, data structures, and algorithms. The industry often sees a surplus of "programmers" but a shortage of capable "engineers". What distinguishes an "engineer" is their ability to solve complex problems with a deep understanding of these foundational concepts.

There is a simple strategy to acquire extensive experience with transferable knowledge to other systems. By engaging with a complex theoretical field, perhaps unrelated to your current job, and implementing it in a familiar programming language, you enrich your understanding of the various data structures and algorithms involved. By focusing on something generic like State machines, this knowledge becomes applicable to your regular work.

This course embraces this methodology. To delve into Automata “Theory”, we adopt a practical approach by focusing on its widely-used applications in lexical analysis and pattern matching to construct a RegExp machine. This way, not only do we gain an in-depth understanding of how Regular Expressions function under the hood—enhancing their professional usage—but we also prepare to apply our knowledge of formal grammars, languages, and finite automata (NFAs, DFAs, etc.) in other areas of our work.

Who Is This Class For?

Designed for any curious engineer eager to gain a foundational understanding of Finite Automata and Regular Expressions. However, this class is not focused on how to use regular expressions (a prerequisite is having a working knowledge and regular use of them) but rather on how to implement them, with an eye towards mastering complex generic systems.

Moreover, lexical analysis (specifically NFAs and DFAs) is at the heart of parser theory. If you're aiming to comprehend how parsers function, particularly the Tokenizer or "Lexer" module, this class serves as an excellent starting point. The journey to becoming a compiler engineer begins with mastering Finite Automata and lexical analysis.

Features of the Class

The key features of these lectures include:

  • Concise and Direct Content. Each lecture is self-contained and focuses on core material, steering clear of unrelated topics for maximum effectiveness.

  • Dynamic Presentation with Live-Editing Notes. This combination simplifies topic comprehension and clarifies the temporal connections between object structures. Static slides are insufficient for engaging with such complex content!

About the Author: Dmitry Soshnikov

Dmitry Soshnikov thumbnail
Dmitry Soshnikov is a software engineer, lectures on various topics of computer science. He is passionate about education and has a strong focus on high quality educational content: concise and clear animated lectures with real-time notes.

Watch Online 16 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 16 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: RegExp history
All Course Lessons (16)
#Lesson TitleDurationAccess
1
RegExp history Demo
05:09
2
Regular grammars
09:32
3
Finite automata
09:09
4
Character and Epsilon NFA
07:09
5
Concatenation pattern: AB
06:42
6
Union pattern: A|B
06:53
7
Kleene closure: A*
06:04
8
Complex machines
04:33
9
Syntactic sugar
03:30
10
NFA optimizations
04:48
11
NFA acceptor
05:19
12
NFA table
08:17
13
RegExp-Tree tool
04:53
14
DFA table
09:45
15
DFA minimization
10:59
16
RegExp match
05:23
Unlock unlimited learning

Get instant access to all 15 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription