Beware! This job offer is no longer valid, the position has been fulfilled.

Logo INRIA Logo CONVECS Logo LIG

L'équipe CONVECS de l'INRIA et du LIG
recherche un stagiaire

Date de début : à définir - à partir de février 2016

Type de stage : Stage 2ème/3ème année d'école d'ingénieurs ou master.

Durée : 4 à 6 mois.

Lieu : Ce stage sera effectué au centre de recherche INRIA (Montbonnot).

Sujet : « Construction innovante de compilateurs »

Contexte :

Ce stage s'adresse à un(e) étudiant(e) passionné(e) par les langages de programmation et les techniques de compilation avancées.

L'équipe CONVECS a développé une méthodologie de développement de compilateurs basée sur des outils et langages de haut niveau, fortement typés, à partir desquels du code C est automatiquement engendré. Cette approche innovante combine les avantages de la programmation sûre avec les qualités d'efficacité et de portabilité du langage C. Elle a été utilisée avec succès pour développer une douzaine de compilateurs ou traducteurs pour des langages très différents.

Cette méthodologie, dont les principes sont énoncés ici, repose sur deux outils indépendants: d'une part, le générateur de compilateurs SYNTAX, développé à l'INRIA Rocquencourt, pour l'analyse lexicale et syntaxique, et d'autre part, le compilateur TRAIAN, développé à l'INRIA Grenoble, pour la spécification, la construction et le parcours des arbres de syntaxe abstraite.

C'est sur ce second outil que porte le sujet de stage. TRAIAN traduit en langage C la partie données du langage LOTOS NT, c'est-à-dire un langage à syntaxe impérative et à sémantique fonctionnelle qui est une version simplifiée de la norme ISO/IEC 15437:2001.

Le compilateur TRAIAN actuel (versions 2.x) a été lui-même écrit en utilisant SYNTAX et un générateur de compilateurs appelé FNC2 basé sur les grammaires attribuées. Or, ce générateur FNC2 n'est plus maintenu, aucune version n'est disponible pour les architectures 64 bits et l'on ne dispose pas du code source. Ceci rend difficile l'évolution de TRAIAN et, notamment, son portage vers les machines et les systèmes d'exploitation les plus récents.

Description du sujet :

Ce stage vise à refondre entièrement le compilateur TRAIAN pour en développer une nouvelle version 3.0 en logiciel libre, compatible avec les versions actuelles, mais plus simple et plus évolutive à l'avenir.

La partie lexicale syntaxique actuelle de TRAIAN pourra être reprise, car elle est déjà réalisée avec l'outil SYNTAX. En revanche, toute la partie spécifiée avec des grammaires attribuées doit être reprise et convertie. On propose de l'écrire dans le langage d'entrée de TRAIAN lui-même, ce qui suppose de passer d'un formalisme déclaratif (grammaires attribuées) à un langage impératif/fonctionnel (LOTOS NT). Ainsi, le nouveau compilateur TRAIAN 3.0 pourra être construit à l'aide de l'ancien, ouvrant la voie à l'auto-amorçage (bootstrap).

Ce nouvel outil TRAIAN 3.0 sera validé par les autres membres de l'équipe CONVECS sur des exemples de compilateurs et traducteurs professionnels. Ensuite, il sera possible d'étendre TRAIAN avec de nouvelles fonctionnalités et d'apporter des optimisations au code C qu'il produit. Une publication scientifique est envisageable si le projet est mené à bien.

Compétences / connaissances requises : Langages de programmation, compilation.

Connaissances appréciées : Sémantique des langages.

Contacts : Ce stage est proposé par Hubert.Garavel@inria.fr, Frederic.Lang@inria.fr et Wendelin.Serwe@inria.fr