SE202 : projet de compilation Tiger

Samuel Tardieu

Année scolaire 2017/2018

Présentation du projet

Grands principes

Tiger

Tiger : le langage

Tiger : exemple de programme

Un programme Tiger sera composé pour nous d’une expression.

1 + 17

sachant qu’on peut définir des variables temporairement (de leur définition jusqu’à la fin du end correspondant)

let
  var a: int := 10  /* Type explicite */
  var b := 5 + a    /* Type implicite */
in
  a + b * 3
end

Tiger : exemple de let imbriqués

let
  var a := 5
in
  let
    var a := 6    /* Cache la définition précédente */
  in
    a + a         /* Vaut 12, le a le plus "proche" */
  end             /* est utilisé                    */
end

Vous aurez deviné que les commentaires sont compris entre /* et */. Ils peuvent être imbriqués.

Tiger : exemple de fonctions

Des fonctions peuvent être définies et peuvent être récursives :

let
  function fact(n: int): int =
    if n < 3
    then n
    else n * fact(n-1)
in
  fact(5)       /* 120 */
end

Tiger : le langage

Tiger : le langage

Tiger : le langage

Exemples :

let
  var abc12__34x := 0       /* Autorisé */
  var abc12__34x: int := 0  /* Autorisé */
  var _abc := 0             /* Interdit */
  var abc := 012            /* Interdit */
  var in := 0               /* Interdit */
in

end