You are on page 1of 40

TC: Tiger Compiler

YAKA 2024 Team

13 March, 2023

1/11
Copyright

This document is for internal use only at EPITA <http://www.epita.fr>.

Copyright © 2022-2023 Assistants <assistants@tickets.assistants.epita.fr>.

Rules
• You must have downloaded your copy from the Assistants’ Intranet <https://intra.forge.epita.fr>.

• This document is strictly personal and must not be passed on to someone else.

• Non-compliance with these rules can lead to severe sanctions.

2/11
Overview
What is TC

• TC holds for Tiger Compiler

3/11
What is TC

• TC holds for Tiger Compiler

• It is a unique opportunity to dive into compiler theory

3/11
What is TC

• TC holds for Tiger Compiler

• It is a unique opportunity to dive into compiler theory

• Tiger is a toy language designed by Andrew Appel for the Modern Compiler Implementation book series

3/11
What is TC

• TC holds for Tiger Compiler

• It is a unique opportunity to dive into compiler theory

• Tiger is a toy language designed by Andrew Appel for the Modern Compiler Implementation book series

• TC is the first project where you arrive to a pre-existing codebase

3/11
What is TC

• TC holds for Tiger Compiler

• It is a unique opportunity to dive into compiler theory

• Tiger is a toy language designed by Andrew Appel for the Modern Compiler Implementation book series

• TC is the first project where you arrive to a pre-existing codebase

• Tiger Compiler is a project managed by the LRE and the assistants

3/11
What is TC

• TC holds for Tiger Compiler

• It is a unique opportunity to dive into compiler theory

• Tiger is a toy language designed by Andrew Appel for the Modern Compiler Implementation book series

• TC is the first project where you arrive to a pre-existing codebase

• Tiger Compiler is a project managed by the LRE and the assistants

• The maintainers of TC are assistants that contribute and improve the project over the years

3/11
Why is TC (1/2)

TC is a different project than what you are used to …

• There is no subject on the intranet, all you have to know is on assignments.lrde.epita.fr.

4/11
Why is TC (1/2)

TC is a different project than what you are used to …

• There is no subject on the intranet, all you have to know is on assignments.lrde.epita.fr.

• There is no Tiger compiler program to use as reference.

4/11
Why is TC (1/2)

TC is a different project than what you are used to …

• There is no subject on the intranet, all you have to know is on assignments.lrde.epita.fr.

• There is no Tiger compiler program to use as reference.

• This is the longest project you will work on this year.

4/11
Why is TC (1/2)

TC is a different project than what you are used to …

• There is no subject on the intranet, all you have to know is on assignments.lrde.epita.fr.

• There is no Tiger compiler program to use as reference.

• This is the longest project you will work on this year.

• It connects with courses such as THL and CMP.

4/11
Why is TC (2/2)

… so it comes with different challenges

• Use your theoretical background to solve a technical problem.

5/11
Why is TC (2/2)

… so it comes with different challenges

• Use your theoretical background to solve a technical problem.

• Learn to understand and use modern C++ concepts as well as multiple design patterns.

5/11
Why is TC (2/2)

… so it comes with different challenges

• Use your theoretical background to solve a technical problem.

• Learn to understand and use modern C++ concepts as well as multiple design patterns.

• You are implementing specifications, not mimicking a reference program’s behaviour.

5/11
Why is TC (2/2)

… so it comes with different challenges

• Use your theoretical background to solve a technical problem.

• Learn to understand and use modern C++ concepts as well as multiple design patterns.

• You are implementing specifications, not mimicking a reference program’s behaviour.

• A rigid testsuite is absolutely needed.

5/11
Compilation
Compiler pipeline

6/11
What you will do

7/11
What you may do during backend

8/11
Compiler stages overview

Canon stages
• Scanner and Parser (1 week)

9/11
Compiler stages overview

Canon stages
• Scanner and Parser (1 week)

• Build the AST (1 week)

9/11
Compiler stages overview

Canon stages
• Scanner and Parser (1 week)

• Build the AST (1 week)

• Bindings (1 week)

9/11
Compiler stages overview

Canon stages
• Scanner and Parser (1 week)

• Build the AST (1 week)

• Bindings (1 week)

• Type Checking (2 weeks)

9/11
Compiler stages overview

Canon stages
• Scanner and Parser (1 week)

• Build the AST (1 week)

• Bindings (1 week)

• Type Checking (2 weeks)

• LLVM IR (2 weeks)

9/11
Compiler stages overview

Canon stages
• Scanner and Parser (1 week)

• Build the AST (1 week)

• Bindings (1 week)

• Type Checking (2 weeks)

• LLVM IR (2 weeks)

and extensions !
• Object-oriented language support

9/11
Compiler stages overview

Canon stages
• Scanner and Parser (1 week)

• Build the AST (1 week)

• Bindings (1 week)

• Type Checking (2 weeks)

• LLVM IR (2 weeks)

and extensions !
• Object-oriented language support

• Function inlining

9/11
Compiler stages overview

Canon stages
• Scanner and Parser (1 week)

• Build the AST (1 week)

• Bindings (1 week)

• Type Checking (2 weeks)

• LLVM IR (2 weeks)

and extensions !
• Object-oriented language support

• Function inlining

• Function overloading

9/11
Compiler stages overview

Canon stages
• Scanner and Parser (1 week)

• Build the AST (1 week)

• Bindings (1 week)

• Type Checking (2 weeks)

• LLVM IR (2 weeks)

and extensions !
• Object-oriented language support

• Function inlining

• Function overloading

• Bounds Checking

9/11
Compiler stages overview

Canon stages
• Scanner and Parser (1 week)

• Build the AST (1 week)

• Bindings (1 week)

• Type Checking (2 weeks)

• LLVM IR (2 weeks)

and extensions !
• Object-oriented language support

• Function inlining

• Function overloading

• Bounds Checking

• And much more!

9/11
Some advices
You are not alone

• You are doing this project in groups of four.

10/11
You are not alone

• You are doing this project in groups of four.

• Take a look at the Instructions/Groups section in assignments.

10/11
You are not alone

• You are doing this project in groups of four.

• Take a look at the Instructions/Groups section in assignments.

• Assistants are here to help you get through this project.

10/11
You are not alone

• You are doing this project in groups of four.

• Take a look at the Instructions/Groups section in assignments.

• Assistants are here to help you get through this project.

• Work together and communicate as a promotion.

10/11
Piece of advices

• Have a good workflow

11/11
Piece of advices

• Have a good workflow

• Go to presentations

11/11
Piece of advices

• Have a good workflow

• Go to presentations

• Read assignments

11/11
Piece of advices

• Have a good workflow

• Go to presentations

• Read assignments

• Go to permanences

11/11

You might also like