Automata Theory: Building a RegExp machine

Course

Online

£ 10 + VAT

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

Online

Start date

Different dates availableEnrolment now open

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

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

This centre's achievements

2021

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

Formal grammars and Finite automata 3 lectures 23:48 Lecture 1: RegExp history preview
  • 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
Lecture 2: Regular 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
Lecture 3: Finite automata
  • Regular grammars → State machines
  • NFA, ε-NFA, DFA
  • Epsilon-transitions
  • Formal FA definition: (Q, Σ, Δ, q0, F)
  • FA state implementation assignment
Formal grammars and Finite automata 3 lectures 23:48 Lecture 1: RegExp history preview
  • 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
Lecture 2: Regular 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
Lecture 3: Finite automata
  • Regular grammars → State machines
  • NFA, ε-NFA, DFA
  • Epsilon-transitions
  • Formal FA definition: (Q, Σ, Δ, q0, F)
  • FA state implementation assignment
Lecture 1: RegExp history preview
  • 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
Lecture 1: RegExp history preview
  • 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
Lecture 1: RegExp history preview
  • 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
Lecture 1: RegExp history preview
  • 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
Lecture 2: Regular 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
Lecture 2: Regular 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
Lecture 2: Regular 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
Lecture 2: Regular 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
Lecture 3: Finite automata
  • Regular grammars → State machines
  • NFA, ε-NFA, DFA
  • Epsilon-transitions
  • Formal FA definition: (Q, Σ, Δ, q0, F)
  • FA state implementation assignment
Lecture 3: Finite automata
  • Regular grammars → State machines
  • NFA, ε-NFA, DFA
  • Epsilon-transitions
  • Formal FA definition: (Q, Σ, Δ, q0, F)
  • FA state implementation assignment
Lecture 3: Finite automata
  • Regular grammars → State machines
  • NFA, ε-NFA, DFA
  • Epsilon-transitions
  • Formal FA definition: (Q, Σ, Δ, q0, F)
  • FA state implementation assignment
Lecture 3: Finite automata
  • 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
RegExp NFA fragments 7 lectures 39:35 Lecture 4: Character and Epsilon NFA preview
  • NFA
  • Single character fragment
  • Epsilon fragment
Lecture 5: Concatenation pattern: AB
  • NFA
  • Concatenation RegExp pattern: AB
  • Epsilon transition
Lecture 6: Union pattern: A|B
  • NFA
  • Union (aka Disjunction) pattern: A | B
  • Epsilon transition
  • Graph traversal
Lecture 7: Kleene closure: A*
  • Kleene-closure: A*
  • Repeat "zero or more" times
  • 5 basic machines summary
Lecture 8: Complex machines
  • Patterns composition and decomposition
  • Operator precedence
  • Abstract syntax tree (AST)
  • Recursive-descent interpreter
  • Compound state machine
Lecture 9: Syntactic sugar
  • New syntax, same semantics
  • Semantic rewrite to equivalent patterns
  • A+, A?, Character classes
  • NFA optimizations
Lecture 10: NFA optimizations
  • Preserve semantics, optimize implementation
  • Optimized A* machine
  • Specific A+ machine
  • Specific A? machine
  • Specific character class machine
RegExp NFA fragments Lecture 10: 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
RegExp machine 6 lectures 44:31 Lecture 11: NFA acceptor
  • NFA graph traversal
  • Epsilon-transitions
  • Infinite cycles on Epsilons
  • RegExp test method
Lecture 12: NFA table
  • NFA graph to NFA table
  • Rows: states, Columns: alphabet
  • Epsilon closure calculation
Lecture 13: RegExp-Tree tool
  • RegExp-Tree tool
  • Parser API
  • NFA and DFA tables
  • Optimizer module
  • Transform module
Lecture 14: DFA table
  • DFA table
  • Subset Construction algorithm
  • Multiple accepting states
  • Epsilon closure
Lecture 15: DFA minimization
  • DFA graph
  • States equivalence algorithm
  • Merging states
  • Minimal DFA graph
Lecture 16: RegExp match
  • RegExp pipeline
  • RegExp test function implementation
  • Course overview
  • Final notes
RegExp machine 6 lectures 44:31 Lecture 11: NFA acceptor
  • NFA graph traversal
  • Epsilon-transitions
  • Infinite cycles on Epsilons
  • RegExp test method
Lecture 12: NFA table
  • NFA graph to NFA table
  • Rows: states, Columns: alphabet
  • Epsilon closure calculation
Lecture 13: RegExp-Tree tool
  • RegExp-Tree tool
  • Parser API
  • NFA and DFA tables
  • Optimizer module
  • Transform module
Lecture 14: DFA table
  • DFA table
  • Subset Construction algorithm
  • Multiple accepting states
  • Epsilon closure
Lecture 15: DFA minimization
  • DFA graph
  • States equivalence algorithm
  • Merging states
  • Minimal DFA graph
Lecture 16: RegExp match
  • RegExp pipeline
  • RegExp test function implementation
  • Course overview
  • Final notes
Lecture 11: NFA acceptor
  • NFA graph traversal
  • Epsilon-transitions
  • Infinite cycles on Epsilons
  • RegExp test method
Lecture 11: NFA acceptor
  • NFA graph traversal
  • Epsilon-transitions
  • Infinite cycles on Epsilons
  • RegExp test method
Lecture 11: NFA acceptor
  • NFA graph traversal
  • Epsilon-transitions
  • Infinite cycles on Epsilons
  • RegExp test method
Lecture 11: NFA acceptor
  • 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
Lecture 12: NFA table
  • NFA graph to NFA table
  • Rows: states, Columns: alphabet
  • Epsilon closure calculation
Lecture 12: NFA table
  • NFA graph to NFA table
  • Rows: states, Columns: alphabet
  • Epsilon closure calculation
Lecture 12: NFA table
  • NFA graph to NFA table
  • Rows: states, Columns: alphabet
  • Epsilon closure calculation
Lecture 12: NFA table
  • 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
Lecture 13: RegExp-Tree tool
  • RegExp-Tree tool
  • Parser API
  • NFA and DFA tables
  • Optimizer module
  • Transform module
Lecture 13: RegExp-Tree tool
  • RegExp-Tree tool
  • Parser API
  • NFA and DFA tables
  • Optimizer module
  • Transform module
Lecture 13: RegExp-Tree tool
  • RegExp-Tree tool
  • Parser API
  • NFA and DFA tables
  • Optimizer module
  • Transform module
Lecture 13: RegExp-Tree tool
  • 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
Lecture 14: DFA table
  • DFA table
  • Subset Construction algorithm
  • Multiple accepting states
  • Epsilon closure
Lecture 14: DFA table
  • DFA table
  • Subset Construction algorithm
  • Multiple accepting states
  • Epsilon closure
Lecture 14: DFA table
  • DFA table
  • Subset Construction algorithm
  • Multiple accepting states
  • Epsilon closure
Lecture 14: DFA table
  • DFA table
  • Subset Construction algorithm
  • Multiple accepting states
  • Epsilon closure
  • DFA table
  • Subset Construction algorithm
  • Multiple accepting states
  • Epsilon...

Additional information

Basic data structures and algorithms Graphs, trees, traversal

Automata Theory: Building a RegExp machine

£ 10 + VAT