Circuits et composition synchrone d automates

Dimension: px
Commencer à balayer dès la page:

Download "Circuits et composition synchrone d automates"

Transcription

1 Circuits et composition synchrone d automates Marc Pouzet UPMC/ENS Marc.Pouzet@ens.fr MPRI, 11 octobre 2013 MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 1/41

2 Automates à entrées/sorties: représentations implicites et explicites On s intéresse au modèle des programmes synchrones restriction aux programmes purement logiques: Booléens (Lustre), signaux purs (Esterel) deux modèles d automates (explicites) classiques: Automates de Moore: la sortie est associée à l état Automates de Mealy: la sortie est associée à la transition représentation explicite vs implicite d un automate automates booléens et automates interprétés composition d automates (mise en parallèle, masquage, hiérarchie) Modèle de programmation/modélisation très répendu (e.g., StateCharts [4], StateFlow a ou Argos [5] et SyncCharts [1] avec sem. synchrone propre) a MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 2/41

3 Automate de Moore Une automate de Moore est un sextuplet (Q, Σ,, δ, λ, q 0 ) Q est un ensemble fini d états, q 0 est l état initial Σ est l alphabet d entrée, est l alphabet de sortie δ est une application de Q Σ dans Q λ est une application de Q dans, donnant la sortie associée à chaque état La sortie de M en réponse à une entrée a 1 a 2...a n, n 0 est λ(q 0 )λ(q 1 )...λ(q n ) où q 0,..., q n est la séquence d états tels que δ(q i 1, a i ) = q i pour 1 i n. Remarque: Un automate de Moore retourne la sortie λ(q 0 ) pour toute entrée ɛ. MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 3/41

4 Exemple Compter modulo 3 à partir d un nombre écrit en binaire q0 q1 q Sur l entrée 1010, la séquence d états est q 0, q 1, q 2, q 2, q 1 donnant la sortie Autrement dit, ɛ a le reste 0, 1 le reste 1, 2 le reste 2, 5 le reste 2 et 10, le reste 1. MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 4/41

5 Automate de Mealy Un automate de Mealy est un sextuplet M = (Q, Σ,, δ, λ, q 0 ) Q est un ensemble fini d états, q 0 est l état initial Σ est l alphabet d entrée, est l alphabet de sortie δ est une application de Q Σ dans Q λ est une application de Q Σ dans λ(q, a) donne la sortie associée à une transition d un état q sur l entrée a. La sortie de M, en réponse à une séquence d entrées a 1...a n est λ(q 0, a 1 )λ(q 1, a 2 )...λ(q n 1, a n ) où q 0, q 1,..., q n est la séquence des états tels que δ(q i 1, a i ) = q i pour 1 i n. Remarque: Cette séquence a la longueur n alors qu elle est de longuer n + 1 pour les automates de Moore. Sur l entrée, ɛ, une automate de Mealy rend la sortie ɛ. MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 5/41

6 Exemple Reconnaissance des mots de {0, 1} qui se terminent soit par 00, soit par 11. Un automate de Mealy de 3 états qui émet o (pour oui), lorsque la chaine rencontrée jusque la est valide et n (pour non) sinon. 0/o 1/o 0/n p0 p1 1/n 0/n 1/n q0 La réponse de M à l entrée est nnono. MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 6/41

7 Rappel: équivalence On définit T M (w) pour toute entrée w comme la sortie produite par M sur l entrée w. Définition 1 (Equivalence d automates) Un automate de Moore M est équivalent à un automate de Mealy M si pour toute entrée w, bt M (w) = T M (w) où b est la sortie de M dans son état initial. Théorème 1 (Equivalence) Si M 1 est un automate de Moore alors il existe un automate de Mealy M 2 équivalent à M 1. Si M 1 est une automate de Mealy alors il existe un automate de Moore M 2 équivalent à M 1. Remarque: Les automates de Mealy sont (beaucoup) plus concis que les automates de Moore: le codage d un automate de Mealy en un automate équivalent de Moore peut nécessiter un nombre d état en O( Q ) MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 7/41

