|
|
Nouveautés
- 07/02/03
-
- 04/02/03
-
- 04/02/03
-
- Instructions pour rendre le projet - le projet doit être rendu au plus tard le jeudi 6 février à 16 heures
- 04/02/03
-
- Le programme d'exemple
fairies a besoin de beaucoup de mémoire. C'est pourquoi, il faut lancer risc-emu et risc-gui avec l'option -mem=1000000
- 29/01/03
-
- Version française des transparents de la partie 10 du cours
Survol
Ce cours est un cours de construction de compilateurs. Il aborde
les aspects fondamentaux de l'analyse des langages de programmation
et de leur traduction en une forme exécutable. À la fin du cours,
l'étudiant devrait :
- pouvoir définir la syntaxe formelle d'un langage de
programmation,
- pouvoir définir la sémantique d'un langage avec un
interpréteur,
- connaître les structures internes et l'architecture des
compilateurs,
- être capable d'écrire un compilateur qui traduit un langage
simple en un code exécutable,
- connaître les structures et les motifs de constructions
(design patterns) utilisés dans la construction d'un
compilateur,
- connaître la représentation en mémoire à l'exécution des
principales constructions d'un langage de programmation.
Quelques buts moins tangibles mais tout aussi importants sont :
- Améliorer la compréhension des langages de programmation,
- comprendre les compromis entre pouvoir d'expression,
simplicité, et performance d'un langage de programmation,
- participer à la conception et à la réalisation d'un
logiciel où la théorie est essentielle pour la réussite.
Le cours et les exercices sont donnés en français. Une version
anglaise du cours donné il y a deux ans se trouve ici
Bibliographie:
Professeur: Prof. Martin Odersky
Horaire
Cours: |
mercredi 11:15-13:00, salle INM202 |
Exercices: |
vendredi 13:15-15:00, salle INF3 |
Gestion du cours
Le cours de compilation sera géré au moyen du système Sygeco.
Ce système vous permet de vous inscrire à un ou plusieurs cours,
former des groupes, et consulter les notes obtenues durant
l'année.
Pour utiliser Sygeco, vous devez connaître votre numéro CAMIPRO, qui figure sur
la carte du même nom. Au moyen de ce numéro, vous pouvez vous inscrire
dans le système, puis vous inscrire au cours de compilation. Sygeco
devrait être simple à utiliser pour la plupart d'entre-vous, mais en
cas de besoin un manuel de
l'utilisateur est disponible.
Attention : pour accéder à Sygeco depuis
l'extérieur de l'EPFL, vous devez pour l'instant créer un
tunnel SSH via tremplin,
car le serveur Web utilisé est sur le port 8000, et ce port est
malheureusement bloqué par diode, le pare-feu de
l'EPFL. Vous trouverez les instructions nécessaires sur
la page de tremplin. Une
autre option est d'accéder au réseau de l'EPFL via un clien VPN,
ce qui est documenté sur la
page VPN à l'EPFL.
Si vous constatez un problème avec Sygeco, merci de le signaler par
mail à l'adresse sygeco-bug@lamp.epfl.ch.
Si vous désirez ajouter un signet dans votre navigateur pour
accéder rapidement à Sygeco, utilisez l'URL suivante :
http://lamppc35.epfl.ch:8000/bigwig-sygeco/sygeco/sygeco?_ses=sygeco
Sygeco a été programmé en <bigwig> par
Frédéric Nicod.
Transparents
Nous essayons de publier les transparents du cours aussi vite que
possible. Parfois, il nous arrive de modifier des transparents
que nous avons déjà publiés. Pour cette raison, nous ajoutons un
numéro de version à chaque série de transparents et indiquons
s'il s'agit de la version finale.
- Partie I : Vue d'ensemble et
bases (version 1, finale)
- Partie II : Analyse
lexicale (version 1, finale)
- Partie III : Analyse
syntaxique (version 1, finale)
- Partie IV : Syntaxe
abstraite (version 1, finale)
- Partie IV : Arbre de syntaxe
abstraite en Scala (version 1,
finale)
- Partie V : Analyse des
noms (version 1, finale)
- Partie VI : Analyse des
types (version 1, finale)
- Partie VII : Production de
code I (version 2, finale)
- Partie VIII : Production de
code II (version 2, finale)
- Partie IX : Production de
code pour les fonctions et optimisations (version 1, finale)
- Partie X : Dispatching
orienté-objet (version 1, finale)
Object-oriented
Dispatch Methods (version 1, en
anglais, finale)
- Partie XI : Dynamic
Memory Management (version
1)
Exercices
- Grammaires BNF/EBNF (30.10.2002)
- Grammaires LL(1) (06.11.2002)
Projet
Général
Séances
Rendu du Projet
Le projet doit être rendu au plus tard le jeudi
6 février à 16 heures en suivant les instructions ci-dessous.
Scala
Contacts
- Prof. Martin Odersky
martin.odersky@epfl.ch, INR 319,
tel. +41 21 693 6863
- Philippe Altherr
philippe.altherr@epfl.ch, INR 318,
tel. +41 21 693 5281
- Michel Schinz
michel.schinz@epfl.ch, INR 318,
tel. +41 21 693 4209
- Vincent Cremet
vincent.cremet@epfl.ch, INR 320,
tel. +41 21 693 6867
- Stéphane Micheloud
stephane.micheloud@epfl.ch, INR 315,
tel. +41 21 693 7593
- Nikolay Mihaylov
nikolay.mihaylov@epfl.ch, INR 321,
tel. +41 21 693 6864
- Matthias Zenger
matthias.zenger@epfl.ch, INR 321,
tel. +41 21 693 6864
Liens utiles
|
|