Traduction de programmes Lustre V6 en Scade
|
|
- Marie-Paule Lamothe
- il y a 8 ans
- Total affichages :
Transcription
1 Université Joseph Fourier Département Licence Sciences & Technologie RAPPORT DE STAGE Traduction de programmes Lustre V6 en Scade Mamadou NDIAYE Juillet 2015 Laboratoire d accueil : Verimag Directeur du laboratoire : Nicolas HALBWACHS Responsable du stage : Erwan JAHIER Licence Sciences et Technologies 2 ème année - Mathématiques et Informatique Année Universitaire : /10
2 Remerciements Je remercie tout d abord l administration de l université Joseph Fourier de m avoir donné l opportunité de faire ce stage et plus particulièrement madame Patricia CAJOT qui n a ménagé aucun effort pour nous aider à faire toutes les démarches nécessaires. Je remercie aussi le Directeur ainsi que tout le personnel du laboratoire Verimag qui nous ont mis dans de bonnes conditions pour effectuer ce stage particulièrement à mon tuteur Erwan JAHIER qui était à mes cotés tout au long du stage en cas de besoin pour m aider à avancer, sans oublier Fabienne CARRIER mais aussi Catherine PARENT- VIGOUROUX qui m a aidé à obtenir ce stage. 2/10
3 Table des matières 1 Introduction 4 2 Présentation du laboratoire 4 3 Le langage Lustre V6 4 4 Le langage Scade 5 5 Les outils de compilation utilisés lus2lic x2s s2c Traduction Lustre/Scade Méthode utilisée Transformations Tests 8 8 Conclusion 9 3/10
4 1 Introduction Le dispositif stage d excellence de l université Joseph Fourier m a permis d obtenir mon premier stage dans un laboratoire de recherche. Ce stage d une durée d un mois et demi (du 26 Mai 2015 au 10 Juillet 2015) portant sur le thème Traduction de programmes Lustre V6 en Scade était une première expérience pour moi dans le monde professionnel. Le langage Scade utilisé dans beaucoup de domaine de l industrie comme l avionique, l espace et l automobile montre que les découvertes informatique deviennent plus intéressantes quand on l applique dans les secteurs industriels. C est pourquoi je trouve que ce thème qui m a été proposé était non seulement une occasion pour moi d apprendre de nouveaux concepts et un nouveau langage mais aussi un thème qui pourrait servir dans d autres projets. 2 Présentation du laboratoire VERIMAG est un laboratoire de recherche dans le domaine Systèmes embarqués, conception de langages, compilation, calcul du temps d exécution pire cas, analyse statique de programmes. Les travaux de VERIMAG visent à produire des outils théoriques et techniques pour permettre le développement de systèmes embarqués de qualité maitrisée. VERIMAG joue un rôle important dans l enseignement à l Université Joseph Fourier et à Grenoble-INP et dans la formation de doctorants. 3 Le langage Lustre V6 Lustre est un langage de programmation synchrone, déclaratif, et de données flots. Il possède une définition formelle, et est utilisé pour la programmation des systèmes réactifs. En lustre, chaque variable est considérée comme une séquence infinie de valeurs de même type ; chaque séquence d entrées produit une nouvelle séquence de sorties. C est une séquence de réactions d entrées et de sorties. Contrairement à beaucoup de langages de programmation, un programme LUSTRE consiste en un ensemble d équations définissant les relations entre entrées et sorties. Un programme lustre fonctionne selon le modèle du parallélisme car il exécute plusieurs automatismes en même temps, il est déterministe et s exécute en temps réel. L extension d un fichier lustre est.lus. Exemple de noeud en Lustre V6 : node ex_node(x: bool) returns (y: bool); let y = true -> pre x; tel 4/10
5 Ce programme prend en entrée un booléen x (= x1 x2... xn) et renvoie un booléen y (= y1 y2... yn). Y est vrai au premier instant ; aux instants suivants, il vaut la valeur de l entrée X à l instant d avant. 4 Le langage Scade Scade(Safety Critical Application Development Environment), la version industrielle de Lustre est basée sur les mêmes principes que ce dernier avec cependant quelques différences syntaxiques. Le langage Scade propose une version graphique des concepts Lustre. Avec le logiciel Scade Suite on peut voir à quoi ressemble graphiquement un programme Scade. Voici un exemple pour le calcul de la moyenne. Version textuelle : node Average(X:int;Y:int) returns (A:int) var _v_1:int; let A = _v_1 / 2; _v_1 = X + Y; tel Version graphique : On voit dans cette version graphique les opérations + et / qui sont utilisés dans les deux équations du programme. Il fait d abord la somme entre les entrées puis divise le résultat par 2 pour ensuite renvoyer la sortie A qui est la moyenne entre X et Y(ce qui correspond exactement à ce que fait le programme au dessus). 5/10
6 5 Les outils de compilation utilisés 5.1 lus2lic lus2lic est un compilateur de programme lustre V6. C est dans lus2lic où se trouve plusieurs options permettant de générer des fichiers à partir de Lustre V6. On l utilise de la manière suivante :lus2lic option nom-fich.lus -n nom-node Quelques options utilisées avec lus2lic kcg : il permet de générer du code lustre qui est compatible avec le lustre de Scade. Pour voir le fichier généré avec l option kcg, on tape la ligne de commande suivante : lus2lic -kcg nom-fich.lus -n nom-node. lv4 : permet de générer du Lustre V4 (autre version de Lustre) à partir de Lustre V6. 2c : permet de générer du code C. exec : permet d interpréter le programme en utilisant les conventions RIF pour I/O. 5.2 x2s Cette commande prend un fichier.xscade qui contient un programme Scade graphique et le transforme en un fichier.lus en syntaxe textuelle. Cette syntaxe proche de celle de Lustre V6. Exemple d utilisation : x2s Pilot.xscade > Pilot-scade.lus 5.3 s2c Il permet de générer du code C à partir d un programme Lustre produit par le compilateur x2s. On l utilise de la manière suivante : s2c nom-fich.lus -node nom-noeud. Avec le fichier produit par x2s dans l exemple précédent on peut générer du C : s2c Pilot-scade.lus -node Pilot 6 Traduction Lustre/Scade L objectif est de réaliser un traducteur de Lustre V6 vers la version textuelle de Scade et de comparer le code C produit par les compilateurs lus2lic et s2c. Il existe déjà un traducteur de Lustre V6 vers Lustre V4 ; il suffit donc de le compléter en tenant compte des spécificités de la version textuelle de Scade(Scade-text). La traduction de Lustre V6 vers Lustre V4 se fait avec l option -lv4 et dans ce stage, nous avons l option -kcg pour passer de Lustre v6 vers Scade-text. Pour cela, nous allons modifier le générateur de code Lustre V4(lus2lic -lv4). Pour chaque différence syntaxique entre lustre V4 et Scade-text nous utiliserons le schéma suivant. Schéma général de modification : if global_opt.kcg then {modfications:syntaxe scade} else {laisser pareil} 6/10
7 6.1 Méthode utilisée J avais à ma disposition deux manuels celui de Lustre V6 et celui de Scade. Cela m a permis de travailler parallèlement sur les deux langages afin d identifier les principales différences et les particularités entre Lustre V6 et la version textuelle de Scade. Je suis aussi amener à utiliser plusieurs fois la commande x2s pour voir à quoi ressemblait textuellement un programme Scade. 6.2 Transformations Lustre V6 et la version textuelle de Scade ont des différences syntaxiques sur plusieurs points. Voici une liste de transformations que j ai pu effectué lors de ce stage : Type Struct : La définition est pareille en Lustre V6 qu en Scade sauf qu il n y pas le mot struct dans la déclaration en Scade. Types et fonctions externes : Pour déclarer un type externe t en Lustre V6 on utilise la syntaxe suivante : type t ; par contre en Scade on écrit : type imported t ;. Pour les fonctions externes, la syntaxe est la suivante : Lustre : extern function (entrées) returns (sorties) ; Scade : function imported (entrées) returns (sorties) ; Déclaration de constantes : pour les constantes, il faut préciser le type en Scade. Par exemple pour déclarer une constante CST on écrit const CST :int =1 alors qu en Lustre V6 on écrit juste const CST=1. fby :C est un opérateur qui permet d initialiser une variable. Il peut se voir comme la combinaison du -> et du pre mais il est plus général car il prend une expression alors que le pre prend une valeur. Sa syntaxe en Scade est la suivante : fby(b,n,a) avec b et a deux séquences de valeurs et n le nombre d initialisation. En Lustre V6, il se note a fby b qui est équivalent à fby(b,1,a) en Scade. Les moins triviales Current C était le cas du current qui existait déjà en Lustre V6 et qu il fallait transformer en merge en Scade selon le modèle suivant car ce dernier ne reconnaissait pas le mot clé current : Lustre V6 : Y when C X = currrent Y Scade : X = merge C (true -> Y) (false -> pre X ) Assert Il y avait aussi le problème du assert dont la définition était plus précise en Scade qu en Lustre V6. Il était défini soit par le mot assume soit par guarantee en Scade, donc il fallait choisir la définition qui était compatible avec le assert de Lustre V6. Ces deux mots clés ont été défini en Scade comme suit :.Assume : Correspond aux attentes sur le programme de Scade. Il peut impliquer des entrées courant et des sorties passées. 7/10
8 syntaxe :assume ID : expr.guarantee : Assure les propriétés du programme. Les sorties courant peuvent être utilisé dans ce cas. syntaxe :guarantee ID : expr D après ces deux définitions on voit que le assert de Lustre V6 correspond à assume en Scade. NB : Dans le cas des fichiers qui comportaient plusieurs asserts, il fallait utiliser un fichier nommé FreshName pour donner des noms différents aux différentes asserts (c est à dire changer le nom des identificateurs pour chaque assume ). Gestion des mots clefs Scade Le fait d avoir des noms de fonctions en Lustre V6 qui correspondait à des mots clefs de Scade provoquait des erreurs lors de la compilation. C était le cas des mots comme state, initial ou clock. Donc il fallait prendre en compte ces cas là. Pour résoudre ce problème, on a mis une liste de mots clefs Scade et d afficher un message d erreur à chaque fois que le compilateur rencontre un de ces mots comme nom de fonction lors de la traduction. map et boolred Pour le boolred (prédéfini en Lustre V6), il fallait l expanser sous forme d équations en Scade car ce dernier ne le connaissait pas. Pour le map, il fallait changer de syntaxe car elle n est pas la même entre les deux langages. En Lustre V6, la syntaxe est la suivante : (Y1,...,Yk ) = map«n ; n»(x1,...,xn) alors qu en Scade elle est : Y1,...,Yk = (map N «n»)(x1,...,xn) 7 Tests J avais à ma disposition un script afin de tester les modifications que j ai fait sur un ensemble de fichiers Lustre. Ce script vérifie d abord si la transformation avec kcg s est bien passé, puis si c est le cas, il vérifie si on peut générer du C avec le fichier obtenue à l aide de s2c. Bilan Finalement, sur un ensemble de 475 fichiers testés, il y a 103 qui ne passent pas avec la majorité d entre eux des erreurs au niveau du current (que je n ai pas eu le temps de traité) mais aussi au niveau des iterator (exemple : map, red...) qui demandent un peu plus de temps pour pouvoir les effectuer. Il y a aussi des notions de Lustre V6 que j arrive pas à traduire en Scade comme l opération d implication ( => ) qui n existe pas en Scade mais aussi le problème des appels récursifs. 8/10
9 8 Conclusion Résumé des différentes étapes du stage : Au début je me suis familiariser avec le langage Lustre en écrivant de petits programmes Lustre et utiliser certains outils de simulation et de vérification. Ensuite j ai commencé à regarder le thème du stage en essayant de comprendre les principaux points de Scade afin d identifier les premières différences. Enfin j ai commencé à faire les modifications pour générer du code Lustre compatible avec la version textuelle de Scade. Ce stage m a permis d avoir beaucoup plus d autonomie dans le travail mais aussi de pouvoir travailler à distance avec d autres personnes. Enfin je vois que ces stages d excellence proposé par l université Joseph Fourier constituent une véritable opportunité pour les étudiants de découvrir le monde de la recherche. 9/10
10 [1] [2] Références [1] N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous dataflow programming language Lustre. Proceedings of the IEEE, 79(9) : , [2] E. Jahier and P. Raymond. The scade language reference manual. 8 10/10
Certification de l assemblage de composants dans le développement de logiciels critiques
Certification de l assemblage de composants dans le développement de logiciels critiques Philippe Baufreton 1, Emmanuel Chailloux 2, Jean-Louis Dufour 1, Grégoire Henry 3, Pascal Manoury 3, Etienne Millon
Plus en détailCours de Programmation 2
Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailOCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailIntroduction à MATLAB R
Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d
Plus en détailExpression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e
P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement
Plus en détailSTAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
Plus en détailVérification formelle de la plate-forme Java Card
Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailCours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Plus en détailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailIntroduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr
Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université
Plus en détailUtilisation d objets : String et ArrayList
Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons
Plus en détailLe langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie
Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailLicence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Plus en détailPremiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
Plus en détailCours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan
Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre
Plus en détailSTS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module
François SCHNEIDER Lycée Victor-Hugo BESANÇON. STS SE FreeRTOS Programmation réseau WIFI Programmation réseau Socket Tcp FlyPort smart Wi-Fi 802.11 module Prérequis : langage C, connaissance réseau : Ip,
Plus en détailTélécom Nancy Année 2013-2014
Télécom Nancy Année 2013-2014 Rapport 1A Ajout du langage C dans la Programmer's Learning Machine GIANNINI Valentin Loria 615, rue du Jardin Botanique 54600, Villers-Lès-Nancy Maître de stage : QUINSON
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailRappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Plus en détailSHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5
SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N
Plus en détailMachines virtuelles fonctionnelles (suite) Compilation ML Java
Machines virtuelles fonctionnelles (suite) Compilation ML Java Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2011/2012 Semaine 3 Machines virtuelles fonctionnelles
Plus en détailIntroduction à la programmation concurrente
Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailNotions fondamentales du langage C# Version 1.0
Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage
Plus en détailQualité du logiciel: Méthodes de test
Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution
Plus en détailGnuplot. Chapitre 3. 3.1 Lancer Gnuplot. 3.2 Options des graphes
Chapitre 3 Gnuplot Le langage C ne permet pas directement de dessiner des courbes et de tracer des plots. Il faut pour cela stocker résultats dans des fichier, et, dans un deuxième temps utiliser un autre
Plus en détailGestion mémoire et Représentation intermédiaire
Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,
Plus en détailExclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011
Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique
Plus en détailServeur d'application Client HTML/JS. Apache Thrift Bootcamp
Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/
Plus en détailPrésentation du langage et premières fonctions
1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en
Plus en détailProgrammation C++ (débutant)/instructions for, while et do...while
Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de
Plus en détailProgrammation en Java IUT GEII (MC-II1) 1
Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)
Plus en détailTP JAVASCRIPT OMI4 TP5 SRC1 2011-2012
TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 FORMULAIRE DE CONTACT POUR PORTFOLIO PRINCIPE GENERAL Nous souhaitons réaliser un formulaire de contact comprenant les champs suivants : NOM PRENOM ADRESSE MAIL MESSAGE
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailCours Programmation Système
Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février
Plus en détail.NET - Classe de Log
.NET - Classe de Log Classe permettant de Logger des données Text Dans tous les projets, il est indispensable de pouvoir stocker de l'information textuelle : Pour le suivi des erreurs Pour le suivi de
Plus en détailGarth LARCEN, Directeur du Positive Vibe Cafe à Richmond (Etats Unis Virginie)
Garth LARCEN, Directeur du Positive Vibe Cafe à Richmond (Etats Unis Virginie) Commentaire du film d introduction de l intervention de Garth Larcen et son fils Max, entrepreneur aux U.S.A. Garth Larcen
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailGrandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test
Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite
Plus en détailTP 1. Prise en main du langage Python
TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer
Plus en détailSuivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)
Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être
Plus en détailUFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE 2014-2018
UFR d Informatique FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE 2014-2018 Objectif L UFR d informatique propose au niveau du master, deux spécialités sous la mention informatique
Plus en détailDG-ADAJ: Une plateforme Desktop Grid
DG-ADAJ: Une plateforme pour Desktop Grid Olejnik Richard, Bernard Toursel Université des Sciences et Technologies de Lille Laboratoire d Informatique Fondamentale de Lille (LIFL UMR CNRS 8022) Bât M3
Plus en détailET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.
ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de
Plus en détailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détailEditer un script de configuration automatique du proxy
Editer un script de configuration automatique du proxy INTRODUCTION... 2 AVANTAGE D UN SCRIPT DE CONFIGURATION... 2 SYNTAXE DU SCRIPT DE CONFIGURATION AUTOMATIQUE... 2 MISE A DISPOSITION DU SCRIPT... 4
Plus en détailPaginer les données côté serveur, mettre en cache côté client
Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule
Plus en détailOpenText StreamServe Cours 4-3710 Customer Communication Management L essentiel
OpenText StreamServe Cours 4-3710 L essentiel Durée : 4 jours Apprendre à utiliser OpenText CCM () pour contrôler vos communications d entreprises. Par une combinaison de théorie et de pratique, le formateur
Plus en détailCOMPARAISONDESLANGAGESC, C++, JAVA ET
REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY
Plus en détailAWS avancé. Surveiller votre utilisation d EC2
10 AWS avancé Dans ce chapitre, nous bâtirons sur les bases que nous avons apprises jusqu ici. Nous étudierons des sujets plus avancés tels que la surveillance de votre utilisation d AWS, l utilisation
Plus en détailI. Introduction aux fonctions : les fonctions standards
Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons
Plus en détailLMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
Plus en détailSélection du contrôleur
Démo CoDeSys - 1 - 1. Configuration de l environnement de travail : Lancer le logiciel CoDeSys Fichier Nouveau Lors de la première utilisation, une boîte de dialogue apparaît permettant la sélection du
Plus en détailThéorie de la Programmation
Théorie de la Programmation http://perso.ens-lyon.fr/daniel.hirschkoff/thpr hop Programmation, Théorie de la programmation Langages de programmation I il existe de nombreux langages de programmation I
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailIngénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau
labsticc.univ-brest.fr/pages_perso/babau/ Ingénierie Dirigée par les Modèles Editeurs de modèles (Eclipse Modeling Tools) Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC
Plus en détailTraduction des Langages : Le Compilateur Micro Java
BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant
Plus en détaillength : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2
1 Univ. Lille1 - Licence info 3ème année 2013-2014 Expression Logique et Fonctionnelle... Évidemment Cours n o 1 : Introduction à la programmation fonctionnelle 1 Introduction La programmation fonctionnelle
Plus en détailUn ordonnanceur stupide
Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire
Plus en détailManuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2
éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........
Plus en détailMINI-MÉMOIRE DE PPP - S4
MINI-MÉMOIRE DE PPP - S4 Par [OUAZAR ARIS-ARAB] [S4-G2] [AYME OLIVIA] TABLE DES MATIÈRES ANALYSE DE L ENTREPRISE # PRESENTATION DE L ENTREPRISE # LISTE ET DESCRIPTION DES DIFFERENTS METIERS REPRESENTES
Plus en détailEnvironnements de développement (intégrés)
Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure
Plus en détailProgrammation Web. Madalina Croitoru IUT Montpellier
Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance
Plus en détailDossier projet isn 2015 par Victor Gregoire
Dossier projet isn 2015 par Victor Gregoire Plan: I) But du projet: créer un jeu de blackjack fonctionnel et le poster sur une page web mise en ligne. Le jeu sera developpé en C++ a l'aide de code blocks.
Plus en détailAnalyse de sécurité de logiciels système par typage statique
Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction
Plus en détailModèles système, modèles logiciel et modèles de code dans les applications spatiales
GÉNIE LOGICIEL N o 97 JUIN 2011 Modèles système, modèles logiciel et modèles de code dans les applications spatiales É RIC C ONQUET, FRANÇOIS-XAVIER D ORMOY, IULIA D RAGOMIR, A LAIN L E G UENNEC, DAVID
Plus en détailNote de synthèse. Développement web sur le CMS Prestashop. Stage du 17 mai au 25 juin 2010. Entreprise decoratzia.com 15 rue Erlanger 75016 - Paris
BENCHETRIT Michaël BTS IG 2 ème année Brevet de Technicien Supérieur Informatique de Gestion Option : Développeur d applications Session 2011 Note de synthèse Développement web sur le CMS Prestashop Stage
Plus en détail30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C++ 1. 16.mars.10 Cours 4 11.mai.10 Cours C++ 2
2ème partie de cours: 23.fév.10 Cours 1 20.avr.10 TEST 24.fév.10 TP1 21.avr.10 miniprojet 26.fév.10 TP réserve 23.avr.10 miniprojet 2.mars.10 Cours 2 27.avr.10 Présentation miniprojet 3.mars.10 TP2 28.avr.10
Plus en détailCRÉER UN COURS EN LIGNE
Anne DELABY CRÉER UN COURS EN LIGNE Deuxième édition, 2006, 2008 ISBN : 978-2-212-54153-3 2 Que recouvre le concept d interactivité? Dans une perspective de cours en ligne, une activité interactive est
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailRÉALISATION D UN SITE DE RENCONTRE
RÉALISATION D UN SITE DE RENCONTRE Par Mathieu COUPE, Charlène DOUDOU et Stéphanie RANDRIANARIMANA Sous la coordination des professeurs d ISN du lycée Aristide Briand : Jérôme CANTALOUBE, Laurent BERNARD
Plus en détailCette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :
Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens
Plus en détailLes Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.
Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger
Plus en détailProgrammation en Caml pour Débutants
Programmation en Caml pour Débutants Arthur Charguéraud 6 Ju 2005 Ceci est une version léaire imprimable du cours, mais il est fortement conseillé d utiliser la version teractive, sur laquelle la plupart
Plus en détailRecherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Plus en détailLambda! Rémi Forax Univ Paris-Est Marne-la-Vallée
Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant
Plus en détailPrincipes des langages de programmation INF 321. Eric Goubault
Principes des langages de programmation INF 321 Eric Goubault 24 mars 2014 2 Table des matières 1 Introduction 7 2 Programmation impérative 11 2.1 Variables et types........................... 11 2.2 Codage
Plus en détailProgramme Compte bancaire (code)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailLe langage C. Séance n 4
Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de
Plus en détailKL5121. Pour activer des sorties en fonction de la position d'un codeur
KL5121 Pour activer des sorties en fonction de la position d'un codeur VERSION : 1.0 / PH DATE : 07 Février 2006 Sommaire Ce manuel explique de manière pratique les étapes successives pour mettre en œuvre
Plus en détailCentre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Plus en détailJava DataBaseConnectivity
Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage
Plus en détailConditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.
Proposition de stage de BAC+4 ou BAC+5 Pro ou Recherche Etude comparative des outils de vérification d'algorithmes parallèles Logiciels (LSL), localisé à Palaiseau (Essonne), développe les outils d'aide
Plus en détailPrénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
Plus en détailPlan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml
OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire
Plus en détailPROJET 1 : BASE DE DONNÉES REPARTIES
PROJET 1 : BASE DE DONNÉES REPARTIES GESTION D UNE BANQUE Elèves : David Bréchet Frédéric Jacot Charles Secrétan DONNÉES DU PROJET SSC - Bases de Données II Laboratoire de Bases de Données BD réparties
Plus en détailLABO 5 ET 6 TRAITEMENT DE SIGNAL SOUS SIMULINK
LABO 5 ET 6 TRAITEMENT DE SIGNAL SOUS SIMULINK 5.1 Introduction Simulink est l'extension graphique de MATLAB permettant, d une part de représenter les fonctions mathématiques et les systèmes sous forme
Plus en détailSolution A La Gestion Des Objets Java Pour Des Systèmes Embarqués
International Journal of Engineering Research and Development e-issn: 2278-067X, p-issn: 2278-800X, www.ijerd.com Volume 7, Issue 5 (June 2013), PP.99-103 Solution A La Gestion Des Objets Java Pour Des
Plus en détailL envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248
L envoi d un formulaire par courriel Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 Chapitre 9 L envoi d un formulaire par courriel L envoi par courriel d informations
Plus en détail