Tiger 2016

This is the fifteenth year of the Tiger Project.

We have been helped by:

Beta testers

Anthony Seure, Rémi Weng

Assistants

Aurélien Baud, Alexis Chotard, Baptiste Covolato, Arnaud Farbos, Laurent Gourvénec, Frédéric Lefort, Vincent Mirzaian-Dehkordi

Deliveries for ing1 student:

Stage

Submission

TC-0

2013-12-22

TC-1

2014-02-19

TC-2

2014-03-02

TC-3R

2014-03-16

TC-4E

2014-05-04

TC-5

2014-05-24

TC-6

2014-06-08

TC-7

2014-06-22

TC-8

2014-07-13

TC-9

2014-07-20

Deliveries for AppIng1 student:

Stage

Submission

TC-0

2013-12-22

Some of the noteworthy changes compared to Tiger 2015:

Use of even more C++ 2011 features

The compiler introduces the following C++ 2011 features:

  • (standard) smart pointers (std::unique_ptr, std::shared_ptr);

  • general-purpose initializer lists;

  • lambda expressions;

  • explicit override’s;

  • template aliases;

  • new function declarator syntax;

  • delegating constructors;

  • non-static data member initializers;

  • inherited constructors.

The whole set of C++ features used in the Tiger compiler is supported by both GCC 4.8 and Clang 3.3.

C++ scanner

We introduce a C++ scanner this year, still generated by Flex, but implemented as classes. The management of the scanner’s inputs has been improved and responsibilities shared between the scanner and the driver (parse::TigerParser).

More Git Usage

Starting this year, we deliver code with gaps exclusively through the tc-base public Git repository. We no longer provide tarballs nor patches as a means to update students’ code bases.

Changes in the language regarding object-oriented constructs

The nil keyword has been made compatible with objects.

Style

Many stylistics changes have been performed, mainly to match the EPITA Coding Style.