Une analyse syntaxique d'ASN.1 : 1990 en Caml Light
Résumé
ASN.1 est un langage de spécification de protocoles normalisé par l'ISO et utilisé fréquemment dans les télécommunications. Il permet de décrire et de regrouper en modules les types et les valeurs que sont susceptibles d'échanger des applications. L'ambiguïté de la grammaire d'ASN.1, dans sa version 1990, avait jusqu'à présent contraint les concepteurs de compilateurs à prendre des libertés avec la norme. Nous montrons dans ce document comment il est possible de transformer la grammaire en une grammaire équivalente LL(1). Un analyseur syntaxique a été réalisé en Caml Light, un langage fonctionnel typé de la famille ML. Il apporte la sécurité du typage statique fort et l'expressivité de la pleine fonctionnalité, deux atouts majeurs pour la construction d'un arbre de syntaxe abstraite et le traitement des macros \citer{à la volée}, conduisant ainsi à {\em un analyseur en une passe}. Une méthode pour réaliser des analyseurs syntaxiques en Caml Light est de plus présentée en détail, ainsi que le code abondamment commenté de celui réalisé pour ASN.1~.