Commit 81c58ebf authored by Pierre Brandone's avatar Pierre Brandone
Browse files

intro: update links, ressources and infos

* source/conf.py,
* source/intro/how_to_read_this_document.rst,
* source/intro/introduction.rst,
* source/intro/why_the_tiger_project.rst: Here.
parent 24fed483
Pipeline #32027 canceled with stage
......@@ -45,6 +45,7 @@ rst_prolog = f'''
.. |Project| replace:: Tiger
.. |compiler| replace:: TC
.. |lrde| replace:: {lrde_root_url}
.. |lrde-tiger| replace:: {lrde_root_url}~tiger/
.. |class| replace:: 2023
.. |year| replace:: 2021
......
......@@ -3,42 +3,56 @@
How to Read this Document
-------------------------
If you are a newcomer, you might be afraid by its sheer size. Don't
worry, but in any case, do not give up: as stated in the very beginning
of this document,
If you are a newcomer, you might be afraid by its sheer size. Don't worry, but
in any case, do not give up: as stated in the very beginning of this document,
**Nul n'est censé ignorer la loi**
That is to say everything exposed in this document is considered to be
known. If it is written but you didn't know, you are wrong. If it is
not written *and* was not clearly reported in the news, we are
wrong.
That is to say everything exposed in this document is considered to be known.
If it is written but you didn't know, you are wrong. If it is not written *and*
was not clearly reported in the news, we are wrong.
.. warning::
|Project| is an old project. Some information you've seen online or heard
from previous promotions may be outdated. Always refer to assignments, news,
the maintainers and Etienne over everything else.
Basically this document contains three kinds of information:
Initial and Permanent
What you must read and know since the very beginning of the project.
This includes most the following chapters: :ref:`Introduction` (except
the :ref:`History` section), :ref:`Instructions`, and :ref:`Evaluation`.
- Initial and Permanent
What you must read and know since the very beginning of the project. This
includes most the following chapters: :ref:`Introduction` (except the
:ref:`History` section), :ref:`Instructions`, :ref:`Evaluation` and the basis
of :ref:`Tiger Language Reference Manual`.
- Incremental
You should read these parts as and when needed. This includes mostly
:ref:`Compiler Stages` and :ref:`Tiger Language Reference Manual`.
- Auxiliary
This information is provided to help you: just go there when you feel the
need, :ref:`Tools`, and :ref:`Source_Code`. If you want to have a better
understanding of the project, if you are about to criticize something, be sure
to read :ref:`History` beforehand.
There is additional material:
* A few copies of `Modern Compiler Implement in ML`, the book on which is
based the project, can be found in the assistants' lab.
Incremental
You should read these parts as and when needed. This includes mostly
:ref:`Compiler Stages`.
Auxiliary
This information is provided to help you: just go there when you feel the
need, :ref:`Tools`, and :ref:`Source_Code`. If you want to have a better understanding
of the project, if you are about to criticize something, be sure to read
:ref:`History` beforehand.
* |lrde-tiger| holds some interesting materials for |Project| (e.g., links and
lecture notes).
There is additional material on the Internet:
* The |lrde|, Wiki page for the |Project| is the official home page of the
project. It holds related material (e.g., links).
* The public git repositories for |Project|, including assignments itself,
tc-base and frameworks can be found on the
`gitlab <https://gitlab.lrde.epita.fr/>`_.
* The packages of the tools that we use (Bison, Autoconf etc.) can be
found in the :lrde:`download` page.
* You should use your THL lecture notes and ressources to make a good start
into the project. Public ressource are also available online, like Akim's
series of videos
`here <https://www.youtube.com/watch?v=WbUpN4fHs_k&list=PLu008__K5BwEMnt6cyxTeYC7vMKmQ2fzo>`_.
THL 8 & 9 are very relevant for |Project|.
* The Documentation of the |Project| Compiler in the :lrde:`tc-doc` page.
* For good c++ documentation and guidelines, take a look at
`cppreference <https://en.cppreference.com/w/cpp>`_ and
`cppcoreguidelines <https://isocpp.github.io/CppCoreGuidelines/>`_.
* Most of the provided material (lecture notes, older exams, current
tarballs etc.) is in the :lrde:`~tiger` page.
......@@ -4,10 +4,8 @@ Introduction
============
This document presents the |Project| Project as part of the
`Epita <http://www.epita.fr/>`_ curriculum. It aims at the
implementation of a |Project| compiler in C++.
Assignments PDF can be downloaded here: :download:`assignments <../../_build/latex/assignments.pdf>`
`Epita <http://www.epita.fr/>`_ curriculum. It aims at the implementation of a
|Project| compiler in C++.
.. toctree::
how_to_read_this_document
......
......@@ -3,32 +3,32 @@
Why the Tiger Project
---------------------
This project is quite different from most other Epita projects, and has
aims at several different goals, in different areas:
This project is quite different from most other Epita projects, and has aims at
several different goals, in different areas:
Several iterations:
This project is about the only one with which you will live for 4
months (6 months for the brave ones), with the constant needs to fix errors
found in earlier stages.
|Project| is about the only one with which you will live for 7 weeks
(14 weeks for the elite who chose |Project|-Backend), with the constant needs
to fix errors found in earlier stages.
Complete Project:
While the evaluation of most student projects is based on the code, this
project restores the deserved emphasis on *documentation* and
*testing*. Because of the duration of the project, you will value
the importance of a good (developer's) documentation (why did we write
this 4 months ago?), and of a good test suite (why does |project|-2 fails now
that we implemented |project|-4? When did we break it?).
While you were used in your cursus to copy the behavior of a program for your
projects, here you will have to rely on the Tiger specifications and given
samples. Because of the duration of the project, you will value the importance
of a good (developer's) documentation (why did we write this 4 months ago?),
and of a good test suite (why does TC-2 fails now that we implemented TC-4?
When did we break it?).
This also means that you have to design a test suite, and maintain it
through out the project. *The test suite is an integral part of
the project.*
This also means that you have to design a test suite, and maintain it through
out the project. *The test suite is an integral part of the project.*
Team Management:
The |project| Compiler is a long project, running from February to
May (and optionally further). Each three person team is likely to
experience nasty "human problems". This is explicitly a part of the
project: the team management is a task you have to address. That may
well include exclusion of lazy members.
The |Project| Compiler is a long project. Working as a team and using a good
workflow will be mandatory to finish the project in good conditions. Try to
make everyone focus on the projet, maybe using techniques like pair or mob
programming to distribute the knowledge and make everyone capable of
continuing the project. |Project| steps rely on previous ones, do not let some
of your mates drop |Project| for a week: you wont see them ever again!
C++:
C++ is by no means an adequate language to *study* compilers (C would be even
......@@ -54,10 +54,10 @@ Understanding Computers:
See :ref:`Bjarne Stroustrup <Bjarne Stroustrup>`, for instance, says:
Q: What is your opinion, is knowing assembly language useful for
programmers nowadays?
programmers nowadays?
BS: It is useful to understand how machines work and knowing assembler
is almost essential for that.
is almost essential for that.
English
English is *the* language for this project, starting with this very document,
......@@ -72,7 +72,7 @@ English
Any attempt to break the importance of English is wrong. For instance,
*do not translate this document nor any other*. Ask support to the
Yakas, or to the English team. By the past, some oral and written
YAKAs, or to the English team. By the past, some oral and written
examinations were made in English. It may well be back some day. Some
books will help you to improve your English, see :ref:`The Elements of Style <The Elements of Style>`.
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment