README.md 23.2 KB
Newer Older
Matthieu Moy's avatar
Matthieu Moy committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Avancée / Planning du cours de MIF08 (Compilation)
_Année 2021-2022_

* Matthieu Moy, Université Lyon 1, LIP https://matthieu-moy.fr/

<!-- 
## Organisation du cours en hybride

L'organisation de l'UE en « mode COVID » est la suivante :

* Pour chaque créneau, les instructions détaillées se trouvent ci-dessous.

* Tous les CM sont à distance

* Les TD et TP sont faits en hybride, certains étudiants et enseignants à distance, d'autres en présentiel. Pour chaque créneau, vous trouverez une case sur TOMUSS indiquant la salle (si vous êtes en présentiel) ou « à distance » si vous êtes à distance. La répartition présentiel/distanciel est faite dans la mesure du possible en suivant les couleurs jAune/Bleu de TOMUSS. Pour les TP/TD à distance, rendez-vous sur le canal correspondant de chat-info (les enseignants utiliseront parfois d'autres outils, par exemple pour une explication ponctuelle en visio, mais posteront le lien vers les outils utilisés dans le canal de chat-info).

* Les groupes B et E sont parfois affectés à des salles de TD pour les TP. Venez avec votre ordinateur personnel pour ces séances.
-->

Matthieu Moy's avatar
Matthieu Moy committed
20
## Communication et nouvelles du cours
Matthieu Moy's avatar
Matthieu Moy committed
21
22
23
24
25
26
27
28

* [NEWS.md](NEWS.md) contient les nouvelles du cours (envoyées par email également).
<!-- 
## Organisation du cours à distance

* Tous les enseignements passent à distance pendant le mois de novembre (au moins) -->

* Pour rejoindre les canaux de discussions sur chat-info, cliquez sur les liens suivants :
Matthieu Moy's avatar
Matthieu Moy committed
29
    - [compil-2021](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2Fynpajp) pour les discussions générales sur le cours. Vous pouvez utiliser ce canal pour discuter entre vous et pour poser des questions aux enseignants. Nous ouvrirons plus de canaux si nécessaire. Merci d'utiliser le canal commun et non les messages directs ou le mail pour poser vos questions, comme ça tout le monde en profite.
Matthieu Moy's avatar
Matthieu Moy committed
30
31
32

## Intervenants

Matthieu Moy's avatar
Matthieu Moy committed
33
34
* Groupe A : Matthieu Moy (+ Guillaume Bouchard pour les TPs)
* Groupe B : Elise Jeanneau (+ Gabriel Radanne pour les TPs)
Matthieu Moy's avatar
Matthieu Moy committed
35
36
37
38
39
40
41
42
43
* Groupe C : Gregoire Pichon (+ Nicolas Louvet pour les TPs)
* Groupe D : Joris Picot (+ Hugo Thievenaz pour les TPs)

## Vidéos des CM

Toutes les vidéos sont disponibles dès maintenant :

