* Cantinho Satkeys

Refresh History
  • j.s.: [link]
    Hoje às 16:31
  • j.s.: dgtgtr a todos  4tj97u<z
    Hoje às 16:31
  • j.s.: h7t45 ao convidado de Honra batatinha pela sua ajuda
    Hoje às 16:30
  • FELISCUNHA: ghyt74  pessoal   4tj97u<z
    04 de Julho de 2025, 11:58
  • JPratas: dgtgtr Pessoal  101041 Vamos Todos Ajudar na Manutenção do Forum, Basta 1 Euro a Cada Um  43e5r6
    03 de Julho de 2025, 19:02
  • cereal killa: Todos os anos e preciso sempre a pedir esmolas e um simples gesto de nem que seja 1€ que fosse dividido por alguns ajudava, uma coisa e certa mesmo continuando isto vai levar volta a como se tem acesso aos tópicos, nunca se quis implementar esta ideia mas quem não contribuir e basta 1 € por ano não terá acesso a sacar nada, vamos ver desenrolar disto mais ate dia 7,finalmente um agradecimento em nome do satkeys a quem já fez a sua doação, obrigada
    03 de Julho de 2025, 15:07
  • m1957: Por favor! Uma pequena ajuda, não deixem que o fórum ecerre. Obrigado!
    03 de Julho de 2025, 01:10
  • j.s.: [link]
    02 de Julho de 2025, 21:09
  • j.s.: h7t45 ao membro anónimo pela sua ajuda  49E09B4F
    02 de Julho de 2025, 21:09
  • j.s.: dgtgtr a todos  4tj97u<z
    01 de Julho de 2025, 17:18
  • FELISCUNHA: Votos de um santo domingo para todo o auditório  4tj97u<z
    29 de Junho de 2025, 11:59
  • m1957: Foi de boa vontade!
    28 de Junho de 2025, 00:39
  • j.s.: passem f.v. por aqui [link]    h7t45
    27 de Junho de 2025, 17:20
  • j.s.: renovamos o nosso pedido para uma pequena ajuda para pagemento  do nosso forum
    27 de Junho de 2025, 17:19
  • j.s.: h7t45 aos convidados de honra Felizcunha e M1957 pela ajuda
    27 de Junho de 2025, 17:15
  • j.s.: dgtgtr a todos  4tj97u<z
    27 de Junho de 2025, 17:13
  • FELISCUNHA: ghyt74  pessoal  4tj97u<z
    27 de Junho de 2025, 11:51
  • JPratas: try65hytr A Todos  classic k7y8j0
    27 de Junho de 2025, 04:35
  • m1957: Por favor vaamos todos dar uma pequena ajuda, para não deixar encerrar o fórum! Obrigado.
    26 de Junho de 2025, 23:45
  • FELISCUNHA: j.s. enviei PM  101041
    26 de Junho de 2025, 21:33

Autor Tópico: State machines and Automata building a RegExp machine  (Lida 288 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline mitsumi

  • Sub-Administrador
  • ****
  • Mensagens: 121842
  • Karma: +0/-0
State machines and Automata building a RegExp machine
« em: 13 de Agosto de 2019, 13:07 »

State machines and Automata: building a RegExp machine
.MP4 | Video: 1280x720, 30 fps(r) | Audio: AAC, 44100 Hz, 2ch | 393 MB
Duration: 1 hours | Genre: eLearning | Language: English

Deep dive into state machines, Finite automata, and Regular expressions

What you'll learn

    Theory of Computation
    State machines / Finite automata
    NFA and DFA
    Automata Theory
    Build a full RegExp machine
    Graphs, traversal, states and transitions

Requirements

    Basic data structures and algorithms
    Graphs, trees, traversal

Description

Course overview

State 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 to take this class?

It's not a secret, that 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 so solve complex problems, with understanding (and experience) in those generic concepts.

And there is a simple trick how you can gain a 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.

Not only we'll completely understand how the Regular Expressions work under the hood (and what will make their usage more professional), but also will be able to apply this knowledge about formal grammars, languages, finite automata - NFAs, DFAs, etc - in other fields of our work.

Who this class is for?

For any curious engineer willing to gain a generic knowledge about Finite Automata and Regular Expressions.

Notice though, that this class is not about how to use regular expressions (you should already know what a regular expression is, and actively use it on practice as a prerequisite for this class), but rather about how to implement the regular expressions - again with the goal to study generic complex system.

In addition, the lexical analysis (NFAs and DFAs specifically) is the basis for the parsers theory. So if you want to understand how parsers work (and more specifically, their Tokenizer or "Lexer" module), you can start here too. The path for a compiler engineer starts exactly from the Finite automata and lexical analyzer.

What are the features of this class?

The main features of these lectures are:

    Concise and straight to the point. Each lecture is self-contained, concise, and describes information directly related to the topic, not distracting on unrelated materials or talks.

    Animated presentation combined with live-editing notes. This makes understanding of the topics easier, and shows how (and when at time) the object structures are connected. Static slides simply don't work for a complex content!

What is in the course?

The course is divided into three parts, in total of 16 lectures, and many sub-topics in each lecture. Below is the table of contents and curriculum.

Part 1: Formal grammars and Automata

In this part we discuss the history of State machines, and Regular expressions, talk about Formal grammars in Language theory. We also consider different types of Finite automata, understanding the differences between NFA, ε-NFA, and DFA.

Part 2: RegExp NFA fragments

In this part we focus on the main NFA fragments, the basic building blocks used in RegExp automata. We study how by using generic principle of composition, we can obtain very complex machines, and also to optimize                                                                                                                                                                                                them.

Part 3: RegExp machine

Finally, we implement an actual test method of regular expressions which transit from state to state, matching a string. First we understand how an NFA acceptor works by traversing the graph. Then we transform it into an NFA table, and eventually to a DFA table. We also talk and describe in detail DFA minimization algorithm.

I hope you'll enjoy the class, and will be glad to discuss any questions and suggestion in comments.

Sincerely,

Dmitry Soshnikov

Who this course is for:

    Any curious engineer willing to tackle a complex project building a RegExp machine based on Finite automata
             

               
 
Download link:
Só visivel para registados e com resposta ao tópico.

Only visible to registered and with a reply to the topic.

Links are Interchangeable - No Password - Single Extraction