Informations générales
Volumes horaires
- CM -
- Projet 55.0
- TD -
- Stage -
- TP -
- DS -
Crédits ECTSCrédits ECTS
4.0
Objectif(s)
L'objectif pédagogique de ce projet est d'illustrer certains aspects du génie logiciel à travers le développement, en Java, d'une application de taille conséquente, à savoir un compilateur pour un langage orienté objet.
Les aspects visés sont principalement le respect d'un cahier des charges, la conception logicielle, les techniques de validation et la mise en place d'une démarche qualité.
Le thème choisi permet à la fois de remplir les objectifs ci-dessus en partant d'un cahier des charges bien formalisé, et de mieux comprendre les concepts sous-jacents aux langages de programmation.
Outre les aspects génie logiciel, ce projet permet d'aborder la gestion de projet et d'équipe.
Responsable(s)
Raquel ARAUJO DE OLIVEIRA, Catherine ORIAT
Contenu(s)
Le projet débute par une semaine intensive destinées à l’étude du cahier des charges (définition du langage, sémantique statique et dynamique, machine cible), à la présentation des aspects techniques, ainsi que de la documentation
et démarche attendues. Des séances de suivi ont ensuite lieu sur différents thèmes : architecture logicielle choisie, techniques et objectifs de test, réception de code. Ces séances permettent d'aider les étudiants à la fois sur les aspects techniques et sur les aspects planification et organisation.
Une partie "extension" permet aux étudiants d'approfondir un thème de leur choix (par exemple réalisation d'une bibliothèque de fonctions trigonométrique, génération de bytecode Java ou de code ARM, extension du langage considéré...).
PrérequisThéorie des langages (par exemple 3MMTL), programmation Objet (par exemple 4MMPOO), connaissance d'un langage d'assemblage, pratique de la programmation.
Contrôle des connaissances
Evaluation : Projet (évaluation en continu et sur le rendu) + soutenance
Calendrier
Le cours est programmé dans ces filières :
- Cursus ingénieur - Tronc Commun - Semestre 7
Informations complémentaires
Code de l'enseignement : 4MMPGL
Langue(s) d'enseignement : 
Le cours est rattaché aux structures d'enseignement suivantes :
- Equipe Programmation-logiciel
Vous pouvez retrouver ce cours dans la liste de tous les cours.
Bibliographie
Compilers: Principles, Techniques and Tools de Aho, Lam, Sethi & Ullman (1988/2007)
The Definitive ANTLR 4 Reference - Terence Parr (2013)