Difference between revisions of "Courses/CMP1"

From LRDE

(FIll in with contents from TWiki.)
Line 1: Line 1:
 
{{Course
 
{{Course
  +
|title=Construction des compilateurs 1
| code = CMP1
 
  +
|acronym=CMP1
| nomenclature = INF_305_CMP1
 
  +
|teacher=Roland
| intitule = Construction des Compilateurs [Niveau -1]
 
  +
|period=S1, S2, Ing1
| module = Génie Logiciel et Programmation
 
  +
|audience=Tronc-commun
| annee = ING1
 
  +
|exam type=Partiel, Projet
| orientation = TC
 
  +
|duration=12H
| semestre = S2
 
  +
|optional course=non
| statut = Tronc-Commun
 
  +
|module=Informatique fondamentale
| enseignant-officiel = [[User:Roland]]
 
  +
|objectives=Le compilateur est l'interface principale du programmeur vers la
| pre_requis = .
 
  +
machine. On ne peut pas être un bon programmeur sans savoir d'un côté
| objectifs = Ce cours présente les différentes analyses conduites par un compilateur ou un interpréteur. Afin d'être capable de s'en inspirer pour concevoir des systèmes d'échanges d'information structurée entre composants possiblement distants.
 
  +
comment fonctionne un ordinateur (cours d'architecture, de système,
  +
d'assembleur, etc.) et de l'autre le langage de commande (cours de
  +
d'algorithmie, de C, C++, Eiffel, etc.). Sans une bonne connaissance
  +
des compilateurs ---le pont entre le programmeur et la machine-- cette
  +
connaissance est illusoire et donne lieu à des « mythes urbains de
  +
programmeurs ». Ce cours vise à démythifier la théorie de la
  +
compilation en couvrant dans le détail le fonctionnement de
  +
l'intégralité d'un compilateur. À l'issue de cet enseignement les
  +
étudiants comprennent mieux leurs outils pour devenir de meilleurs
  +
ingénieurs du logiciel.
  +
  +
Objectifs : comprendre les différentes analyses conduites par un compilateur ou un interpréteur. Être capable de s'en inspirer pour concevoir des systèmes d'échanges d'information structurée entre composants possiblement distants.
  +
  +
|content=* Architecture des Compilateurs
  +
* Outils de développement
  +
* Analyse lexicale
  +
* Analyse syntaxique
  +
* Syntaxe abstraite
  +
* Analyse sensible au contexte
  +
* Liaison des noms
  +
* Contrôle des types
  +
  +
|references=http://www.lrde.epita.fr/~tiger/
  +
Modern Compiler Implementation par Andrew Appel
  +
  +
|slides=http://www.lrde.epita.fr/~tiger/lecture-notes/
  +
|logbook=CompilationLecture2005,
  +
CompilationLecture2006,
  +
ConstructionDesCompilateursLecture2007,
  +
CcmpLog2008,
  +
CcmpLog2009,
  +
CcmpLogIng2010 (Ing1 students), CcmpLogAppIng2010 (!AppIng1 students),
  +
CcmpTylaLogIng2011 (Ing1 students), CcmpTylaLogAppIng2011 (!AppIng1 students),
  +
CcmpTylaLogIng2012 (Ing1 students), CcmpTylaLogAppIng2012 (!AppIng1 students),
  +
CcmpLogAppIng2013 (!AppIng1 students), CcmpTylaLogIng2014 (!Ing1 students),
  +
CcmpTylaLogAppIng2014 (!AppIng1 students), CcmpTylaLogIng2015 (!Ing1 students),
  +
CcmpTylaLogAppIng2015 (!AppIng1 students)
  +
 
|code=CMP1
 
|nomenclature=INF_305_CMP1
 
|intitule=Construction des Compilateurs [Niveau -1]
 
|annee=ING1
 
|orientation=TC
 
|semestre=S2
 
|statut=Tronc-Commun
 
|enseignant-officiel=[[User:Roland]]
 
|pre_requis=.
 
|objectifs=Ce cours présente les différentes analyses conduites par un compilateur ou un interpréteur. Afin d'être capable de s'en inspirer pour concevoir des systèmes d'échanges d'information structurée entre composants possiblement distants.
 
Le compilateur est l'interface principale du programmeur vers la machine. On ne peut pas être un bon programmeur sans savoir d'un côté comment fonctionne un ordinateur (cours d'architecture, de système, d'assembleur, etc.) et de l'autre le langage de commande (cours de d'algorithmie, de C, C++, Eiffel, etc.). Sans une bonne connaissance des compilateurs [le pont entre le programmeur et la machine] cette connaissance est illusoire et donne lieu à des "mythes urbains de programmeurs". Ce cours vise à démystifier la théorie de la compilation en couvrant dans le détail le fonctionnement de l'intégralité d'un compilateur. À l'issue de cet enseignement les étudiants comprennent mieux leurs outils pour devenir de meilleurs ingénieurs du logiciel
 
Le compilateur est l'interface principale du programmeur vers la machine. On ne peut pas être un bon programmeur sans savoir d'un côté comment fonctionne un ordinateur (cours d'architecture, de système, d'assembleur, etc.) et de l'autre le langage de commande (cours de d'algorithmie, de C, C++, Eiffel, etc.). Sans une bonne connaissance des compilateurs [le pont entre le programmeur et la machine] cette connaissance est illusoire et donne lieu à des "mythes urbains de programmeurs". Ce cours vise à démystifier la théorie de la compilation en couvrant dans le détail le fonctionnement de l'intégralité d'un compilateur. À l'issue de cet enseignement les étudiants comprennent mieux leurs outils pour devenir de meilleurs ingénieurs du logiciel
| contenu = Première Partie : Partie Frontale
+
|contenu=Première Partie : Partie Frontale
 
A] Architecture des Compilateurs
 
A] Architecture des Compilateurs
 
B] Outils de développement
 
B] Outils de développement
Line 21: Line 69:
 
