Professional Documents
Culture Documents
13 March, 2023
1/11
Copyright
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.
2/11
Overview
What is TC
3/11
What is TC
3/11
What is TC
• Tiger is a toy language designed by Andrew Appel for the Modern Compiler Implementation book series
3/11
What is TC
• Tiger is a toy language designed by Andrew Appel for the Modern Compiler Implementation book series
3/11
What is TC
• Tiger is a toy language designed by Andrew Appel for the Modern Compiler Implementation book series
3/11
What is TC
• Tiger is a toy language designed by Andrew Appel for the Modern Compiler Implementation book series
• The maintainers of TC are assistants that contribute and improve the project over the years
3/11
Why is TC (1/2)
4/11
Why is TC (1/2)
4/11
Why is TC (1/2)
4/11
Why is TC (1/2)
4/11
Why is TC (2/2)
5/11
Why is TC (2/2)
• Learn to understand and use modern C++ concepts as well as multiple design patterns.
5/11
Why is TC (2/2)
• Learn to understand and use modern C++ concepts as well as multiple design patterns.
5/11
Why is TC (2/2)
• Learn to understand and use modern C++ concepts as well as multiple design patterns.
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)
9/11
Compiler stages overview
Canon stages
• Scanner and Parser (1 week)
• Bindings (1 week)
9/11
Compiler stages overview
Canon stages
• Scanner and Parser (1 week)
• Bindings (1 week)
9/11
Compiler stages overview
Canon stages
• Scanner and Parser (1 week)
• Bindings (1 week)
• LLVM IR (2 weeks)
9/11
Compiler stages overview
Canon stages
• Scanner and Parser (1 week)
• Bindings (1 week)
• LLVM IR (2 weeks)
and extensions !
• Object-oriented language support
9/11
Compiler stages overview
Canon stages
• Scanner and Parser (1 week)
• Bindings (1 week)
• LLVM IR (2 weeks)
and extensions !
• Object-oriented language support
• Function inlining
9/11
Compiler stages overview
Canon stages
• Scanner and Parser (1 week)
• Bindings (1 week)
• 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)
• Bindings (1 week)
• 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)
• Bindings (1 week)
• LLVM IR (2 weeks)
and extensions !
• Object-oriented language support
• Function inlining
• Function overloading
• Bounds Checking
9/11
Some advices
You are not alone
10/11
You are not alone
10/11
You are not alone
10/11
You are not alone
10/11
Piece of advices
11/11
Piece of advices
• Go to presentations
11/11
Piece of advices
• Go to presentations
• Read assignments
11/11
Piece of advices
• Go to presentations
• Read assignments
• Go to permanences
11/11