[La playlist Youtube MIF08](https://www.youtube.com/playlist?list=PLtjm-n_Ts-J9HSZ9ahpbsC_kTQMzUZQPx)

Matthieu Moy's avatar
Matthieu Moy committed
44
Le contenu des vidéos (réalisées en 2020) est sensiblement le même que celui des CM présentiels. Il est recommandé de venir en présentiel.
Matthieu Moy's avatar
Matthieu Moy committed
45
46
47
48
49
50
51
52
53
54
55
56

## Infrastructure technique, logiciels à installer

Les TP utilisent la chaîne d'outils RiscV, un peu lourde à installer. Voir [INSTALL.md](INSTALL.md) pour les consignes. À faire avant les TPs si vous voulez travailler sur vos machines personnelles.

Si vous n'arrivez pas à installer les outils sur vos machines, vous pourrez travailler sur les ordinateurs de la fac, et nous fournissons aussi des machines virtuelles pré-installées : [VM.md](VM.md).

## Planning

## Mercredi 15/09/2021

- :book: 14h: Cours 1: Introduction, machine cible (RISCV), lexing :
Matthieu Moy's avatar
Matthieu Moy committed
57
58
    - Introduction au cours, à la compilation et à l'architecture cible : [transparents](https://compil-lyon.gitlabpages.inria.fr/mif08-files-2021/capmif_cours01_intro_et_archi.pdf)
    - Lexing (et parsing) : [transparents](https://compil-lyon.gitlabpages.inria.fr/mif08-files-2021/capmif_cours02_lexing_parsing.pdf)
Matthieu Moy's avatar
Matthieu Moy committed
59
60
61
62
    - [Vidéo "teaser"](https://youtu.be/ny7HlqyuM9E)
    - [vidéo d'introduction au cours](https://www.youtube.com/watch?v=zGifE8MfPWA)
    - [vidéo sur RISCV](https://youtu.be/ZdElX9e_tAI)
    - [vidéo lexing](https://www.youtube.com/watch?v=UlUTSsOA9Qc)
Matthieu Moy's avatar
Matthieu Moy committed
63
    - Extrait de la documentation RISCV: [riscv_isa.pdf](https://compil-lyon.gitlabpages.inria.fr/mif08-files-2021/riscv_isa.pdf)
Matthieu Moy's avatar
Matthieu Moy committed
64
    - chat sur [compil-2021](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2Fynpajp).
Matthieu Moy's avatar
Matthieu Moy committed
65
    - :100: QCM noté sur TOMUSS, à faire avant dimanche 19/09/2021, 23:59
Matthieu Moy's avatar
Matthieu Moy committed
66

Matthieu Moy's avatar
Matthieu Moy committed
67
- :pencil2: 15h45: TD1 : Architecture RISCV, Lexing, Parsing
Matthieu Moy's avatar
Matthieu Moy committed
68
69
70
71
72
73
74
75
76
    - Salles :
        - Groupe A : Nautibus TD1 (Matthieu Moy)
        - Groupe B : Nautibus TD2 (Elise Jeanneau)
        - Groupe C : Nautibus TD3 (Grégoire Pichon)
        - Groupe D : Nautibus TD10 (Joris Picot)
    - [Énoncé du TD1](https://compil-lyon.gitlabpages.inria.fr/mif08-files-2021/td1.pdf)
    - Rappel, extrait de la documentation RISCV : [riscv_isa.pdf](https://compil-lyon.gitlabpages.inria.fr/mif08-files-2021/riscv_isa.pdf)
    - Lexing et parsing avec ANTLR en 2 slides : [td1-slides.pdf](https://compil-lyon.gitlabpages.inria.fr/mif08-files-2021/td1-slides.pdf)

Matthieu Moy's avatar
Matthieu Moy committed
77
- :hammer: 17h30: TP1 : Python et RiscV
Matthieu Moy's avatar
Matthieu Moy committed
78
79
80
81
82
83
84
85
86
    - Salles :
        - Groupe A1 : Nautibus TP10 (Matthieu Moy)
        - Groupe A2 : Nautibus TP11 (Guillaume Bouchard)
        - Groupe B1 : Nautibus TP5 (Elise Jeanneau)
        - Groupe B2 : Nautibus TP6 (Gabriel Radanne)
        - Groupe C1 : Nautibus TP1 (Gregoire Pichon)
        - Groupe C2 : Nautibus TP2 (Nicolas Louvet)
        - Groupe D1 : Nautibus TP12 (Joris Picot)
        - Groupe D2 : Nautibus TP13 (Hugo Thievenaz)
Matthieu Moy's avatar
Matthieu Moy committed
87
    - Énoncé : [TP1 python/archi](https://compil-lyon.gitlabpages.inria.fr/mif08-files-2021/tp1.pdf)
Matthieu Moy's avatar
Matthieu Moy committed
88
    - Fichiers du TP1 : [TP01/](TP01/).
Matthieu Moy's avatar
Matthieu Moy committed
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208

# BROUILLON DE PLANNING

```
06/10/2021:
  08:00 -> 09:30 : CM 2 (CM, Matthieu Moy : Parsing, semantics)
  09:45 -> 11:15 : TD 2 (A, Matthieu Moy : AST, Grammar)
  09:45 -> 11:15 : TD 2 (B, Elise Jeanneau : AST, Grammar)
  09:45 -> 11:15 : TD 2 (C, Gregoire Pichon : AST, Grammar)
  09:45 -> 11:15 : TD 2 (D, Joris Picot : AST, Grammar)
  09:45 -> 11:15 : TD 2 (E, Guillaume Bouchard : AST, Grammar)
  14:00 -> 17:15 : TP 2 (A1, Matthieu Moy : ANTLR (parsing, semantic actions))
  14:00 -> 17:15 : TP 2 (B2, Thierry Excoffier : ANTLR (parsing, semantic actions))
  14:00 -> 17:15 : TP 2 (B1, Elise Jeanneau : ANTLR (parsing, semantic actions))
  14:00 -> 17:15 : TP 2 (C2, Nicolas Louvet : ANTLR (parsing, semantic actions))
  14:00 -> 17:15 : TP 2 (C1, Gregoire Pichon : ANTLR (parsing, semantic actions))
  14:00 -> 17:15 : TP 2 (D2, Joris Picot : ANTLR (parsing, semantic actions))
  14:00 -> 17:15 : TP 2 (D1, Hugo Thievenaz : ANTLR (parsing, semantic actions))
  14:00 -> 17:15 : TP 2 (E2, Gabriel Radanne : ANTLR (parsing, semantic actions))
  14:00 -> 17:15 : TP 2 (E1, Guillaume Bouchard : ANTLR (parsing, semantic actions))
  14:00 -> 17:15 : TP 2 (A2, Lionel Morel : ANTLR (parsing, semantic actions))

13/10/2021:
  14:00 -> 15:30 : CM 3 (CM, Matthieu Moy : Typing)
  15:45 -> 17:15 : TP 3 (début) (A1, Matthieu Moy : Interpreter)
  15:45 -> 17:15 : TP 3 (début) (B2, Thierry Excoffier : Interpreter)
  15:45 -> 17:15 : TP 3 (début) (B1, Elise Jeanneau : Interpreter)
  15:45 -> 17:15 : TP 3 (début) (C2, Nicolas Louvet : Interpreter)
  15:45 -> 17:15 : TP 3 (début) (C1, Gregoire Pichon : Interpreter)
  15:45 -> 17:15 : TP 3 (début) (D2, Joris Picot : Interpreter)
  15:45 -> 17:15 : TP 3 (début) (D1, Hugo Thievenaz : Interpreter)
  15:45 -> 17:15 : TP 3 (début) (E2, Gabriel Radanne : Interpreter)
  15:45 -> 17:15 : TP 3 (début) (E1, Guillaume Bouchard : Interpreter)
  15:45 -> 17:15 : TP 3 (début) (A2, Lionel Morel : Interpreter)

03/11/2021:
  14:00 -> 15:30 : TP 3 (fin) (A1, Matthieu Moy : Interpreter)
  14:00 -> 15:30 : TP 3 (fin) (B2, Thierry Excoffier : Interpreter)
  14:00 -> 15:30 : TP 3 (fin) (B1, Elise Jeanneau : Interpreter)
  14:00 -> 15:30 : TP 3 (fin) (C2, Nicolas Louvet : Interpreter)
  14:00 -> 15:30 : TP 3 (fin) (C1, Gregoire Pichon : Interpreter)
  14:00 -> 15:30 : TP 3 (fin) (D2, Joris Picot : Interpreter)
  14:00 -> 15:30 : TP 3 (fin) (D1, Hugo Thievenaz : Interpreter)
  14:00 -> 15:30 : TP 3 (fin) (E2, Gabriel Radanne : Interpreter)
  14:00 -> 15:30 : TP 3 (fin) (E1, Guillaume Bouchard : Interpreter)
  14:00 -> 15:30 : TP 3 (fin) (A2, Lionel Morel : Interpreter)
  15:45 -> 17:15 : CM 4 (CM, Matthieu Moy : Code generation)

10/11/2021:
  14:00 -> 15:30 : TD 3 (A, Matthieu Moy : AST, Grammar)
  14:00 -> 15:30 : TD 3 (B, Elise Jeanneau : AST, Grammar)
  14:00 -> 15:30 : TD 3 (C, Gregoire Pichon : AST, Grammar)
  14:00 -> 15:30 : TD 3 (D, Joris Picot : AST, Grammar)
  14:00 -> 15:30 : TD 3 (E, Guillaume Bouchard : AST, Grammar)
  15:45 -> 17:15 : TP 4 (début) (A1, Matthieu Moy : Code generation)
  15:45 -> 17:15 : TP 4 (début) (B2, Thierry Excoffier : Code generation)
  15:45 -> 17:15 : TP 4 (début) (B1, Elise Jeanneau : Code generation)
  15:45 -> 17:15 : TP 4 (début) (C2, Nicolas Louvet : Code generation)
  15:45 -> 17:15 : TP 4 (début) (C1, Gregoire Pichon : Code generation)
  15:45 -> 17:15 : TP 4 (début) (D2, Joris Picot : Code generation)
  15:45 -> 17:15 : TP 4 (début) (D1, Hugo Thievenaz : Code generation)
  15:45 -> 17:15 : TP 4 (début) (E2, Gabriel Radanne : Code generation)
  15:45 -> 17:15 : TP 4 (début) (E1, Guillaume Bouchard : Code generation)
  15:45 -> 17:15 : TP 4 (début) (A2, Lionel Morel : Code generation)

01/12/2021:
  14:00 -> 17:15 : TP 4 (fin) (A1, Matthieu Moy : Code generation)
  14:00 -> 17:15 : TP 4 (fin) (B2, Thierry Excoffier : Code generation)
  14:00 -> 17:15 : TP 4 (fin) (B1, Elise Jeanneau : Code generation)
  14:00 -> 17:15 : TP 4 (fin) (C2, Nicolas Louvet : Code generation)
  14:00 -> 17:15 : TP 4 (fin) (C1, Gregoire Pichon : Code generation)
  14:00 -> 17:15 : TP 4 (fin) (D2, Joris Picot : Code generation)
  14:00 -> 17:15 : TP 4 (fin) (D1, Hugo Thievenaz : Code generation)
  14:00 -> 17:15 : TP 4 (fin) (E2, Gabriel Radanne : Code generation)
  14:00 -> 17:15 : TP 4 (fin) (E1, Guillaume Bouchard : Code generation)
  14:00 -> 17:15 : TP 4 (fin) (A2, Lionel Morel : Code generation)

08/12/2021:
  14:00 -> 15:30 : CM 5 (CM, Matthieu Moy : IR and Register allocations)
  15:45 -> 17:15 : TD 4 (A, Matthieu Moy : Liveness analysis)
  15:45 -> 17:15 : TD 4 (B, Elise Jeanneau : Liveness analysis)
  15:45 -> 17:15 : TD 4 (C, Gregoire Pichon : Liveness analysis)
  15:45 -> 17:15 : TD 4 (D, Joris Picot : Liveness analysis)
  15:45 -> 17:15 : TD 4 (E, Guillaume Bouchard : Liveness analysis)

05/01/2022:
  14:00 -> 15:30 : TD 5 (A, Matthieu Moy : Register allocation)
  14:00 -> 15:30 : TD 5 (B, Elise Jeanneau : Register allocation)
  14:00 -> 15:30 : TD 5 (C, Gregoire Pichon : Register allocation)
  14:00 -> 15:30 : TD 5 (D, Joris Picot : Register allocation)
  14:00 -> 15:30 : TD 5 (E, Guillaume Bouchard : Register allocation)
  15:45 -> 17:15 : TP 5 (début) (A1, Matthieu Moy : Smart register allocation)
  15:45 -> 17:15 : TP 5 (début) (B2, Thierry Excoffier : Smart register allocation)
  15:45 -> 17:15 : TP 5 (début) (B1, Elise Jeanneau : Smart register allocation)
  15:45 -> 17:15 : TP 5 (début) (C2, Nicolas Louvet : Smart register allocation)
  15:45 -> 17:15 : TP 5 (début) (C1, Gregoire Pichon : Smart register allocation)
  15:45 -> 17:15 : TP 5 (début) (D2, Joris Picot : Smart register allocation)
  15:45 -> 17:15 : TP 5 (début) (D1, Hugo Thievenaz : Smart register allocation)
  15:45 -> 17:15 : TP 5 (début) (E2, Gabriel Radanne : Smart register allocation)
  15:45 -> 17:15 : TP 5 (début) (E1, Guillaume Bouchard : Smart register allocation)
  15:45 -> 17:15 : TP 5 (début) (A2, Lionel Morel : Smart register allocation)

12/01/2022:
  14:00 -> 15:30 : TP 5 (fin) (A1, Matthieu Moy : Smart register allocation)
  14:00 -> 15:30 : TP 5 (fin) (B2, Thierry Excoffier : Smart register allocation)
  14:00 -> 15:30 : TP 5 (fin) (B1, Elise Jeanneau : Smart register allocation)
  14:00 -> 15:30 : TP 5 (fin) (C2, Nicolas Louvet : Smart register allocation)
  14:00 -> 15:30 : TP 5 (fin) (C1, Gregoire Pichon : Smart register allocation)
  14:00 -> 15:30 : TP 5 (fin) (D2, Joris Picot : Smart register allocation)
  14:00 -> 15:30 : TP 5 (fin) (D1, Hugo Thievenaz : Smart register allocation)
  14:00 -> 15:30 : TP 5 (fin) (E2, Gabriel Radanne : Smart register allocation)
  14:00 -> 15:30 : TP 5 (fin) (E1, Guillaume Bouchard : Smart register allocation)
  14:00 -> 15:30 : TP 5 (fin) (A2, Lionel Morel : Smart register allocation)
```

# CI-DESSOUS, LE PLANNING DE L'ANNEE DERNIERE QUI SERA MIS À JOUR AU FUR ET À MESURE

## Mercredi 14/10/2020


Matthieu Moy's avatar
Matthieu Moy committed
209
210
211
212
213
214
215
216
- :book: 15h45: Cours 2:
Lexing, Parsing.
    - Parsing : [deuxième partie des transparents](https://compil-lyon.gitlabpages.inria.fr/mif08-20/capmif_cours02_lexing_parsing.pdf)
    - [vidéo parsing](https://www.youtube.com/watch?v=y9MrfDzrAmA)
    - [transparents sémantique et interprète](https://compil-lyon.gitlabpages.inria.fr/mif08-20/capmif_cours03_interpreters.pdf)
    - [vidéo sémantique et interprète](https://youtu.be/8PYhBsgRO6g)
    - chat sur [compil-2021](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2Fynpajp).
    - Visio en direct à 16h45 sur [BBB (Compilation mif08)](https://classe-info.univ-lyon1.fr/moy-n6a-uip-gtj).
Matthieu Moy's avatar
Matthieu Moy committed
217

Matthieu Moy's avatar
Matthieu Moy committed
218
- :100: QCM noté sur TOMUSS, à faire avant 23:59 le jour même (7/10)
Matthieu Moy's avatar
Matthieu Moy committed
219

Matthieu Moy's avatar
Matthieu Moy committed
220
## Jeudi 15/10/2020
Matthieu Moy's avatar
Matthieu Moy committed
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383

- :pencil2: 15h45: TD, Arbres abstraits, attributions, types

    Votre salle est affichée sur TOMUSS. Les bleus sont à distance et quelques jaunes sont à distance, les autres en présentiel.
    - En présentiel :
        - Nautibus TD10 (24 places) : Matthieu Moy
        - Nautibus TD11 (20 places) : Guillaume Bouchard
        - Nautibus TD1 (20 places) : Élise Jeanneau
    - À distance :
        - groupe 1 : [compil-groupe-1](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FEqiqPF) sur chat-info, Grégoire Pichon.
        - groupe 2 : [compil-groupe-2](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2F3Qzt5k) sur chat-info, ~~Laure Gonnord~~ Joris Picot
    - [Énoncé du TD2](https://compil-lyon.gitlabpages.inria.fr/mif08-20/td2.pdf)

## Mercredi 04/11/2020

- :hammer: TP2, ANTLR : 14h-17h15,
    - 100% distanciel :
        - Groupe A : [compil-groupe-a](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FtHfE7j) Laure Gonnord et Joris Picot
        - Groupe B : [compil-groupe-b](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FqHW2MX) Nicolas Louvet et Matthieu Moy
        - Groupe C : [compil-groupe-c](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FsuFXKk) Thierry Excoffier et Guillaume Bouchard
        - Groupe D : [compil-groupe-d](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FkAWmMd) Lionel Morel et Élise Jeanneau
        - Groupe E : [compil-groupe-e](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FcnEQ9c) Guillaume Salagnac et Grégoire Pichon
    - Transparents de présentation : [capmif_labs.pdf](https://compil-lyon.gitlabpages.inria.fr/mif08-20/capmif_labs.pdf)
    - Nouveauté : des VM pour vous dépanner en cas de problème sur machine perso : [VM.md](VM.md)
    - Énoncé : [TP2 antlr](https://compil-lyon.gitlabpages.inria.fr/mif08-20/tp2.pdf)
    - Fichiers du TP2 : [TP02/](TP02/).
    - **Date limite pour le rendu (noté) : dimanche 8/11/2020, 23h59.**

- :book: Cours 3, Typage : 17h30-19h
    - [transparents typage](https://compil-lyon.gitlabpages.inria.fr/mif08-20/capmif_cours04_typing.pdf)
    - [vidéo typage](https://youtu.be/2A-hQy_6YlE)
    - chat sur [compil-2021](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2Fynpajp).
    - Visio en direct à 18h15 sur [BBB (Compilation mif08)](https://classe-info.univ-lyon1.fr/moy-n6a-uip-gtj).

- :100: QCM noté sur TOMUSS, à faire avant 23:59 le jour même (4/11)

## Vendredi 13/11/2020 ou Mercredi 18/11/2020

- :hammer: TP3, interprète MiniC : 14h-17h15 (même horaire pour le 13/11 et 18/11)
    - 100% distanciel :
        - Groupe A : [compil-groupe-a](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FtHfE7j) Laure Gonnord et Joris Picot
        - Groupe B : [compil-groupe-b](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FqHW2MX) Nicolas Louvet et Matthieu Moy
        - Groupe C : [compil-groupe-c](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FsuFXKk) Thierry Excoffier et Guillaume Bouchard
        - Groupe D : [compil-groupe-d](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FkAWmMd) Lionel Morel et Élise Jeanneau
        - Groupe E1 (le groupe E2 est décalé au 18/11, mais peut venir poser des questions le 13/11 quand même) : [compil-groupe-e](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FcnEQ9c) Guillaume Salagnac
    - Le 18/11 :
        - Groupe E2 (les autres étudiants peuvent en profiter pour passer poser des questions si le TP n'est pas fini): [compil-groupe-e](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FcnEQ9c) Grégoire Pichon
    - Énoncé : [TP3 frontend, évaluateur](https://compil-lyon.gitlabpages.inria.fr/mif08-20/tp3.pdf)
    - Fichiers du TP3 : [MiniC/](MiniC/).
    - **Date limite de rendu du TP3 (stricte, note 0 pour tout rendu en retard) : 4 décembre 2020, 23h59.**

## Mercredi 2/12/2020

- :book: Cours 4 : 14h-15h30
    - génération de code 3 adresses + allocation naive, [transparents](https://compil-lyon.gitlabpages.inria.fr/mif08-20/capmif_cours05_3ad_codegen.pdf), [vidéo](https://youtu.be/m2x7leFnCN4)
    - Représentations intermédiaires, [transparents](https://compil-lyon.gitlabpages.inria.fr/mif08-20/capmif_cours06_irs.pdf), [vidéo 6a](https://youtu.be/dD9bRhLfykM), [vidéo 6b](https://youtu.be/Xico_JTK3XQ).
    - Visio en direct à 14h50 sur [BBB (Compilation mif08)](https://classe-info.univ-lyon1.fr/moy-n6a-uip-gtj).

- :pencil2: TD 3 : 15h45-17h15 :
    - 100% distanciel :
        - Groupe A : [compil-groupe-a](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FtHfE7j) Laure Gonnord
        - Groupe B : [compil-groupe-b](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FqHW2MX) Matthieu Moy
        - Groupe C : [compil-groupe-c](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FsuFXKk) Guillaume Bouchard
        - Groupe D : [compil-groupe-d](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FkAWmMd) Élise Jeanneau
        - Groupe E : [compil-groupe-e](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FcnEQ9c) Grégoire Pichon
    - Sujet : [TD3 génération de code](https://compil-lyon.gitlabpages.inria.fr/mif08-20/td3.pdf)

- :100: QCM noté sur TOMUSS, à faire avant 23:59 le jour même (2/12)

## Mercredi 9/12/2020

- :hammer: TP, 14h-17h15
    - 100% distanciel :
        - Groupe A : [compil-groupe-a](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FtHfE7j) Laure Gonnord et Joris Picot
        - Groupe B : [compil-groupe-b](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FqHW2MX) Nicolas Louvet et Matthieu Moy
        - Groupe C : [compil-groupe-c](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FsuFXKk) Guillaume Bouchard
        - Groupe D : [compil-groupe-d](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FkAWmMd) Lionel Morel et Élise Jeanneau
        - Groupe E : [compil-groupe-e](https://go.rocket.chat/invite?host=chat-info.univ-lyon1.fr&path=invite%2FcnEQ9c) Guillaume Salagnac et Grégoire Pichon
    - Transparents de présentation : [capmif_labs.pdf](https://compil-lyon.gitlabpages.inria.fr/mif08-20/capmif_labs.pdf)
    - Rappel : des VM pour vous dépanner en cas de problème sur machine perso : [VM.md](VM.md)
    - Énoncé :  [TP4 génération de code](https://compil-lyon.gitlabpages.inria.fr/mif08-20/tp4.pdf)
    - Fichiers du TP4 : [MiniC/TP04/](MiniC/TP04/).
    - **Date limite pour le rendu (noté) :**
        - Si vous rendez avant dimanche 13/12/2020, 23h59, barème spécial Noël sur 22 points (notes plafonées à 20).
        - Si vous rendez avant lundi 4/01/2021, 23h59, barème normal sur 20. Après cette date, malus de 1 point par jour de retard.
        - Aucun TP ne sera accepté après mercredi 6, 14h00.
        - Si vous faites plusieurs rendus sur TOMUSS, c'est la date du dernier rendu qui est prise en compte.

## Jeudi 10/12/2020

- :hammer: TP, 14h-15h30 : fin du TP 4 (cf. ci-dessus pour les supports et liens chat-info).

- :book: Cours 5, allocation de registres
    - Register allocation + data-flow analyses : [transparents](https://compil-lyon.gitlabpages.inria.fr/mif08-20/capmif_cours07_regalloc.pdf), [vidéo première partie](https://youtu.be/9902mMgDIK8), [vidéo deuxième partie](https://youtu.be/LknSDccweFw).
    - Visio en direct à 16h45 sur [BBB (Compilation mif08)](https://classe-info.univ-lyon1.fr/moy-n6a-uip-gtj).

- :100: QCM noté sur TOMUSS, à faire avant 23:59 le jour même (10/12)

## Mercredi 6/01/2021
<!-- 
- :mag_right: Contrôle continu (tp) (20 min de composition) une grammaire
    ANTLR -->

Toujours les mêmes groupes et canaux sur chat-info, cf. ci-dessus.

- :pencil2: 14h-15h30 :
    - Énoncé : [TD4 liveness](https://compil-lyon.gitlabpages.inria.fr/mif08-20/td4.pdf)

- :hammer: 15h45-17h15 : TP5
    - Énoncé : [TP5 allocation de registres](https://compil-lyon.gitlabpages.inria.fr/mif08-20/tp5.pdf)
    - Fichiers du TP5 : [MiniC/TP05/](MiniC/TP05/).
    - **Date limite pour le rendu (noté) : dimanche 17/01/2021, 23h59.**

## Mercredi 13/01/2021

- :pencil2: 14h-15h30
    - Énoncé : [TD5 regalloc](https://compil-lyon.gitlabpages.inria.fr/mif08-20/td5.pdf)

- :hammer: 15h45-17h15 : TP5, suite
    - Même sujet et organisation que la semaine d'avant en TP.
<!-- 
### Rendus Tomuss et feedback

- CC de cours : la note arrivera fin de la semaine.

- CC de tp noté : rendu mercredi 15/01 à 14h30. La correction
arrivera avant la fin de la semaine.

- Rendu de l'évaluateur juste après la démo le vendredi 17/01. Une
note "automatique" vous sera rendue durant le week-end.

- Tps de génération de code directe: rendu le mardi 21/01 à 18h - une
correction partielle sera fournie à la même heure. 

- Dernier TP : rendu le dimanche 26 à 23h59.

- Les deux dernières notes de TP vous seront fournies après l'examen. -->

## Annales et consignes pour l'examen

* L'examen Session 1 2020-2021 : [exam_mif08_2020.pdf](https://compil-lyon.gitlabpages.inria.fr/mif08-20/exam_mif08_2020.pdf) et les éléments de corrigé : [exam_mif08_2020_corr.pdf](https://compil-lyon.gitlabpages.inria.fr/mif08-20/exam_mif08_2020_corr.pdf)

* L'examen 2019-2020 : [mif08_exam1920.pdf](https://compil-lyon.gitlabpages.inria.fr/mif08-20/mif08_exam1920.pdf) et les éléments de corrigés : [mif08_exam1920-corr.pdf](https://compil-lyon.gitlabpages.inria.fr/mif08-20/mif08_exam1920-corr.pdf).

* L'examen 2018-2019 : [exam_mif08_2018.pdf](https://compil-lyon.gitlabpages.inria.fr/mif08-20/exam_mif08_2018.pdf)

* Aide mémoire fourni avec le sujet (sera fourni pour l'examen de janvier 2021): [mif08_sheet20.pdf](https://compil-lyon.gitlabpages.inria.fr/mif08-20/mif08_sheet20.pdf)

* [Consignes pour l'examen](https://compil-lyon.gitlabpages.inria.fr/mif08-20/exam_mif08_2020-page1.pdf)

* Examen de session 1 :
    - Pour les étudiants bénéficiant d'un tiers-temps : 8h-10h, salle Nautibus C2.
    - Pour les étudiants ne bénéficiant pas de tiers-temps : 8h15-9h45, Amphis Déambu (place exacte sur TOMUSS)

## Pondération des notes (indicative pour l'instant)
  - QCM : 15% (3% chacun)
  - TP2 parsing et évaluation d'expression : 5%
  - TP3 interprète : 10%
  - TP4 génération de code : 10%
  - TP5 allocation de registres : 10%
  - Examen final : 50 %

La session 2 remplace la note d'examen final.