L'unité d'enseignement « Programmation impérative et concurrente » est
une UE de niveau (300) spécialisation relevant de la licence d'informatique.
Elle possède un volume de 6 ECTS et
s'étend sur 12 semaines. Elle est placée sous la responsabilité de Kordon, fabrice.
Description
L'objectif de cette UE est de présenter les bases de la programmation concurrente dans un environnement unifié (Ada95) permettant d'abstraire les problèmes d'interfaçage avec le système et donc de se focaliser sur les principaux mécanismes de la programmation concurrente.
Cette UE se voit clairement comme une suite d'une "première" UE traitant de la programmation impérative.
Après un rappel très rapide des concepts de bases de la programmation (censés être acquis dans une UE comme LI215) seront abordés:
-
les mécanismes de structuration avancée (paquetages, visibilité de types ou de sous-programmes ...)
-
les structures de données polymorphes ou mutables
-
une approche simple de la notion de thread dans un environnement "intégré" (sur la base des tâches Ada)
-
une introduction aux concepts de bases de la programmation concurrente (sémaphore, exclusion mutuelle, modèle producteur/consommateur ...).
Cette UE utilisera principalement Ada comme langage support.
Préalables et buts pédagogiques
Bibliographie
L. Zaffalon & P. Breguet, "Programmation Concurrente et temps-réel avec Ada95", Presses polytechniques et universitaires romandes
J. Barnes, "Programmer en Ada95", 2ème édition (Vuibert)
Contenu indicatif par semaine
Maîtrise d'Ada, structure d'un programme, types simples et structures de données
Maîtrise d'Ada, les sous-programmes, les types composés et à discriminants
Maîtrise d'Ada, paquetages, visibilité des types et encapsulation, surcharge d'opérateurs
Maîtrise d'Ada, pointeurs et gestion dynamique de la mémoire
Maîtrise d'Ada, types de données récursifs
Maîtrise d'Ada, exceptions et utilisation des exceptions
Tâche en Ada, notion d'entrée et de rendez-vous
Notion d'exclusion mutuelle et de section critique
Synchronisation avec les types protégés en Ada, modèle client-serveur simple
Instruction select, notions de gardes
Création dynamique de tâches et d'objets protégés
Bilan