CentraleSupélec LMF, UMR CNRS 9021
Département informatique Laboratoire Méthodes Formelles
Bât Breguet, 3 rue Joliot-Curie Bât 650 Ada Lovelace, Université Paris Sud
91190 Gif-sur-Yvette, France Rue Noetzlin, 91190 Gif-sur-Yvette, France
Old teaching stuff

Première année CentraleSupélec 1ère année CS

SIP SIP

Algo Algo

TD 1

  • Question 2 : vérification de la profondeur des sommets reliés par une arête.

TD 2 (Plus courts chemins et arbres recouvrants minimaux)

TD 4 (listes et dictionnaires)

  • Recherche dichotomique

  • Liste chaînée, implémentation avec des dictionnaires

  • Liste chaînée, implémentation objet

TD 5 (programmation dynamique)

  • Allocation de skis

  • Placements financiers

TD 8 (bin packing)

Troisième année Supélec 3ème année

Image Linux Ubuntu 18-04 LTS pour VirtualBox avec tous les logiciels des cours de modélisation et de sémantique :

Cette image contient entre autres :

Le compte administrateur est ubuntu avec pour mot de passe ModSys3ASI

Modélisation des systèmes Modélisation

7 cours, 1 bureau d'étude (+6 cours et 1 bureau d'étude par Lina Ye)

Objectif

Ce module présente les techniques de modélisation des systèmes qui permettent de concevoir un système informatique, de simuler son fonctionnement ainsi que l’environnement dans lequel il devra fonctionner, et de générer son code pour une plateforme. L’accent est mis sur la disponibilité de différents modèles adaptés aux différentes parties d’un système et sur la possibilité d’utiliser conjointement ces modèles.

Programme

  • Modélisation, abstraction
    Modèles et interprétation des modèles. Modèles exécutables, calculables, prédictifs, explicatifs. Modèles classiques: temps continu, temps discret périodique, flots de données synchrones, événements discrets, automates hiérarchiques, systèmes réactifs synchrones.
  • Modélisation et validation
    Ordonnancement, Allocation de ressources (CPU, mémoire). Vérifications formelles: propriétés mathématiques des modèles, preuves, model-checking, application à la sûreté de fonctionnement.
  • Ingénierie dirigée par les modèles
    Relations entre systèmes, modèles et métamodèles
    Définition d'un langage de modélisation (DSL), transformations de modèles
  • Hétérogénéité et interactions entre modèles
    Hiérarchies de modèles. Problèmes aux limites entre modèles: continu/discret, flots de données/événements. Systèmes modaux.
  • Application à la modélisation d’un système
    Approche réactive synchrone pour le contrôle + preuve formelle, approche à flots de données pour les traitements, temps continu pour la modélisation de l’environnement du système.

Transparents du cours

Les transparents :

Une version ancienne du polycopié du cours est également disponible.

Logiciels

Vous pouvez travailler sur votre ordinateur pour le cours sur machine et le bureau d'étude. Il suffit pour cela d'installer (configuration validée en octobre 2019) :

  • Eclipse IDE 2019-09 https://www.eclipse.org/downloads/ (2019-06 sous Windows)
  • Choisissez "Eclipse Modeling Tools" dans l'installer
  • Lors du choix du dossier contenant le workspace, évitez les espaces et les caractères accentués dans les noms de dossier, notamment sous Windows
  • Après l'installation, lancez Eclipse et ouvrez le market place (menu "Help > Eclipse Marketplace"), sélectionnez le market place Obeo puis installez Acceleo 3.7
  • Redémarrez Eclipse et choisissez "Help > Install new software", puis "Work with: --All Available Sites--" dans le dialogue qui s'ouvre. Sélectionnez :
    • Modeling > QVT Operational SDK
    • Modeling > QVT Operational SDK Developer Resources
    • Modeling > Xtext Complete SDK
    • Modeling > Sirius Integration with Xtext
  • Si vous souhaitez développer en C++ sous Eclipse, sélectionnez également :
    • Programming Languages > C/C++ Development tools
    • Programming Languages > C/C++ Library API Documentation Hover Help
    • Programming Languages > C/C++ xyz Support (xyz étant votre plateforme : LLVM pour MacOS, Visual C++ for Windows)
  • Après l'installation, redémarrez Eclipse. Vous êtes prêt.

Cours sur machine

métamodèles, modèles et transformations de modèle.

Bureau d'étude

Le sujet du bureau d'étude (création d'un DSL)

Exemples de modèles de systèmes

Quelques exemples de modèles de systèmes réalisés avec Ptolemy II :

Modulation

Un exemple simple de modèle SDF : une sinusoïde (la porteuse) est modulée par une autre. Le résultat est affiché dans le domaine temporel et dans le domaine fréquentiel.

Cours d'une action

Ce modèle mixte modélise un cours d'action en bourse, en calcule une moyenne à long terme et une moyenne à cours terme, et utilise un automate pour donner une indication d'achat ou de vente selon l'évolution de ces moyennes.

Sémantique des langages Sémantique

5 cours, 1 bureau d'étude (part de l'évaluation avec les BE de vérification)

Bureau d'étude preuve de programmes avec Krakatoa/Why

Bureau d'étude automates en Isabelle

Livraison de votre travail avec le code ZZPG.

Bureau d'étude sur la sémantique de Niklaus en Isabelle
(Ancienne version du bureau d'étude avec Krakatoa/Why)

Objectif

Ce module présente différentes techniques permettant de définir la sémantique d'un langage de programmation.

Programme

  • Syntaxe concrète, syntaxe abstraite
  • Syntaxe abstraite et sémantique
  • Sémantique traductionnelle
  • Sémantique opérationnelle (petits et grands pas)
  • Sémantique dénotationnelle
  • Sémantique axiomatique
  • Sémantique des définitions récursives
  • Application au langage Niklaus

À partir de 2015, les définitions sémantiques sont faites en Isabelle/HOL.

Ressources :

  • Tutoriel : définition d'un type liste et preuve de théorèmes
  • Niklaus : transparents du cours et théories Isabelle pour la définition des différents styles de sémantique du langage Niklaus vu en cours de traitement des langages.

Obsolète depuis septembre 2018

Première année du cursus ingénieur Supélec 1ère année

Architecture des ordinateurs ARCHI

7 cours, 3 séances de travaux dirigés, 2 séances d'études de laboratoire

Voir le site du cours pour plus de détails.

Génie logiciel

Premier TD, nombre secret

Premier BE (TDs 2 et 3)

Version avec la représentation qui utilise une TreeMap de monômes :

Deuxième BE (TDs 4 et 5)

Les résultats présentés ici ont été obtenus avec le modeleur UML Papyrus. Certaines déclarations ont été éditées à la main dans le code Java car la génération de code avec Papyrus n'est pas aussi paramétrable qu'avec RSA.

TD6 (OCL)