Lex (logiciel)vignette|Éric Schmidt, programmeur de Lex.. Lex est un outil de génération d'analyseurs lexicaux en langage C. Du point de vue de la classification des langages, Lex est capable de traiter des langages de type 3 (réguliers). Il a été originellement écrit par Mike Lesk et Eric Schmidt (devenu PDG, puis président exécutif du conseil d'administration de Google) et fut décrit en 1975. Il est fréquemment utilisé en association avec Yacc, générateur d'analyseur syntaxique. Flex est la version GNU de Lex.
Yacc (logiciel)Yacc est un outil de génération d'analyseurs syntaxiques en langage C. Yacc est l'acronyme de Yet Another Compiler Compiler (« Encore un autre compilateur de compilateur »).Yacc est notamment utilisé dans la construction des jeux d'instructions en langage machine pour les microprocesseurs. Du point de vue de la classification des langages, Yacc fournit le code nécessaire à l'analyse de langages de type 2 (non contextuels). Il est fréquemment utilisé en association avec Lex, générateur d'analyseur lexical.
Forme de Backus-NaurLa forme de Backus-Naur (souvent abrégée en BNF, de l'anglais Backus-Naur Form) est une notation qui permet d'écrire les règles des langages informatiques (notamment des langages de programmation). C’est donc un métalangage employé pour définir inductivement un langage. Elle est utilisée dans certains livres pour décrire le langage étudié, mais également par de nombreux logiciels d’analyse syntaxique pour travailler sur des fichiers sources de plusieurs langages différents.
Compilateur de compilateurEn informatique, un compilateur de compilateur est un programme capable de produire la totalité ou certaines parties du code source d'un compilateur (partie analyse lexicale, partie analyse syntaxique, partie analyse sémantique, partie synthèse, partie de gestion des erreurs, etc.) pour former en un tout cohérent, le code source du compilateur souhaité. Comme un compilateur classique, il accepte un langage source, par exemple une grammaire couplée à un ensemble d'actions.