8 Moore vers Mealy Soit M 1 l automate de Moore. Il suffit de construire l automate de Mealy M 2 = (Q, Σ,, δ, λ, q 0 ) tel que λ (q, a) = λ(δ(q, a)) Mealy vers Moore Soit M 1 l automate de Mealy. Il suffit de construire M 2 = (Q, Σ,, δ, λ, [q 0, b 0 ]) où b 0 est n importe quel élément de. Les états de M 2 sont des paires [q, b] consistant en un état de M 1 et un symbole de sortie (Q = Q ). On définit: δ ([q, b], a) = [δ(q, a), λ(q, a)] et: λ ([q, b]) = b. MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 8/41

9 Automate implicite (cas booléen) un automate peut être représenté de manière implicite par un ensemble de fonctions booléennes cad, un circuit formé de porte logiques (e.g., et, ou, non) et de registres représentant l état du système ensemble d entrées I, sorties O, mémoire S (variables d état) état initial: init IB S fonction de sortie: o j = f j ( s, i) IB fonction de transition: s k = g k( s, i) IB Cas particulier d un observateur synchrone: une seule sortie booléenne. MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 9/41

10 Automate explicite ensemble d entrées I, sorties O, états Q (fini) état initial: q init Q Relation de transition: T Q I O Q NB: système déterministe ssi fonction de transition Notation: T (q, i) = ( o, q ) noté q i/ o q Automate de Mealy classique: l alphabet d entrées est l ensemble des n-uplets de valeurs des entrées l alphabet de sortie est l ensemble des n-uplets de valeurs des sorties MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 10/41

11 Implicite vers Explicite Simple énumération des variables booléennes Alphabet d entrée IB I, alphabet de sortie IB O On pose Q = IB S, q init = init q i/ o q ssi o = (f 1 (q, i),..., f O (q, i)) q = (g 1 (q, i),..., g S (q, i)) MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 11/41

12 Explicite vers Implicite Plusieurs solutions plus ou moins efficaces. La plus simple est le codage one-hot. Alphabet d entrée Σ = {a 1,..., a n } Alphabet de sortie = {b 1,..., b m } ensemble fini d états Q et état initial Init Fonction de transition T : Q Σ Q Pour tout état q, on note: Prec(q) = {(p, i) / p i/o q} Succ(q) = {(i, r) / q i/o r} On note Output(o) = {(p, q, i) / p i/o q} MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 12/41

13 Codage One-hot: une variable (d état) s qj booléenne par état explicite de l automate une variable booléenne i k par élément de l alphabet d éntrée Σ une variable booléenne o k par élément de l alphabet de sortie Chaque variable d état s q et variable de sortie o est définie par: soient i 1,..., i n et p 1,..., p n tels que (p k, i k ) Prec(q), k {1,..., n} soient j 1,..., j m lorsqu il existe r tel que (j k, r) Succ(q), k {1,..., m} s q = if s q then not j 1... not j m else s p1 i 1... s pn i n o = (p,q,i) Output(o) (p i) Etat initial Init = (Init 1,..., Init Q ) tq Init k = 1 et Init j = 0 pour tour j k si q k est l état initial. MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 13/41

14 Remarques: n variables booléennes pour coder n états alors que log n suffit même chose pour l alphabet d entrée et l alphabet de sortie Il existe d autres codage plus efficaces MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 14/41

15 Reconnaissance d expressions régulières Lorsque l automates initial est non déterministe, il n est pas nécessaire de le déterminiser. Un circuit synchrone est donc un excellent reconnaisseur de langage régulier! a b c q1 q2 q3 q4 a,b,c node grep_abc(a, b, c: bool) returns (ok: bool); var q1, q2, q3, q4: bool; let q1 = true -> pre q1; q2 = false -> pre q1 and a; q3 = false -> pre q2 and b; q4 = false -> pre q3 and c; ok = q4; tel; L espace des valuations des variables d état correspond à la construction de l automate déterministe explicite (de taille potentiellement exponentielle) sans qu il ne soit construit. MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 15/41

16 Automates booléens, automates interprétés un automate explicite peut être étiqueté par des expressions booléennes. l équivalence avec l automate implicite est triviale les transitions sont de la forme: p f/o 1,...,o n q où f est une formule booléenne portant seulement sur les variables d entrées et les o i sont des variables de sortie dont la valeur est vraie f ::= x f f f f f où x I permet de factoriser les transitions (gain exponentiel sur le nombre de transitions et la représentation des alphabets) e.g., les transistions p f 1/o q et p f 2/o q sont représentées par p (f 1 f 2 )/o q MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 16/41