G] Liaison des noms
 
G] Liaison des noms
 
H] Contrôle des types
 
H] Contrôle des types
| bibliographie = http://epita.lrde.epita.fr/CCMP-Course
+
|bibliographie=http://epita.lrde.epita.fr/CCMP-Course
 
http://www.lrde.epita.fr/~akim/ccmp
 
http://www.lrde.epita.fr/~akim/ccmp
 
Modern Compiler Implementation par Andrew Appel
 
Modern Compiler Implementation par Andrew Appel
 
http://tiger.lrde.epita.fr/
 
http://tiger.lrde.epita.fr/
 
|date-fiche=sept.-07
| period = February-July
 
 
|competences={CG.01} {CG.02} {CG.03}
| date-fiche = sept.-07
 
| competences = {CG.01} {CG.02} {CG.03}
 
 
}}
 
}}

Revision as of 14:29, 17 February 2014

Titre

Construction des compilateurs 1

Sigle

CMP1

Enseignant

Roland Levillain

Période

S1, S2, Ing1

Public

Tronc-commun

Contrôle

Partiel, Projet

Durée

12H"H" is not declared as a valid unit of measurement for this property.

Optionnel

non

Module

Informatique fondamentale

Prérequis
Objectifs

Le compilateur est l'interface principale du programmeur vers la machine. On ne peut pas être un bon programmeur sans savoir d'un côté comment fonctionne un ordinateur (cours d'architecture, de système, d'assembleur, etc.) et de l'autre le langage de commande (cours de d'algorithmie, de C, C++, Eiffel, etc.). Sans une bonne connaissance des compilateurs ---le pont entre le programmeur et la machine-- cette connaissance est illusoire et donne lieu à des « mythes urbains de programmeurs ». Ce cours vise à démythifier la théorie de la compilation en couvrant dans le détail le fonctionnement de l'intégralité d'un compilateur. À l'issue de cet enseignement les étudiants comprennent mieux leurs outils pour devenir de meilleurs ingénieurs du logiciel.

Objectifs : comprendre les différentes analyses conduites par un compilateur ou un interpréteur. Être capable de s'en inspirer pour concevoir des systèmes d'échanges d'information structurée entre composants possiblement distants.

Plan
  • Architecture des Compilateurs
  • Outils de développement
  • Analyse lexicale
  • Analyse syntaxique
  • Syntaxe abstraite
  • Analyse sensible au contexte
  • Liaison des noms
  • Contrôle des types
Documentation
Support
Journaux