Matière
Programmation avancée
Description
L’objectif de cette UE est de faire un tour d’horizon des principaux concepts des langages de programmation. Ce cours sera illustré de petits exemples écrits dans de nombreux langages différents afin d’illustrer les différents concepts.
Les concepts suivants seront présentés:
typage fort/faible, typage dynamique/statique, concept de compilation, interprétation, JIT, bytecode, VM, programmation objet orientée classe vs prototype polymorphisme ad-hoc et polymorphisme paramétrique, sous typage, héritage vs héritage multiple, traits et mixins, surcharge, gestion de la mémoire (GC, comptage de références, pointeurs intelligents), pointeurs et références, clôtures, liaison statique vs liaison dynamique, programmation par continuations, types de données algébriques, réutilisation et modèles de composants logiciels (design patterns), variance et covariance, genericité: modules/foncteurs/interfaces, meta-programmation
Compétences visées
À l’issue de ce cours l’étudiant doit être capable d’aborder un nouveau langage utilisant des concepts connus.