ANTLR

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
image illustrant l’informatique
Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

ANTLR
Dernière version 4.7 (30 mars 2017)
Écrit en Java
Environnement Multiplate-forme
Type Compilateur de compilateurVoir et modifier les données sur Wikidata
Licence Licence BSD
Site web www.antlr.org

ANTLR, sigle de ANother Tool for Language Recognition, est un framework libre de construction de compilateurs utilisant une analyse LL(*), créé par Terence Parr à l'Université de San Francisco.

ANTLR prend en entrée une grammaire définissant un langage et produit le code reconnaissant ce langage. La dernière version d'ANTLR permet de générer du code pour les langages Java et C#, et le prochain langage supporté sera C++.

Dans sa dernière version, ANTLR peut supporter des grammaires utilisant de la récursivité gauche directe, mais pas indirecte.

ANTLR permet de générer des analyseurs lexicaux, syntaxiques ou des analyseurs lexicaux et syntaxiques combinés. Un analyseur syntaxique peut créer automatiquement un arbre syntaxique abstrait qui peut alors à son tour être traité par un analyseur d’arbre. ANTLR utilise une notation identique pour définir les différents types d’analyseurs, qu’ils soient lexicaux, syntaxiques, ou d’arbre. Des actions peuvent être assignées aux branches de l'arbre syntaxique abstrait ainsi obtenu. Ces actions peuvent être directement insérées dans la spécification de la grammaire utilisée, ou utilisés de façon découplée à travers un système de traversée d'arbres fourni par ANTLR.

Les grammaires ANTLR sont des sous-classes de Lexer, Parser, TreeParser

Exemple d'utilisation de ANTLR:

  • XIC - Plateforme d'Intermediation de Xcalia basée sur JDO, SDO et EJB.
  • PromptSQL - Logiciel offrant la complétion automatique pour le SQL à plusieurs éditeurs SQL de Microsoft.
  • Groovy - Langage de programmation fonctionnant sur la plateforme Java.
  • Jython - Langage de programmation inspiré de Python, fonctionnant sur la plateforme Java.