17 Implicite vs Explicite les compilateurs savent manipuler les deux types de représentation (explicite et implicite) Implicite: taille raisonnable donc bon modèle pour la génération de code: correspond à la compilation en boucle simple de Lustre représentation implicite plus compacte; application d algo. de simplification booléenne Explicite: taille (potentiellement) prohibitive modèle simple pour l analyse et la vérification: il existe une infinité d automates qui font la même chose mais un minimal en pratique, il n est pas raisonnable de construire un automate explicite à partir d un automate implicite MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 17/41

18 Composition Synchrone d Automates Remarques: composition de circuits synchrones (ici, une seule horloge dite de base) = compositions de fonctions booléennes Automate de Mealy booléen M = (S, s o, I, O, T ) où I: variables d entrées, O: variables de sorties avec I, O A T S f(i) 2 O S f(i) désigne une formule booléenne sur I Déterminisme: Pour tout état s et pour toute paire de transitions s b i/... s et s b j/... s, b i b j = false Réactivité: Pour tout état s, l ensemble des transitions s b i/... s i, 0 i k partant de s vérifie 0 i k b i = true On dira qu un automate est causal lorsqu il est réactif et déterministe. MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 18/41

19 Composition parallèle synchrone Que signifie P Q où P et Q sont deux systèmes de transition? Si P et Q sont tous deux causaux, est-ce que P Q l est aussi? Produit synchrone: (p, q) c 1 c 2 /e 1,e 2 (p, q ) si (p c 1/e 1 p ) (q c 2/e 2 q ) produit cartésien des états avec conjonction des gardes et union des sorties diffusion synchrone: les processus envoient un signal à tous les autres l envoi est non bloquant un nombre arbitraire de processus peut recevoir le signal (broadcast) la réaction à un broadcast est instantanée (même instant) MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 19/41

20 Certaines conditions sur les transitions sont logiquement incohérentes. A/A : si A est absent, A est émis? (chaque réaction doit être logiquement cohérente) A/A lorsque A est un signal local? (non déterministe) A/... où A est local et n est pas émis? (un signal est présent s il est émis) MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 20/41

21 Cas 1: pas de communication/synchronisation not c not c not c p r pr c/o1 c/o2 c/o1,o2 q s qs Cas 2: communication et masquage la réaction à un broadcast est instantanée (même instant) composition parallèle = comme précédemment on ajoute une opération de masquage pour éliminer certaines transition du produit cartésien p not(a) r not(b) pr not(a) a/b b/c a/c q s qs MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 21/41

22 Masquage: hide b P (b est un signal local dans P ) masquage de b produit synchrone des deux automates: (p, q) c 1 c 2 /e 1,e 2 (p, q ) si (p c 1/e 1 p ) (q c 2/e 2 q ) certaines transitions sont logiquement incohérentes: on garde la transition c/e ssi: (b e c b false) (b e c not b false) pas de contradiction logique au cours d une réaction et on enlève b des transitions Conclusion: si P et Q sont causaux, P Q ne le sont pas nécessairement il faut une analyse statique pour le garantir: analyse de causalité MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 22/41

23 Automate et circuit Que se passerait t il si l on cablait les circuits correspondants? node left(a: bool) returns (b: bool); var p: bool; let b = a and (true -> pre p); p = (not(a)) and (true -> pre p); tel; node right(b: bool) returns (c: bool); var r: bool; let c = b and (true -> pre r); r = (not b) and (true -> pre r); tel; MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 23/41

24 node produit(a: bool) returns (c: bool); var b: bool; let b = left(a); c = right(b); tel; node simple(a: bool) returns (c: bool); var pr: bool; let c = a and (true -> pre pr); pr = (not a) and (true -> pre pr); tel; node observe(a: bool) returns (ok: bool); let ok = simple(a) = produit(a); tel; % lesar auto.lus observe --Pollux Version 2.3 TRUE PROPERTY MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 24/41

25 Hiérarchie introduit par Harel dans les StateCharts un noeud peut lui-même être composé d automates reset/ on/ not(on)/ p on/o p not(a) a/o p not(b) a/o2 q q /o q /o2 /o o1&o2/ok préemption faible: on laisse terminer la réaction courante (automates de Moore) sémantique à plat synchrone (cf. Argos, Maraninchi [5]) MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 25/41

