La compilation est sans conteste l’un des domaines les plus riches et les plus passionnants de l’informatique. Pour autant c’est aussi l’un des plus difficiles à aborder de par la diversité et la complexité des problématiques qu’il englobe et la quantité de notions théoriques qu’il fait intervenir.
Dans cet article, nous survolerons le domaine et les différentes problématiques qui le composent en nous intéressant à un exemple complet et non trivial : nous allons créer un moteur d’expressions régulières de A à Z, en proposant une implémentation en Python. Cela nous permettra d’introduire les différentes phases d’analyse opérées par les compilateurs, tout en sensibilisant le lecteur à une approche des expressions rationnelles plus rigoureuse algorithmiquement parlant que le modèle omniprésent du backtracking.