SYNTAX est conçu et développé chez Inria par Pierre Boullier depuis plusieurs dizaines d'années au sein des équipes ALMAnaCH, ALPAGE, ATOLL, et d'autres encore auparavant, avec le concours notamment de Philippe Deschamp et de Benoît Sagot. SYNTAX est un système qui permet (i) à partir d'une grammaire non-contextuelle de construire l'automate optimisé correspondant, et (ii) à l'aide d'une librairie d'analyse, d'exécuter les automates produits sur des textes sources. SYNTAX permet de traiter soit des grammaires déterministes de la classe LR et d'autres classes plus larges, soit des grammaires non-contextuelles générales. La version déterministe a fait l'objet d'utilisations industrielles (Ada, par exemple). La version non-déterministe est au cœur de divers analyseurs syntaxiques pour le langage naturel, et notamment l'analyseur syntaxique SxLFG, qui repose sur le formalisme LFG (Lexical-Functional Grammars), et la chaîne de pré-traitement SxPipe.
La version actuelle de SYNTAX (version 6.0 beta) comprend également des générateurs d'analyseurs pour d'autres formalismes, qu'il s'agisse de formalismes sensibles au contexte (TAG, RCG) ou de formalismes reposant sur les grammaires hors-contextes mais complétés par des calculs d'attributs, en particulier pour le traitement automatique des langues (formalisme LFG).
SYNTAX a été porté vers diverses architectures, y compris des architectures 64-bits, principalement par l'ancienne équipe VASY (Inria Rhône-Alpes), aujourd'hui CONVECS.
SYNTAX est distribué librement sous licence libre : la bibliothèque SYNTAX et le code produit par SYNTAX sont sous licence CeCILL-C (à la LGPL), alors que le code source des constructeurs est sous licence CeCILL (à la GPL).
Par ailleurs, SYNTAX a désormais sa page sur la wikipedia francophone et sa page sur la wikipedia anglophone.
Historiquement, SYNTAX a d'abord eu pour principale application la construction d'analyseurs pour les langages de programmation, dans le domaine de la compilation (C, Ada, etc…). C'était donc principalement un générateur d'analyseurs non-contextuels déterministes, à l'instar des programmes unix Lex et Yacc. La force de SYNTAX par rapport à ces programmes était alors triple:
C'est la version 3.9 de SYNTAX qui est l'aboutissement des recherches dans le domaine de l'analyse déterministe. Il existe un manuel d'utilisation et de mise en œuvre de la version 3.5 de SYNTAX [Boullier 88]. La plupart des utilisations de SYNTAX dans le domaine de la compilation de langages de programmation utilise cette technologie, sous la forme de SYNTAX 3.9 (compilateur Ada,…) ou sous son évolution dans la version courante de SYNTAX.
Depuis une vingtaine d'années, SYNTAX s'est tourné vers des applications de traitement des langues. Ceci a conduit à quatre types de développements :
Les versions 4 et 5 ne sont pas distribuées, alors que la version 3 était disponible gratuitement à des fins de recherche et que la version 6 est disponible librement sous licence CeCILL et CeCILL-C, selon les fichier (voir la page de téléchargement et le fichier LICENSE inclus dans le paquetage).
SYNTAX est développé presque exclusivement en C (seules quelques petites extensions récentes utilisent perl) . SYNTAX ne produit pas directement des analyseurs à partir des grammaires. Il produit un ensemble de données en langage C qui doivent être compilées et liées (linked) avec différents modules généraux. Ces données sont des tables, c'est-à-dire des tableaux C initialisés, et des fonctions.
Le cœur de SYNTAX est constitué principalement de trois types de fichiers:
Enfin, SYNTAX est bootstrappé : la compilation des constructeurs se fait à l'aide de SYNTAX lui-même (et donc desdits constructeurs).
SYNTAX est hébergé sur la GForge Inria. Il doit être migré sous peu sur le Gitlab Inria.
La dernière version packagée de SYNTAX et les versions antérieures peuvent être téléchargées sur la page de téléchargement du projet SYNTAX sur la GForge Inria.
Pour plus d'informations ou pour poser une question, merci de contacter benoit.sagot[at]inria.fr.