Paradigmes de programmation

Parcours IL / Orientation IL

Ce cours présente différents paradigmes et langages de programmation permettant la réalisation d’applications concurrentes sûres et performantes. Les langages étudiés offrent des primitives permettant une prise en charge native du multithreading et de la concurrence, ainsi que des primitives de communication (canaux) pour permettre l’échange de données entre les threads en toute sécurité. Nous nous intéressons également aux mécanismes de gestion de la mémoire qui garantissent une bonne efficacité tout en assurant des propriétés telles que l’absence d’accès concurrents invalides, de dépassements de tampon et de déréférencement de pointeurs nuls.

Le cours présente ces différents concepts ainsi que les bonnes pratiques de développement dans les langages correspondants. Le cours comprendra des exercices pratiques et des projets pour permettre aux étudiants de développer leurs compétences en programmation dans ces langages.

Prérequis

  • Bonnes connaissances des langages de programmation.

Acquis d’apprentissage

  • Comprendre et utiliser les concepts de concurrence et de parallélisme dans des langages proposant des primitives natives correspondantes.
  • Maitriser les types de données et la gestion mémoire pour ce type de langages.
  • Savoir utiliser les routines et les canaux pour la programmation concurrente.

Compétences visées

  • Concevoir et développer des systèmes logiciels sûrs et sécurisés.
  • Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données.

Parcours IL / Orientation IL