Software Construction
Gregor v. Bochmann
Hiver 2009
, 2010, 2012, 2013

Lab-8

Originally prepared by 
Abdelilah Maach and Alan Williams; revised 2009 by G.v.B.


Un compilateur simple en Java

Nous avons vu le language VSPL dans le laboratoire 7. Pendant ce laboratoire, nous allons apprendre comment écrire un compilateur pour ce langage en Java en suivant la méthodologie de la descente récursive.

Partie A: Étude d'un compilateur donné pour VSPL

Le développement d'un compilateur pour VSPL en Java est décrite ici.

  1. Svp., étudiez les explications données et le code Java
    • pour l'analyeur lexical
    • pour l'analyseur syntaxique, et
    • pour l'évaluation (ex/cution) des expressions, code qui est inclu dans l'analyseur syntaxique.
  2. Exécutez le compilateur avec quelques programmmes exemples. Note: Vous trouvez quelques exemple de programmes ici.
  3. Quand vous comprendrez le programme Java, allez à la partie B.

Partie B: Étendre le compilateur donné pour qu'il supporte les extensions du langage conçues dans le laboratoire 7

Svp., considérez la grammaire étendue introduite pendant le laboratoire 7. Étendez le code du compilateur pour qu'il supporte ces extensions du langage, en faisant les étapes suivantes:

  1. Ecrivez (dessinez) les automates récursifs pour les règles syntaxique étendues, d'une manière similaire qu'expliqué pour VSPL.
  2. Écrivez les procédures récursive en Java pour les nouveaux non-terminaux de la grammaire, et modifiez les prcédures pour les non-terminaux du langage original, comme approprié. - Il est suggéré que vous vous concentrez d'abord sur les aspects syntaxique et laissez les aspects de l'évaluation des expressions pour plus tard (s'il y a du temps).
  3. Revisez l'analyseur lexical pour inclure les nouveaux unités lexicales qui sont requises pour l'extension du langage.
  4. "Debug" votre programme de compilateur en l'exécutant avec quelques programme exemples. Vous devriez essayer une expression comme a+b*c pour vérifier la priorité des opérateurs.