Automata Theory: Building a RegExp machine
Course
Online
Description
-
Type
Course
-
Methodology
Online
-
Start date
Different dates available
Course overviewState machines - the fundamental concept used today in many practical applications, starting from UI programming like React, automated reply systems, lexical analysis in parsers and formal language theory - i.e. the RegExp machines, - and up to real-life use cases, such as simple traffic lights, vending machines, and others.The state machines are backed by the larger theoretical field of computer science known as Theory of Computation, and also by its direct theoretical model - the Automata Theory.In this class, we study the Automata Theory on the practical example of implementing a Regular Expressions machine.Why take this class?It’s not a secret, those big tech companies, such as Google, Facebook, etc. organize their recruiting process around generalist engineers, which understand basic fundamental systems, data structures, and algorithms. In fact, it’s a known issue in tech-recruiting: there are a lot of “programmers”, but not so many “engineers”. And what does define an “engineer” in this case? - an ability to solve complex problems, with understanding (and experience) in those generic concepts.And there is a simple trick to how you can gain great experience with transferable knowledge to other systems. - You take some complex theoretical field, which might not (yet) be related to your main job, and implement it in a language you’re familiar with. And while you build it, you learn all the different data structures and algorithms, which accommodate this system. It should specifically be something generic (for example, State machines), so you can further transfer this knowledge to your “day-to-day” job.In this class, we take this approach. To study Automata “Theory” we make it more practical: we take one of its widely-used applications, the lexical analysis, and pattern matching, and build a RegExp machine.
uage theory. We also consider different types of Finite automata, understanding the differences...
Facilities
Location
Start date
Start date
About this course
Theory of Computation
State machines / Finite automata
NFA and DFA
Automata Theory
Build a full RegExp machine
Graphs, traversal, states and transitions
Reviews
This centre's achievements
All courses are up to date
The average rating is higher than 3.7
More than 50 reviews in the last 12 months
This centre has featured on Emagister for 4 years
Subjects
- Construction Training
- Systems
- Construction
- Semantics
- Algorithms
Course programme
- Pioneers of formal grammars and regular expressions
- Stephen Kleene, Noam Chomsky, Ken Thompson
- Kleene-closure
- Regular grammars: Type 3
- Finite automata (State machines)
- NFA, DFA
- Symbols, alphabets, languages
- Formal grammars: G = (N, T, P, S)
- Regular grammars: Type 3
- BNF notation vs. RegExp notation
- Right-linear grammars
- Nesting vs. Recursion
- Balanced parenthesis example
- Context-free grammars
- Regular grammars → State machines
- NFA, ε-NFA, DFA
- Epsilon-transitions
- Formal FA definition: (Q, Σ, Δ, q0, F)
- FA state implementation assignment
- Pioneers of formal grammars and regular expressions
- Stephen Kleene, Noam Chomsky, Ken Thompson
- Kleene-closure
- Regular grammars: Type 3
- Finite automata (State machines)
- NFA, DFA
- Symbols, alphabets, languages
- Formal grammars: G = (N, T, P, S)
- Regular grammars: Type 3
- BNF notation vs. RegExp notation
- Right-linear grammars
- Nesting vs. Recursion
- Balanced parenthesis example
- Context-free grammars
- Regular grammars → State machines
- NFA, ε-NFA, DFA
- Epsilon-transitions
- Formal FA definition: (Q, Σ, Δ, q0, F)
- FA state implementation assignment
- Pioneers of formal grammars and regular expressions
- Stephen Kleene, Noam Chomsky, Ken Thompson
- Kleene-closure
- Regular grammars: Type 3
- Finite automata (State machines)
- NFA, DFA
- Pioneers of formal grammars and regular expressions
- Stephen Kleene, Noam Chomsky, Ken Thompson
- Kleene-closure
- Regular grammars: Type 3
- Finite automata (State machines)
- NFA, DFA
- Pioneers of formal grammars and regular expressions
- Stephen Kleene, Noam Chomsky, Ken Thompson
- Kleene-closure
- Regular grammars: Type 3
- Finite automata (State machines)
- NFA, DFA
- Pioneers of formal grammars and regular expressions
- Stephen Kleene, Noam Chomsky, Ken Thompson
- Kleene-closure
- Regular grammars: Type 3
- Finite automata (State machines)
- NFA, DFA
- Pioneers of formal grammars and regular expressions
- Stephen Kleene, Noam Chomsky, Ken Thompson
- Kleene-closure
- Regular grammars: Type 3
- Finite automata (State machines)
- NFA, DFA
- Pioneers of formal grammars and regular expressions
- Stephen Kleene, Noam Chomsky, Ken Thompson
- Kleene-closure
- Regular grammars: Type 3
- Finite automata (State machines)
- NFA, DFA
- Symbols, alphabets, languages
- Formal grammars: G = (N, T, P, S)
- Regular grammars: Type 3
- BNF notation vs. RegExp notation
- Right-linear grammars
- Nesting vs. Recursion
- Balanced parenthesis example
- Context-free grammars
- Symbols, alphabets, languages
- Formal grammars: G = (N, T, P, S)
- Regular grammars: Type 3
- BNF notation vs. RegExp notation
- Right-linear grammars
- Nesting vs. Recursion
- Balanced parenthesis example
- Context-free grammars
- Symbols, alphabets, languages
- Formal grammars: G = (N, T, P, S)
- Regular grammars: Type 3
- BNF notation vs. RegExp notation
- Right-linear grammars
- Nesting vs. Recursion
- Balanced parenthesis example
- Context-free grammars
- Symbols, alphabets, languages
- Formal grammars: G = (N, T, P, S)
- Regular grammars: Type 3
- BNF notation vs. RegExp notation
- Right-linear grammars
- Nesting vs. Recursion
- Balanced parenthesis example
- Context-free grammars
- Symbols, alphabets, languages
- Formal grammars: G = (N, T, P, S)
- Regular grammars: Type 3
- BNF notation vs. RegExp notation
- Right-linear grammars
- Nesting vs. Recursion
- Balanced parenthesis example
- Context-free grammars
- Symbols, alphabets, languages
- Formal grammars: G = (N, T, P, S)
- Regular grammars: Type 3
- BNF notation vs. RegExp notation
- Right-linear grammars
- Nesting vs. Recursion
- Balanced parenthesis example
- Context-free grammars
- Regular grammars → State machines
- NFA, ε-NFA, DFA
- Epsilon-transitions
- Formal FA definition: (Q, Σ, Δ, q0, F)
- FA state implementation assignment
- Regular grammars → State machines
- NFA, ε-NFA, DFA
- Epsilon-transitions
- Formal FA definition: (Q, Σ, Δ, q0, F)
- FA state implementation assignment
- Regular grammars → State machines
- NFA, ε-NFA, DFA
- Epsilon-transitions
- Formal FA definition: (Q, Σ, Δ, q0, F)
- FA state implementation assignment
- Regular grammars → State machines
- NFA, ε-NFA, DFA
- Epsilon-transitions
- Formal FA definition: (Q, Σ, Δ, q0, F)
- FA state implementation assignment
- Regular grammars → State machines
- NFA, ε-NFA, DFA
- Epsilon-transitions
- Formal FA definition: (Q, Σ, Δ, q0, F)
- FA state implementation assignment
- Regular grammars → State machines
- NFA, ε-NFA, DFA
- Epsilon-transitions
- Formal FA definition: (Q, Σ, Δ, q0, F)
- FA state implementation assignment
- NFA
- Single character fragment
- Epsilon fragment
- NFA
- Concatenation RegExp pattern: AB
- Epsilon transition
- NFA
- Union (aka Disjunction) pattern: A | B
- Epsilon transition
- Graph traversal
- Kleene-closure: A*
- Repeat "zero or more" times
- 5 basic machines summary
- Patterns composition and decomposition
- Operator precedence
- Abstract syntax tree (AST)
- Recursive-descent interpreter
- Compound state machine
- New syntax, same semantics
- Semantic rewrite to equivalent patterns
- A+, A?, Character classes
- NFA optimizations
- Preserve semantics, optimize implementation
- Optimized A* machine
- Specific A+ machine
- Specific A? machine
- Specific character class machine
- Preserve semantics, optimize implementation
- Optimized A* machine
- Specific A+ machine
- Specific A? machine
- Specific character class machine
- Preserve semantics, optimize implementation
- Optimized A* machine
- Specific A+ machine
- Specific A? machine
- Specific character class machine
- Preserve semantics, optimize implementation
- Optimized A* machine
- Specific A+ machine
- Specific A? machine
- Specific character class machine
- NFA graph traversal
- Epsilon-transitions
- Infinite cycles on Epsilons
- RegExp test method
- NFA graph to NFA table
- Rows: states, Columns: alphabet
- Epsilon closure calculation
- RegExp-Tree tool
- Parser API
- NFA and DFA tables
- Optimizer module
- Transform module
- DFA table
- Subset Construction algorithm
- Multiple accepting states
- Epsilon closure
- DFA graph
- States equivalence algorithm
- Merging states
- Minimal DFA graph
- RegExp pipeline
- RegExp test function implementation
- Course overview
- Final notes
- NFA graph traversal
- Epsilon-transitions
- Infinite cycles on Epsilons
- RegExp test method
- NFA graph to NFA table
- Rows: states, Columns: alphabet
- Epsilon closure calculation
- RegExp-Tree tool
- Parser API
- NFA and DFA tables
- Optimizer module
- Transform module
- DFA table
- Subset Construction algorithm
- Multiple accepting states
- Epsilon closure
- DFA graph
- States equivalence algorithm
- Merging states
- Minimal DFA graph
- RegExp pipeline
- RegExp test function implementation
- Course overview
- Final notes
- NFA graph traversal
- Epsilon-transitions
- Infinite cycles on Epsilons
- RegExp test method
- NFA graph traversal
- Epsilon-transitions
- Infinite cycles on Epsilons
- RegExp test method
- NFA graph traversal
- Epsilon-transitions
- Infinite cycles on Epsilons
- RegExp test method
- NFA graph traversal
- Epsilon-transitions
- Infinite cycles on Epsilons
- RegExp test method
- NFA graph traversal
- Epsilon-transitions
- Infinite cycles on Epsilons
- RegExp test method
- NFA graph traversal
- Epsilon-transitions
- Infinite cycles on Epsilons
- RegExp test method
- NFA graph to NFA table
- Rows: states, Columns: alphabet
- Epsilon closure calculation
- NFA graph to NFA table
- Rows: states, Columns: alphabet
- Epsilon closure calculation
- NFA graph to NFA table
- Rows: states, Columns: alphabet
- Epsilon closure calculation
- NFA graph to NFA table
- Rows: states, Columns: alphabet
- Epsilon closure calculation
- NFA graph to NFA table
- Rows: states, Columns: alphabet
- Epsilon closure calculation
- NFA graph to NFA table
- Rows: states, Columns: alphabet
- Epsilon closure calculation
- RegExp-Tree tool
- Parser API
- NFA and DFA tables
- Optimizer module
- Transform module
- RegExp-Tree tool
- Parser API
- NFA and DFA tables
- Optimizer module
- Transform module
- RegExp-Tree tool
- Parser API
- NFA and DFA tables
- Optimizer module
- Transform module
- RegExp-Tree tool
- Parser API
- NFA and DFA tables
- Optimizer module
- Transform module
- RegExp-Tree tool
- Parser API
- NFA and DFA tables
- Optimizer module
- Transform module
- RegExp-Tree tool
- Parser API
- NFA and DFA tables
- Optimizer module
- Transform module
- DFA table
- Subset Construction algorithm
- Multiple accepting states
- Epsilon closure
- DFA table
- Subset Construction algorithm
- Multiple accepting states
- Epsilon closure
- DFA table
- Subset Construction algorithm
- Multiple accepting states
- Epsilon closure
- DFA table
- Subset Construction algorithm
- Multiple accepting states
- Epsilon closure
- DFA table
- Subset Construction algorithm
- Multiple accepting states
- Epsilon...
Additional information
Automata Theory: Building a RegExp machine