26 Sémantique à plat synchrone Composition parallèle Le cas de la composition synchrone en éliminant les transitions incohérentes. Composition hiérarchique On considère le cas de la préemption faible: si l état source s k effectue une f k / o k transition interne s k1 sk2 en même temps qu une transition externe f(i)/ o s k s k alors les signaux o k sont émis lorsque f k f(i) est vrai. Soient deux états hiérarchiques M 1 = (S 1, s o, I, O, T 1 ) et M 2 = (S 2, s o, I, O, T 2 ) et une transition s k f(i)/ o s k. On construit un automate M = (S 1 + S 2, s o, I, O, T ) tq: s k1 f k not f(i)/ o k s k2 (si la transition est logiquement cohérente) s k1 f k f(i)/ o k, o s o (si la transition est logiquement cohérente) MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 26/41

27 Programmes non strictement booléens: automates interprétés Modèle équationnel: pas de problème O = T o1... T o O I = T i1... T i I S = T s1... T s S avec T x = IB, IN,... état initial Init = (v 1,..., v S ) une fonction de transition T : S I O S Essentiellement un programme Lustre Automate explicite: impossible à construire (infinité d états et de transitions) MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 27/41

28 Automate interprété structure de contrôle finie (booléens) transitions étiquetées par des conditions modèle équationnel pour le reste (entiers, réels) Essentiellement le résultat de la compilation en automate de Lustre. Exemple: node compter(top, click: bool) returns (cpt: int); let cpt = if top then i else i + 0 -> pre cpt; i = if click then 1 else 0; tel; init i:=if click then 1 else 0; cpt:=if top then i else i init i:=if click then 1 else 0; cpt:=if top then i else cpt MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 28/41

29 Considérations langage En pratique, les systèmes ont un caractère mixte: des parties purement data-flow : e.g., systèmes de régulation, filtres des parties orientées controle : drivers, changements de mode, etc. Les deux types de description sont équivalentes (l une peut être traduite en l autre) mais le code obtenu n est pas nécessairement efficace ni lisible. Questions Trouver un langage homogène permettant de mélanger les deux types de description. Cela existe dans tous les outils industriels: SCADE + SSM, Simulink (discret) + StateFlow Aspects Automates de Modes (Maraninchi & all [6]): des automates dont les noeuds peuvent contenir des automates ou des équations Lustre Solution un peu plus générale et compilation par réécriture dans un noyau data-flow avec horloges (Colaço & Pouzet [3, 2]), cf. Lucid Synchrone Intégré à SCADE 6 a. a MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 29/41

30 let node weak(up, down) = ok where rec automaton Up -> do ok = true until down then Down Down -> do ok = false until up then Up end let node strong(up, down) = ok where rec automaton Up -> do ok = true unless down then Down Down -> do ok = false unless up then Up end Compilation: On ne traduit pas les automates (imbriqués et/ou mis en parallèle) en en faisant le produit à la compilation. Les automates sont traduits en équations data-flow, à base de -merge- et when. On s intègre alors à la chaîne de compilation existente vers du code séquentiel. MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 30/41

31 Application: compilation d Esterel en circuits booléens Principe: l évolution du point de contrôle du programme est encodé par un circuit booléen. Exemple: ABRO. every R do [ await A await B]; emit O; end every Après simplification (i.e., traduction dans le langage noyau), on obtient: await R; loop abort [ await A await B ]; emit O; halt when R end MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 31/41

32 Langage noyau p ::= emit s p; p P P loop p pause await tick await S abort half when S halt loop pause end abort p when s present s then p else p suspend P when s nothing signal s in p halt Remarque: Les deux constructions élémentaires du noyau Esterel sont les exceptions et la suspension. Cf. [G. Berry, Preemption in Concurrent Systems, FSTTCS 96]. On considère ici seulement la préemption qui correspond à un cas simple d exception et la suspension. MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 32/41

33 ABRO await R; -- 1 loop abort [ await A -- 2 await B -- 3 ]; emit O; halt -- 4 when R end R R A~B~R 3 B~R/O 1 R R 23 ~AB~R 2 AB~R/O A~R/O 4 Deux types de compilations pour Esterel automate explicite par évaluation symbolique de la sémantique opérationnelle. Code beaucoup trop gros. automate implicite, i.e., compilation en systèmes d équations boolénnes (circuits). MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 33/41

34 Compilation en circuit Principe de la traduction Chaque construction est traduite en un système d équations booléennes, i.e., un programme Lustre. des entrées S 1,..., S n ; des sorties S 1,..., S k. des entrées de contrôle: go et enable des sorties de contrôle: term et halt Correspond à une signature Lustre: node f(go, enable: bool; S1,...,Sn:bool) returns (term, halt: bool; S 1,...,S k: bool) MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 34/41

