Skip to main content
CF

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 Russian software engineer and educator focused on programming-language internals, compiler construction, JavaScript engine architecture, and the theoretical computer-science foundations underneath modern software development. His independent course catalog is one of the deepest sources of long-form material on language implementation available outside university CS programs.

His CourseFlix listing carries nine courses spanning parser combinators, interpreter construction, garbage-collection algorithm internals, the design of pattern-matching engines, and JavaScript object-model deep dives. Material is paid and aimed at engineers who want to understand how the languages they use every day actually work under the hood.

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

Related courses

  • Building a Parser from scratch thumbnailUpdated 1y ago

    Building a Parser from scratch

    By: Udemy, Dmitry Soshnikov
    Building a Parser from Scratch — implement a complete recursive-descent parser for a real programming language. AST, precedence, error recovery.
    2 hours 31 minutes 11 seconds
  • Programming Language with LLVM thumbnailUpdated 1y ago

    Programming Language with LLVM

    By: Dmitry Soshnikov
    Programming Language with LLVM — implement a compiler that emits native code via LLVM IR. Master codegen, optimisation passes, and JIT.
    2 hours 46 minutes 4 seconds 5 / 5
  • Building a Transpiler from scratch thumbnailUpdated 1y ago

    Building a Transpiler from scratch

    By: Dmitry Soshnikov
    In modern implementations of compilers, it has become popular to transform one high-level language into another.
    2 hours 3 seconds

Frequently asked questions

What is Automata Theory: inside a RegExp machine about?
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…
Who teaches this course?
It is taught by Dmitry Soshnikov. You can find more courses by this instructor on the corresponding source page.
How long is the course?
It contains 16 lessons with a total runtime of 1 hour 48 minutes. Every lesson is available to watch online at your own pace.
Is it free to watch?
It is part of CourseFlix's premium catalog. A subscription unlocks the full video player; the course description, table of contents, and preview information are available to everyone.
Where can I watch it online?
The course is available to watch online on CourseFlix at https://courseflix.net/course/automata-theory-inside-a-regexp-machine. The page hosts every lesson with the integrated video player; no download is required.