Tiger 2020

This is the nineteenth year of the Tiger Project.

We have been helped by:

Assistants

Loïc Banet, Moray Baruh, Meven Courouble, Maxime Joubert, Ashkan Kiaie-Sandjie, Steven Lariau, Guillaume Marques, Sarasvati Moutoucomarapoule, Cyprien Orfila, Nicolas Poitoux, Loic Reyreaud, Andreas Touly

Deliveries for ing1 student:

Stage

Submission

TC-0

2018-02-01

TC-1

2018-02-04

TC-2

2018-02-25

TC-3R

2018-03-11

TC-4E

2018-03-25

TC-5

2018-04-29

TC-6

2018-05-20

TC-7

2018-05-27

TC-8

2018-06-03

TC-9

2018-07-08

Deliveries for AppIng1 student:

Stage

Submission

TC-0

2018-02-01

Some of the noteworthy changes compared to Tiger 2019:

C++17
  • use structured bindings

  • use std::variant instead of boost::variant

  • use class template argument deduction

  • use if(init; condition)

callee/caller-save

Swap callee-save and caller-save order

Desugar

Add desugar implementation for ArrayExp during TC-O

enum class

Replace enums with enum classes

_main

Ensure _main existence and correct prototype in the AST

Metavar

Remove MetavarExp and Metavariable AST nodes

Namespaces

Use nested namespaces

Smart pointers

Replace some raw pointers with unique_ptr or shared_ptr

target::*::rewrite_program

Add alternative rewrite_program implementation

Setup a debian-sid Dockerfile

Provide a docker with requirements to build tc