35 Règles de traduction emit S term = go; halt = false; S = go await S term = enable and wait and S; halt = enable and wait and not(s); wait = false -> pre go and halt p 1 p 2 (term 1, halt 1, S 1,...) = p 1 (go, enable,...); (term 2, halt 2, S 2,...) = p 2 (go, enable,...); halt = halt 1 or halt 2 ; term = term 1 or term 2 and not(halt); S = S 1 or S 2... MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 35/41

36 Règles de traduction p 1 ;p 2 (term 1, halt 1, S 1,...) = p 1 (go, enable, S 1,...); abort p when S loop p (term 2, halt 2, S 2,...) = p 2 (go, enable and not(halt 1 ),...); halt = halt 1 or halt 2 ; term = term 2 ; S = S 1 or S 2 (term 1, halt 1, S 1,...) = p 1 (go, enable and not(s),...); halt = halt 1 and not(s); term = term 1 or halt 1 and S (term 1, halt 1, S 1) = p 1 (go or term 1, enable,...); term = false; halt = halt 1 MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 36/41

37 Règles de traduction suspend p when S Réincarnation: (term 1, halt 1, S 1,...) = p 1 (go, enable and S, S 1,...); halt = halt 1 or S; term = term 1 loop signal S in [await T; emit S present S then emit O] end end Il y a ici deux instances différentes de S en même temps. MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 37/41

38 Trois solutions ont été étudiées. Solution 1: Dupliquer le code: loop signal S1 in [await T; emit S1 present S1 then emit O] end; signal S2 in [await T; emit S2 present S2 then emit O] end; end Couteux en taille de code/efficacité. Solution 2: Faire mieux en distinguant surface et profondeur. La surface d un programme est la partie qui correspond à la réaction au premier instant. La profondeur est la partir complémentaire. surface(await T ) = pause profondeur(await T ) = await immediate T surface(present S then emit O) = present S then emit O profondeur(present S then emit O) = nothing MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 38/41

