CSC 4508 - Traduction: TP noté 2009-2010

De GWT à JavaScript + HTML

L'exercice concerne Google Web Toolkit, GWT.

Avec la prolifération des langages informatiques, en particulier pour le web, de nombreux transcodages d'un langage vers un autre apparaissent. Par exemple, si on utilise Google Web Toolkit, on développe l'application web entièrement en Java, puis le logiciel GWT traduit en JavaScript + HTML («technologie Ajax»).

Dans cet exercice, nous nous limitons à une traduction de Java vers HTML, pour un code générant une table : Cet exemple est réduit, et traité avec des simplifications (contrôles). Mais il illustre les techniques logicielles actuelles dont la compilation. Il permet aussi d'apprécier certaines différences entre langages, surtout pour l'aspect syntaxique (un peu aussi sous l'aspect sémantique : possibilités dynamiques de la JTable Java, sans contrepartie en HTML ; il faudrait du JavaScript).

1 - Analyseur lexical seul (5 points)

Mettre au point un analyseur lex1.flex reconnaissant toutes les unités lexicales de defTableJava.txt.

  1. Reconnaître les caractères isolés suivants :
    . =  ( ) " , ; 
    
  2. Reconnaître les mots-clés de Java: Vector, new et JTable ainsi que la méthode addElement.
  3. Reconnaître les chaînes de caractères correspondants aux valeurs choisies par le programmeur. Dans defTableJava.txt, il faudra par exemple reconnaître : titres, ligne1, ..., personnes, Loulou. Pour chaque chaîne reconnue, affichez dans un premier temps: STRING.
Indications

2 - Analyseurs lexical et syntaxique couplés (6 points)

Mettre au point un analyseur lex2.flex, gram2.bison, prin.c définissant les catégories lexicales suivantes:

La grammaire doit contenir deux règles : Ajouter une gestion d'erreur minimale au niveau syntaxique pour qu'en cas de caractère inattendu, l'analyseur affiche un message d'erreur et continue. Indications

3 - Reconnaissance de la structure syntaxique (5 points)

Créer l'analyseur lex3.flex, gram3.bison et prin.c permettant de reconnaître la structure de defTableJava.txt. Créer les règles suivantes: Indications

4 - Génération de code HTML (4 points)

Le but de cette question est de modifier les actions de l'analyseur syntaxique pour générer automatiquement le code HTML donné dans defTableHtml.txt à partir de defTableJava.txt. Il faut alors ajouter à l'analyseur syntaxique les actions suivantes: Fournir un module C utils.c et utils.h contenant les structures de données nécessaires et les fonctions: Créer l'analyseur lex4.flex, gram4.bison, utils.c et utils.h permettant de transformer les extraits de GWT suivants en HTML: Vous pouvez aussi tester le comportement de votre programme sur les cas incorrects suivants (attention la syntaxe est correcte):
CSC 4508, Télécom SudParis, INF, F. MEUNIER, F. SILBER-CHAUSSUMIER
Last modified: Mon Apr 19 19:08:25 CEST 2010