39 loop signal S1 in [pause present S1 then emit O] end; signal S2 in [await immediate T; emit S2 nothing ] end; end Lire Constructive semantics of Esterel, G. Berry. Solution 3 Introduire un langage intermédiaire avec des gotopause. Lire De la sémantique opérationnelle à la spécification formelle de compilateurs: l exemple des boucles en Esterel. Thèse de doctorat, Olivier Tardieu. Le phénomène de ré-incarnation est très lié à l expressivité d Esterel. Il est intellectuellement amusant mais n est pas essentiel. Il disparait en imposant des contraintes de causalité plus fortes (d où l idée des gotopause de Tardieu. Il n existe pas avec les automates de mode, par exemple. MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 39/41

40 [1] Charles André. Representation and Analysis of Reactive Behaviors: A Synchronous Approach. In CESA, Lille, july IEEE-SMC. Available at: www-mips.unice.fr/ andre/synccharts.html. [2] Jean-Louis Colaço, Grégoire Hamon, and Marc Pouzet. Mixing Signals and Modes in Synchronous Data-flow Systems. In ACM International Conference on Embedded Software (EMSOFT 06), Seoul, South Korea, October [3] Jean-Louis Colaço, Bruno Pagano, and Marc Pouzet. A Conservative Extension of Synchronous Data-flow with State Machines. In ACM International Conference on Embedded Software (EMSOFT 05), Jersey city, New Jersey, USA, September [4] D. Harel. StateCharts: a Visual Approach to Complex Systems. Science of Computer Programming, 8-3: , [5] F. Maraninchi. The Argos Language: Graphical Representation of Automata and Description of Reactive Systems. In IEEE Workshop on Visual Languages, Kobe, Japan, october [6] F. Maraninchi and Y. Rémond. Mode-automata: a new domain-specific construct for the development of safe critical systems. Science of Computer Programming, (46): , MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 40/41

41 [7] Florence Maraninchi. Operational and compositional semantics of synchronous automaton compositions. In CONCUR, pages , [8] Florence Maraninchi and Yann Rémond. Argos: an automaton-based synchronous language. Computer Languages, (27):61 92, MPRI Systèmes Synchrones, Marc Pouzet 11 octobre 2013, page 41/41

IFT1215 Introduction aux systèmes informatiques

IFT1215 Introduction aux systèmes informatiques Introduction aux circuits logiques de base IFT25 Architecture en couches Niveau 5 Niveau 4 Niveau 3 Niveau 2 Niveau Niveau Couche des langages d application Traduction (compilateur) Couche du langage d

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique 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étail

Licence 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étail

Les diagrammes de modélisation

Les diagrammes de modélisation L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion 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étail

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009 SugarCubes Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués Paris, le 9 janvier, 2009 Plan 2 Les SugarCubes au dessus de J2ME Quelques résultats expérimentaux Les

Plus en détail

Étude de l'analyse statique de programmes synchrones par interprétation abstraite

Étude de l'analyse statique de programmes synchrones par interprétation abstraite Stage de fin de L3 École Normale Supérieure Département d'informatique Étude de l'analyse statique de programmes synchrones par interprétation abstraite Rapport de stage Alex AUVOLAT alex.auvolat@ens.fr

Plus en détail

Les processus légers : threads. Système L3, 2014-2015 1/31

Les processus légers : threads. Système L3, 2014-2015 1/31 Les processus légers : threads Système L3, 2014-2015 1/31 Les threads Les threads sont des processus légers exécutés à l intérieur d un processus L exécution des threads est concurrente Il existe toujours

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes 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étail

Recherche dans un tableau

Recherche 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étail

Coopération de modèles de temps

Coopération de modèles de temps Coopération de modèles de temps Gérard Berry Collège de France Chaire Algorithmes, machines et langages http://www.college-de-france.fr/site/gerard-berry gerard.berry@college-de-france.fr Cours 6, 19 mars

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE 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étail

Les 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. 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étail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. 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étail

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Expression 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étail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 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étail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

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 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étail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO

Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO Cours de Programmation en Langage Synchrone SIGNAL Bernard HOUSSAIS IRISA. Équipe ESPRESSO 24 septembre 2004 TABLE DES MATIÈRES 3 Table des matières 1 Introduction 5 1.1 La Programmation Temps Réel.........................

Plus en détail

Cours de Programmation 2

Cours 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

Cours de Master Recherche

Cours de Master Recherche Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction

Plus en détail

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Sub CalculAnnuite() Const TITRE As String = Calcul d'annuité de remboursement d'un emprunt TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 1 'TRADUCTION EN VBA DES EXEMPLES ALGORITHMIQUES SUR LES STRUCTURES 'DE CONTROLE DE L'EXECUTION

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets

modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets Mengxuan Zhao, Gilles Privat, Orange Labs, Grenoble, France Eric Rutten, INRIA, Grenoble, France Hassane

Plus en détail

Model checking temporisé

Model checking temporisé Model checking temporisé Béatrice Bérard LAMSADE Université Paris-Dauphine & CNRS berard@lamsade.dauphine.fr ETR 07, 5 septembre 2007 1/44 Nécessité de vérifier des systèmes... 2/44 Nécessité de vérifier

Plus en détail

Algèbre binaire et Circuits logiques (2007-2008)

Algèbre binaire et Circuits logiques (2007-2008) Université Mohammed V Faculté des Sciences Département de Mathématiques et Informatique Filière : SMI Algèbre binaire et Circuits logiques (27-28) Prof. Abdelhakim El Imrani Plan. Algèbre de Boole 2. Circuits

Plus en détail

Cours 1 : La compilation

Cours 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étail

ET 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. 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étail

Introduction à l étude des Corps Finis

Introduction à l étude des Corps Finis Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur

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 É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étail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

TP 1. Prise en main du langage Python

TP 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étail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH

Plus en détail

Introduction à la programmation concurrente

Introduction à 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étail

Cours 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 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étail

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Vérification de programmes et de preuves Première partie. décrire des algorithmes Vérification de programmes et de preuves Première partie. décrire des algorithmes Yves Bertot September 2012 1 Motivating introduction A partir des années 1940, il a été compris que l on pouvait utiliser

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques. Logique binaire I. L'algèbre de Boole L'algèbre de Boole est la partie des mathématiques, de la logique et de l'électronique qui s'intéresse aux opérations et aux fonctions sur les variables logiques.

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION 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étail

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 HFFv2 1. OBJET L accroissement de la taille de code sur la version 2.0.00 a nécessité une évolution du mapping de la flash. La conséquence de ce

Plus en détail

Haka : un langage orienté réseaux et sécurité

Haka : un langage orienté réseaux et sécurité Haka : un langage orienté réseaux et sécurité Kevin Denis, Paul Fariello, Pierre Sylvain Desse et Mehdi Talbi kdenis@arkoon.net pfariello@arkoon.net psdesse@arkoon.net mtalbi@arkoon.net Arkoon Network

Plus en détail

DOCM 2013 http://docm.math.ca/ Solutions officielles. 1 2 10 + 1 2 9 + 1 2 8 = n 2 10.

DOCM 2013 http://docm.math.ca/ Solutions officielles. 1 2 10 + 1 2 9 + 1 2 8 = n 2 10. A1 Trouvez l entier positif n qui satisfait l équation suivante: Solution 1 2 10 + 1 2 9 + 1 2 8 = n 2 10. En additionnant les termes du côté gauche de l équation en les mettant sur le même dénominateur

Plus en détail

Présentation du langage et premières fonctions

Pré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étail

Gestion mémoire et Représentation intermédiaire

Gestion 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étail

Algorithmique et Programmation Fonctionnelle

Algorithmique et Programmation Fonctionnelle Algorithmique et Programmation Fonctionnelle RICM3 Cours 9 : Lambda-calcul Benjamin Wack Polytech 2014-2015 1 / 35 La dernière fois Typage Polymorphisme Inférence de type 2 / 35 Plan Contexte λ-termes

Plus en détail

Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/

Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/ Calculabilité Cours 3 : Problèmes non-calculables http://www.irisa.fr/lande/pichardie/l3/log/ Problèmes et classes de décidabilité Problèmes et classes de décidabilité Nous nous intéressons aux problèmes

Plus en détail

Formula Negator, Outil de négation de formule.

Formula Negator, Outil de négation de formule. Formula Negator, Outil de négation de formule. Aymerick Savary 1,2, Mathieu Lassale 1,2, Jean-Louis Lanet 1 et Marc Frappier 2 1 Université de Limoges 2 Université de Sherbrooke Résumé. Cet article présente

Plus en détail

Élasticité des applications à base de services dans le Cloud

Élasticité des applications à base de services dans le Cloud 1/40 Élasticité des applications à base de services dans le Cloud Mourad Amziani 12 Tarek Melliti 1 Samir Tata 2 1 IBISC, EA4526, Université d'évry Val-d'Essonne, Évry, France 2 UMR CNRS Samovar, Institut

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

Théorie et codage de l information

Théorie et codage de l information Théorie et codage de l information Les codes linéaires - Chapitre 6 - Principe Définition d un code linéaire Soient p un nombre premier et s est un entier positif. Il existe un unique corps de taille q

Plus en détail

Chapitre 7. Récurrences

Chapitre 7. Récurrences Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers 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étail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Model Based Testing : principes et applications dans le cadre temporisé

Model Based Testing : principes et applications dans le cadre temporisé Model Based Testing : principes et applications dans le cadre temporisé Antoine Rollet Université de Bordeaux (LaBRI - CNRS UMR 5800) Talence - France http://www.labri.fr/~rollet Email: rollet@labri.fr

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

Analyse de sécurité de logiciels système par typage statique

Analyse 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étail

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases 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étail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

OCL - Object Constraint Language

OCL - 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étail

Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov

Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov Olivier Hermant et Vivien Maisonneuve CRI, MINES ParisTech, PSL Research University prenom.nom@mines-paristech.fr

Plus en détail

Table des matières. Introduction

Table des matières. Introduction Table des matières 1 Formalisation des virus informatiques 2 1.1 Les machines de Turing........................ 2 1.2 Formalisation de Fred Cohen..................... 2 1.2.1 Définition d un virus informatique..............

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction 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étail

VIII- Circuits séquentiels. Mémoires

VIII- Circuits séquentiels. Mémoires 1 VIII- Circuits séquentiels. Mémoires Maintenant le temps va intervenir. Nous avions déjà indiqué que la traversée d une porte ne se faisait pas instantanément et qu il fallait en tenir compte, notamment

Plus en détail

Métriques de performance pour les algorithmes et programmes parallèles

Métriques de performance pour les algorithmes et programmes parallèles Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources SNT4U16 - Initiation à la programmation Licence SVT 2 ème année 2014-2015 TD - Dynamique de POP III - Fichiers sources contacts : mathias.gauduchon@univ-amu.fr, melika.baklouti@univ-amu.fr, xavier.giraud@univ-amu.fr,

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Représentation géométrique d un nombre complexe

Représentation géométrique d un nombre complexe CHAPITRE 1 NOMBRES COMPLEXES 1 Représentation géométrique d un nombre complexe 1. Ensemble des nombres complexes Soit i le nombre tel que i = 1 L ensemble des nombres complexes est l ensemble des nombres

Plus en détail

Modèles de Calcul. Yassine Lakhnech. 2007/08 Université Joseph Fourier Lab.: VERIMAG. Yassine.Lakhnech@imag.fr. Modèles de Calcul Start p.

Modèles de Calcul. Yassine Lakhnech. 2007/08 Université Joseph Fourier Lab.: VERIMAG. Yassine.Lakhnech@imag.fr. Modèles de Calcul Start p. Modèles de Calcul Yassine Lakhnech Yassine.Lakhnech@imag.fr 2007/08 Université Joseph Fourier Lab.: VERIMAG Modèles de Calcul Start p.1/81 Équipe pédagogique Cours : Saddek Bensalem et Yassine Lakhnech

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Simulation centrée individus

Simulation centrée individus Simulation centrée individus Théorie des jeux Bruno BEAUFILS Université de Lille Année 4/5 Ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les

Plus en détail

Classes et Objets en Ocaml.

Classes et Objets en Ocaml. Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.

Plus en détail

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES TRAVAUX PRATIQUES Le présent travail vise à développer une interface visuelle de programmation des entrées- sorties du port LPT d un PC à l aide du logiciel VISUAL BASIC. I- EDITION ET TEST DU PROGRAMME

Plus en détail

Systèmes de communications numériques 2

Systèmes de communications numériques 2 Systèmes de Communications Numériques Philippe Ciuciu, Christophe Vignat Laboratoire des Signaux et Systèmes cnrs supélec ups supélec, Plateau de Moulon, 9119 Gif-sur-Yvette ciuciu@lss.supelec.fr Université

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

Rejo Langage d Objets Réactifs et d Agents

Rejo Langage d Objets Réactifs et d Agents THESE présentée et soutenue publiquement par Raúl Acosta-Bermejo pour obtenir le grade de DOCTEUR de l École des Mines de Paris Spécialité : Informatique temps-réel, Robotique, Automatique Rejo Langage

Plus en détail

Informatique Générale

Informatique Générale Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html

Plus en détail

Un ordonnanceur stupide

Un 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étail

KL5121. 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 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étail

Résolution de systèmes linéaires par des méthodes directes

Résolution de systèmes linéaires par des méthodes directes Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.

Plus en détail

Machines virtuelles Cours 1 : Introduction

Machines virtuelles Cours 1 : Introduction Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une

Plus en détail

Le langage VHDL. Eduardo Sanchez EPFL

Le langage VHDL. Eduardo Sanchez EPFL Le langage VHDL Eduardo Sanchez EPFL Livres conseillés: John F. Wakerly Digital design (4th edition) Prentice Hall, 2005 Peter J. Ashenden The designer's guide to VHDL (3rd edition) Morgan Kaufmann, 2008

Plus en détail

Introduction. Gestion de la consommation énergétique. Contexte du cloud computing Instrumentation et contrôle

Introduction. Gestion de la consommation énergétique. Contexte du cloud computing Instrumentation et contrôle Ctrl-Green Projet ANR INFRA (2012-2015) Coordinateur Noel De Palma (UJF/LIG) Partenaires UJF/LIG, ENSEEIHT/IRIT, INRIA, Eolas Business&Decision, Scalagent Introduction Gestion de la consommation énergétique

Plus en détail

Système binaire. Algèbre booléenne

Système binaire. Algèbre booléenne Algèbre booléenne Système binaire Système digital qui emploie des signaux à deux valeurs uniques En général, les digits employés sont 0 et 1, qu'on appelle bits (binary digits) Avantages: on peut utiliser

Plus en détail

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation 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étail

CH.6 Propriétés des langages non contextuels

CH.6 Propriétés des langages non contextuels CH.6 Propriétés des langages non contetuels 6.1 Le lemme de pompage 6.2 Les propriétés de fermeture 6.3 Les problèmes de décidabilité 6.4 Les langages non contetuels déterministes utomates ch6 1 6.1 Le

Plus en détail