Représentation graphique des objets et sous-typage

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

Download "Représentation graphique des objets et sous-typage"

Transcription

1 Représentation graphique des objets et sous-tpage Cong-Cong Xg * Boumediene Belkhouche ** * Dept of Mathematics and Computer Science Nicholls State Universit, Thibodau, LA 70310, USA ** EECS Department, Tulane Universit, New Orleans, LA 70118, USA RÉSUMÉ. Les dépendances ernes parmi les propriétés des objets caractérisent leurs comportements et les différencient des enregistrements. Des problèmes fondamentau de tpage/soustpage persistent encore dans les sstèmes de tpes d objets parce que les erdépendances parmi ces propriétés ne sont pas prises en compte. Dans ce papier, nous proposons une nouvelle méthode de tpage des langages orientés objet qu on appelera graphe tpe pour objets (OTG). Les tpes des objets sont représentés par des graphes orientés et colorés. Les erdépendances parmi les propriétés sont formalisées par des liens égrés dans les tpes mêmes. Asi, nous démontrons que les problèmes qui eistent dans les sstèmes traditionnels de tpes peuvent être facilement résolus sous OTG. ABSTRACT. Internal dependencies among object components characterize the behaviors of objects and differentiate them from records. Fundamental tpg/subtpg shortcomgs still persist current object tpe sstems due to the overlook of such object component erdependencies. In this paper, we propose object tpe graphs (OTG) as a new approach to the tpg of object-oriented languages. Under OTG, object tpes are represented as colored directed graphs and object component erdependancies are formalized as computable lks and egrated o object tpes. We show how problems conventional object tpe sstems can be easil resolved under OTG. MOTS-CLÉS : variance, sous-tpage, erdépendance, lien. KEYWORDS: variance, subtpg, erdependenc, lk. RSTI - L objet 11/2005. LMO 05, pages 191 à 206

2 192 RSTI - L objet 11/2005. LMO Introduction Dans le cadre de la théorie des tpes des langages orientés objet, il eiste deu grandes lignes de recherche : (1) le ς-calculus de Abadi et Cardelli [ABA 96] ; (2) le lambda calcul des objets de Fisher et Mitchell (et ses etensions) [FIS 94, LIQ 96, LIQ 98, BON 95]. Les deu sstèmes sont conventionnels dans le sens suivant : la distction fondamentale entre objets et enregistrements (c est-à-dire, les objets peuvent avoir des erdépendances entre leurs composants alors que les enregistrements n en ont pas) n est pas saisie dans les deu calculs. La dépendance erne des comportements est un dicateur critique qui différencie les objets des enregistrements. Asi, ne pas eprimer cette erdépendance signifie que deu tpes d objets dont les comportements sont différents peuvent avoir le même tpe. Par eemple, soient les objets a = [ = 1, = 2] et b = [ = 1, = ς(s : Self )(s.+1)], où ς est le liant, s est la variable dont le tpe est Self, et s. est un appel. Dans a, et sont dépendants, alors que dans b, (la valeur de) dépend de (la valeur de). La différence dans le comportement de a et de b se voit dans les résultats des appels à chaque avant et après la mise à jour de chaque. Par eemple, a. = 2, (a. 2). = 2, b. = 2, mais (b. 2). = 3, où est une opération de mise à jour des composants. Nous constatons que le comportement de a ne change pas avant et après l opération de mise à jour, alors que le comportement de b est modifié une fois que l opération de mise à jour est appliquée à b. Ce désaccord n est pas signalé dans les sstèmes conventionnels de tpes pour objets. Par conséquent, a et b sont du même tpe [ :, : ] et peuvent asi être utilisées de façon erchangeable dans n importe quel contete de programme où un objet de tpe [ :, : ] est utilisable. Des erreurs subtiles de programmation deviennent évitables, spécialement lorsque l on considère le sous-tpage et la subsomption. Dans ce papier, nous roduisons une nouvelle méthode pour représenter les tpes d objets qu on appellera graphe tpe pour objets (OTG). Cette représentation nous permet d eprimer les erdépendances. L organisation du papier est comme suit. Dans la section suivante, nous roduisons le problème de variance et de sous-tpage des enregistrements et des objets. Dans la section 3, nous traitons l eemple du po mobile pour signaler certas problèmes de sous-tpage. Dans la section 4, nous défissons un simple langage orienté objet (TOOL). Dans la section 5, nous défissons la représentation graphique OTG. Dans la section 6, nous défissons le sous-tpage des objets dans le cadre OTG. Plusieurs eemples de sous-tpage sont présentés. Enf, dans la section 7, nous présentons nos conclusions. 2. La variance du sous-tpage des objets En règle générale, on utilise l opérateur <: pour diquer que le sous-tpage des objets est appliqué selon les composants respectifs de ces objets. C est-à-dire, étant donnés deu tpes d objet A = [l 1 : t 1,..., l n : t n ] et B = [l 1 : s 1,..., l m : s m ], la relation A <: B dépend des relations de sous-tpage entre t i et s i pour chaque

3 Sous-tpage des objets i m(n, m). Asi, il a trois formes de sous-tpage : contravariance, covariance, et variance. Un sous-tpage est appelé contravariant (covariant, variant, respectivement) si : A <: B si et seulement si s i <: t i (t i <: s i, t i = s i, respectivement) pour chaque i. Les sous-tpages contravariant et covariant présentent de sérieu problèmes et sont à rejeter en faveur du sous-tpage variant [ABA 96, BON 95, CAS 95, LIQ 96]. Cependant, le sous-tpage variant lui-même est restrictif lorsqu on considère les enregistrements et les objets. En effet, les enregistrements sont un cas spécial d objets sans erdépendances parmi les composants [CAR 91]. Pour illustrer, considerons l ensemble des identificateurs de domaes S = {α, β}, et l ensemble des opérateurs Σ = {<:} où <: a pour tpe α α β, et les représentations Re = (Re α, Re β ) = (Re, {t, f}) et Ob = (Ob α, Ob β ) = (Ob, {t, f}). Aussi, soit f <: une function de Re Re à {t, f} qui fait correspondre deu enregistrements r 1, r 2 à t si le tpe de r 1 est un sous-tpe du tpe de r 2, et à f autrement. g <: est une function de Ob Ob à {t, f} ie de la même manière pour les objets. Asi, Re Ob = (Re, f <: ), = (Ob, g <: ) sont deu Σ-algèbres. En plus, soit h : Re Ob, h α : Re α Ob α, and h β : Re β Ob β ies asi : h = (h α, h β ) = (h, id). Alors, h devrait être un Σ-homomorphisme de Re à Ob, étant donné que h est une clusion naturelle de Re à Ob. C est-à-dire, h(f <: (r 1, r 2 )) = g <: (h(r 1 ), h(r 2 )) devrait être vraie pour t enregistrement r 1, r 2 Re. Le diagramme suivant est commutatif. Re Re h 2 Ob Ob f <: g <: {t, f} id {t, f} Figure 1. Homomorphisme de Re à Ob Malheureusement, le sous-tpage variant ne permet pas cette commutativité. Par eemple, soient les enregistrements suivants : r 1 = = 1, = 2 et r 2 = = 1.0, = 2.0, qui ont pour tpes t 1 = :, : et t 2 = :, :,

4 194 RSTI - L objet 11/2005. LMO 05 respectivement. Alors, t 1 <: t 2 Cependant, quand r 1 et r 2 sont considérés comme des objets, nous avons o 1 = [ = 1, = 2] et o 2 = [ = 1.0, = 2.0], aant pour tpes T 1 = [ :, : ] et T 2 = [ :, : ]. Le sous-tpage espéré T 1 <: T 2 n est pas conservé à cause de l variance. Il faut remarquer qu il a une bonne raison de vouloir le sous-tpage T 1 <: T 2. Les deu objets o 1 et o 2 sont dans un sens dégénérés. Les objets o 1 et o 2 devraient être consistants avec les enregistrements r 1 et r 2, et la nécessité d avoir T 1 <: T 2 suit de t 1 <: t 2. Il est clair que les trois méthodes de sous-tpage ne sont pas satisfaisantes. Dans ce papier, nous défirons une méthode de sous-tpage ( variance-par-nécessité ) capable de recouvrir les cas de sous-tpage variant qui sont perdus dans le sous-tpage variant traditionnel. 3. Distance d un po mobile Les pos avec des attributs supplémentaires (pos colorés [BRU 94, COO 90, HIC 02], pos mobiles [ABA 96, BON 95, HIC 02]) présentent des cas éressants dans l étude des langages orientés objet. Nous traitons ici un nouveau problème associé avec les pos mobiles. Soit un po en une dimension : p 1 = = 1.0 mv = ς(s:self )λ(i:)(s. s. + i) dist = ς(s:self )s. où mv déplace le po vers une position nouvelle sur l ae des et dist retourne la distance de l orige à la position actuelle du po. Dans les sstèmes conventionnels de tpes le tpe de p 1 est : P 1 = : mv : Self dist : Soit une autre fonction (m1d) qui prend un po appartenant à P 1, le déplace d une unité le long de l ae des, puis retourne sa distance de l orige. À cause du soustpage et de la subsomption, m1d prendra aussi comme paramètres des pos de dimension plus élevée qui sont des sous-tpes de P 1. Dans ce cas, cette fonction déplacerait les pos appartenant à ces sous-tpes le long de l ae des et garderait les autres coordonnées constantes. Naturellement, m1d pourrait être écrite asi : m1d = λ(p:p 1 )(p.mv(1)).dist Comme prévu, nous obtenons m1d(p 1 ) = 2.0. Maenant défissons un po à deu dimensions comme suit : = 1.0 = 1.0 p 2 = mv = ς(s:self )λ(i:)(s. s. + i) mv = ς(s:self )λ(i: )(s. s. + i) dist = ς(s:self ) (s.) 2 + (s.) 2

5 Sous-tpage des objets 195 Le tpe de p 2 est : P 2 = : : mv : Self mv : Self dist : La relation P 2 <: P 1 est facilement déduite. La position actuelle du po p 2 est (1, 1). Après application de m1d(p 2 ), p 2 se déplace de (1, 1) à (2, 1) La distance est 5 comme prévu. Défissons un autre po à deu dimensions comme suit : = 1.0 p = ς(s:self )s. 2 = mv = ς(s:self )λ(i:)(s. s. + i) mv = ς(s:self )λ(i: )(s. s. + i) dist = ς(s:self ) (s.) 2 + (s.) 2 Dans les sstèmes conventionnels de tpes, p 2 et p 2 ont le même tpe P 2 et tous les deu représentent le même po (1, 1) avec eactement les mêmes opérations (mv, mv, et dist). Le résultat retourné par m1d(p 2 ) est 2 2. Le problème apparent est que lorsque la coordonnée de p 2 devient 2, la coordonnée devient implicitement 2, à cause de l erdépendance entre et ( = s.). Asi, m1d(p 2 ) retourne la distance de l orige à (2, 2) au lieu de (2, 1). Nous constatons que l erdépendance entre les composants des objets est importante vis-à-vis des comportements des objets. Le tpe de l objet devrait saisir cette erdépendance et distguer entre p 2 et p Un langage tpé orienté objet (TOOL) Les termes de tpes de TOOL sont défis comme suit. T ermes M ::= λ(:σ).m M 1 M 2 M.l M.l ς(:σ)m [l i = ς(:s(a))m i ] n i=1 T pes σ ::= κ t σ 1 σ 2 µ(t)σ A S(A) A ::= ι(t)[l i (L i ):σ i ] n i=1 L i {l 1,..., l n } pour chaque i [l i = ς( : S(A))M i ] n i=1 représente un objet qui possède n méthodes, avec comme nom l i et corps M i pour chaque i. ς est un auto-liant (). M.l ς( : σ)m est

6 196 RSTI - L objet 11/2005. LMO 05 l opération de mise à jour qui a pour effet de remplacer le corps de la méthode l dans M par M. κ, t, σ 1 σ 2, et µ(t)σ sont respectivement les tpes de base, les variables, les tpes de fonction, et les tpes récursifs. Les tpes d objets sont représentés par ι(t)[l i (L i ):σ i ] n i=1 où chaque méthode l i a pour tpe σ i. L i est l ensemble des liens de l i. ι est un tpe auto-liant utilisé pour signifier que chaque occurrence de t dans chaque σ i représente l auto-tpe associé au tpe de l objet. Une autre façon d écrire l autotpe est S(A) qui signifie l auto-tpe associé au tpe de l objet A. Les deu notations se défissent entre elles comme suit : A = ι(t)[l i (L i ) : σ i (t)] n i=1 si et seulement si A = [l i (L i ):σ i (S(A))] n i=1. L eemple suivant sert à illustrer la notation. Soit le tpe A = ι(t) l 1({l 2, l 3 }) : t l 2 ( ) :. l 3 ({l 2 }) : Il spécifie que l 1, l 2, et l 3 sont respectivement un auto-tpe,, et. L ensemble des liens pour l 1 et l 3 sont {l 2, l 3 } et {l 2 }. l 2 n a pas de liens. Un eemple d objet de tpe A est : a = l 1 = ς(s:s(a))s l 2 = ς(s:s(a))1. l 3 = ς(s:s(a))λ(: )( + s.l 2 ) Liens Dans le tpe d objet ι(t)[l i (L i ):σ i ] n i=1, les étiquettes L i suivant chaque l i forment l ensemble des liens de l i. Cet ensemble est utilisé pour eprimer les dépendances entre les composants des objets. C est-à-dire, l j L i signifie que la méthode l i dépend (partiellement) de la valeur de la méthode l j. Ce mécanisme différencie les tpes d objet de TOOL des tpes d objet des sstèmes conventionnels de tpes. Eemple 1 Étant donné l objet a et le tpe A (défis plus haut), les liens dans a sont : L a (s) = {l 1, l 2, l 3 } {l 1 } = {l 2, l 3 } L a (1) = L a (λ(:)( + s.l 2 )) = L a ( + s.l 2 ) = L a () L a (s.l 2 ) = {l 2 } = {l 2 } Défition 1 (Liens) Étant donné un objet a = [l i = ς(s:s(a))m i ] n i=1, (1) on dit que l i est dépendant de l j (i j) s il eiste un M tel que a.l i et (a.l j ς(s:σ)m).l i donnent des résultats différents ; (2) on dit que l i est directement dépendant de l j (i j) si (a) l i est dépendant de l j, et (b) si tous les l k (i k, j k) où l i est dépendant

7 Sous-tpage des objets 197 de l k et l k est dépendant de l j, sont détachés de a, l i demeure toujours dépendant de l j ; (3) L ensemble des liens de l i (ou bien de M i par rapport à l objet a), dénoté par L(l i ) (ou bien b L a (M i )), contient eactement tous les l j dont l i est directement dépendant. 5. Graphes tpe pour objets (OTG) Nous roduisons ici une représentation graphique des tpes d objet. Les OTG sont basés sur les graphes orientés colorés. Les graphes complees sont construits à partir des graphes tpe de base, graphes tpe de fonctions, et les graphe tpe d objets. Nous commençons par quelques défitions. Défition 2 (Graphe Orienté Coloré) Un graphe orienté coloré G est un quadruplet (G N, G A, C, c) composé de : (1) un ensemble de sommets G N ; (2) un ensemble d arcs G A ; (3) un ensemble de couleurs C ; (4) une fonction couleur c : G N G A C, qui retourne la couleur d un arc ou d un sommet. En plus, nous défissons une fonction source sc : G A G N, et une fonction destation t : G A G N, qui génèrent respectivement la source et la destation d un arc. Un graphe tpe de base G est un graphe coloré aant un seul sommet. Sa couleur est un tpe de base. Les graphes tpe de base et les graphes tpe fonction forment les éléments de base pour construire des graphes complees. Défition 3 (Graphe Tpe Fonction) Un graphe tpe fonction G = (s, G 1, G 2 ) est un graphe orienté coloré qui consiste en un sommet s, appelé sommet race, et de deu sous-graphes G 1 et G 2, tels que : (1) c(s) = ; (2) il a deu arcs associés au sommet race s, l arc gauche l et l arc droit r, tels que c(l) =, c(r) = ; l lie G 1 à s par sc(l) = s G1, t(l) = s, et r lie s à G 2 par sc(r) = s, t(r) = s G2, où s G1 et s G2 sont les sommets race de G 1 et G 2, respectivement ; (3) G 1 et G 2 sont disjos ; (4) s il eiste un arc a dans G avec c(a) = rec, alors sc(a) = s Gi, t(a) = s, c(s Gi ) =, i = 1, 2. G 1 est le graphe tpe de l argument de la fonction et G 2 est le graphe tpe du résultat. Le graphe tpe fonction est formé par un sommet race s lié à G 1 par un arc de couleur et à G 2 par un arc de couleur. Défition 4 (Graphe Tpe Objet) Un graphe tpe objet O = (s, A, R, L, S) est un graphe coloré aant un sommet race s, un ensemble A d arcs méthode, un ensemble R d arcs colorés avec rec, un ensemble L d arcs lien, et un ensemble S de graphes tpe, tels que : (1) c(s) =. (2) a A, sc(a) = s, t(a) = s F pour un certa graphe tpe F S, et c(a) = m pour une certae couleur de méthode m ; c(a) c(b) pour a, b A, a b. (3) r R, c(r) = rec, t(r) = s, sc(r) = s F pour un certa F S, et c(s F ) =. (4) l L, sc(l) = s F, t(l) = s G pour un certa F, G S, et c(l) = bm pour une certae couleur d une méthode m.

8 198 RSTI - L objet 11/2005. LMO 05 Donc, un graphe tpe objet est formé par un sommet race et un ensemble S de graphes tpe avec chaque graphe tpe F S lié à s par un arc méthode allant de s à F. La couleur du sommet race est. Les erdépendances entre les méthodes sont spécifiées par les arcs de L. Si L(m) est l ensemble des liens de la méthode m, alors pour chaque l L(m) il eiste un arc coloré avec bm. Les tpes récursifs sont diqués par des arc appartenant à R. Eemples de graphes tpe objet Eemple 2 Dans la Figure 2, A, B, et C sont des graphes tpe pour les tpes de base,, et bool, respectivement. D est un graphe tpe pour un tpe fonction. E est le graphe tpe pour ( ) ( ). Eemple 3 Dans la Figure 3, le graphe A dénote l objet de tpe [ :, : ], où les méthodes et sont dépendantes l une de l autre. Le graphe B dénote le tpe [ :, ({}) : ] où dépend de. Notons que la direction des liens dans B va de à ce qui signifie que les modifications de la méthode affectent (l évaluation de). Le graphe C représente le tpe objet µ(t)ι(s)[a :, b : t, c : s] où les deu tpes objet récursif et les auto-tpes participent. La méthode a retourne une valeur de tpe ; la méthode b est de tpe objet récursif et retourne un objet de tpe C. La méthode c est de tpe auto-tpe duit par le tpe objet C. Ceci est diqué par la boucle partant du sommet s vers lui-même. Notons les différences structurelles entre les tpes objet récursifs et les auto-tpes. Le graphe D représente le tpe d un po mobile en une dimension [ = 1, mv = ς(s : S(D))λ(i : )s. s. + i]. Le fait que mv dépende de et retourne une version modifiée de lui-même est diqué par l arc coloré avec et l arc coloré par dans le graphe tpe D. Eemple 4 Deu graphes tpe objet sont eposés dans la Figure 4. Ils représentent d autres variations de tpes de pos. Le graphe A est le tpe de l objet : = 1, m 1 = ς(s:s(a)λ(i:)p m 2 = ς(s:s(a)λ(i:)s où p est un po de tpe A. Le graphe B est le tpe de l objet = 1 = 2 d = ς(s:s(b))(s. + s.)/2 e 1 = ς(s:s(b))λ(p:b)(p. = s. et. p. = s.) e 2 = ς(s:s(b))λ(p:s(b))(p. = s. et p. = s.)

9 Sous-tpage des objets 199 bool A B C D E Figure 2. Graphes Tpe de Base et Graphes Tpe Fonction s s a b c rec s mv A B C D Figure 3. Graphes Tpe Objet m1 m2 rec bm1 bool b d b e1 e2 b rec bool A B Figure 4. Graphes Tpe Objet

10 200 RSTI - L objet 11/2005. LMO Défitions du sous-tpage des objets Nous adoptons la théorie algébrique des grammaires [EHR 73] pour défir les notions de prémorphisme, base, fermuture des bases, et sous-tpage. Défition 5 (Prémorphisme de Graphe Tpe) Soit Φ l ensemble de tpes de base. Soient deu graphes orientés colorés G =(G N, G A, C, c) et G =(G N, G A, C, c ), un prémorphisme de graphe tpe f : G G est une paire de transformations (f N :G N G N, f A :G A G A ), telles que (1) a G A, f N (sc(a)) = sc (f A (a)), f N (t(a)) = t (f A (a)), et c(a) = c (f A (a)) ; (2) v G N, si c(v) Φ, alors c (f N (v)) Φ ; autrement c(v) = c (f N (v)). Ces prémorphismes préservent les directions et les couleurs des arcs et préservent les couleurs des sommets jusqu au tpes de base. G, dénotée par Ba(G), est le graphe (s, A, t(a), L) où t(a) = {t(a) a A}. Une sous-base de G est un sous-graphe (s, A, t(a ), L ) de Ba(G) où A A, L L, t(a ) = {t(a) a A }, et pour chaque l L il eiste a 1, a 2 A tels que sc(l) = t(a 1 ) et t(l) = t(a 2 ). La fermeture de la sous-base D = (s, A, t(a ), L ) d un graphe tpe objet G = (s, A, R, L, S), dénotée par Cl(D), est l union D E 1 E 2 où (1) E 1 = {l L a 1, a 2 A avec t(a 1 ) = sc(l), t(a 2 ) = t(l)}, et (2) E 2 = {l, h, a, t(l) l, h L, a A, a A, t(l) = sc(h) = t(a), et a 1, a 2 A tel que t(a 1 ) = sc(l), t(a 2 ) = t(h)}. Un eemple de base, sous-base, et fermeture est eposé dans la Figure 5. Le comportement d une méthode dans une sous-base peut non seulement affecter d autres méthodes dans la sous-base mais aussi affecter des méthodes en dehors. L idée de fermeture permet d eprimer le comportement total de la sous-base en cluant les méthodes, les liens, et les possibilités de dépendance directe ou directe. Une sous-base D est fermée si D = Cl(D). La fermeture est utilisée pour vérifier la spécification structurelle lors de la comparaison de deu graphes tpe objet dans le cas de sous-tpage. L autre spécification concernant le sous-tpage des objets est la variance. Étant donné un graphe tpe objet G = (s, A, R, L, S), pour chaque v t(a), si v n est pas cident à aucun par-arc ( b-arcs ) ou si v est un sommet destation d un par-arc, mais n est pas le sommet source d un par-arc, alors v est covariant ; autrement, v est variant. À la différence des sstèmes conventionnels de tpes qui prédéfissent la variance (c est soit variant, soit variant), la variance dans OTG est détermée par les erdépendances des méthodes. Un objet peut contenir des méthodes covariantes aussi bien qu variantes. Ceci nous amène à roduire ce nouveau sous-tpage ( variance-par-nécessité ) dans lequel le sous-tpage covariant et le sous-tpage variant co-eistent dans le même cas. Nous commençons par défir le sous-tpage des objets par les défitions des sous-tpages des objets de base et des fonctions. Soient deu graphes tpe de base G et F, F <: G si et seulement si c(s F ) <: c(s G ), où s F et s G sont des sommets simples dans F et G respectivement. Soient deu graphes tpe fonction G = (s G, G 1, G 2 ) et F = (s F, F 1, F 2 ), F <: G si et seulement si G 1 <: F 1 et F 2 <: G 2.

11 Sous-tpage des objets 201 n m u z u z b bz b bz (a) G (b) Ba(G) u b u (c) D (d) Cl(D) Figure 5. (a) Graphe Tpe Objet G ; (b) La Base Ba(G) de G ; (c) Une sous-base D de G ; (d) La Fermeture Cl(D) Défition 6 (Sous-tpage des objets) Soient deu graphes tpe objet G = (s G, A G,, L G, S G ) et F =(s F, A F,, L F, S F ). F <: G si et seulement si les conditions suivantes sont satisfaites : (1) il eiste un préisomorphisme f de la base Ba(G) à la base Ba(F ) tel que f(ba(g)) = Cl(f(Ba(G))) (c est-à-dire, f(ba(g)) est fermée) ; (2) Pour chaque sommet v dans f(ba(g)), soient u son pré-image dans Ba(G) sous f, F v S F le graphe tpe avec v pour sommet race, et G u S G le graphe tpe avec u pour sommet race : (i) si v est variant, alors F v = Gu ; (ii) si v est covariant, alors F v <: G u. L idée prcipale ici est que F <: G si (a) F possède tes les méthodes que G a ; (b) les erdépendances entre les méthodes de G sont les mêmes que celles entre les méthodes de F qui leur correspondent (ceci est assuré par le prémorphisme f et la propriété de fermeture de l image de la base de G sous f) ; (c) les tpes de méthodes de G sont comparés récursivement au tpes des méthodes correspondantes de F. La comparaison peut être variante, variante, ou une combaison des deu selon la variance de chaque méthode. Dans le cas des tpes récursifs, le dépliage des graphes est nécessaire pour pouvoir effectuer le sous-tpage.

12 202 RSTI - L objet 11/2005. LMO 05 l l 1 2 g l1 l 2 v v 1 2 T 2 1 T Figure 6. Graphes Tpe de o 1 et o 2 Pour illustrer nos défitions, nous présentons ici plusieurs eemples. Dans notre discussion, nous comparons OTG au autres sstèmes de tpes en soulignant les avantages de OTG. Nous commençons par montrer la simplicité de OTG en adressant les problèmes du sstème conventionnel. Eemple 5 Le premier problème est que dans les sstèmes conventionnels de tpes, le tpage covariant des enregistrements est perdu quand les enregistrements sont considérés en tant qu objets. Ceci crée un trou dans la théorie des objets. L homomorphisme de Re à Ob ne peut pas être établi. Sous OTG, cette covariance est maenue. Les enregistrements sont des cas spéciau d objets sans erdépendance parmi leurs méthodes. Asi, les graphes tpe n ont pas de liens et chaque méthode est covariante dans le sous-tpage. Par eemple, soient les enregistrements r 1 = l 1 = 1, l 2 = 2 et r 2 = l 1 = 1.0, l 2 = 2.0 transformés en objets o 1 = [l 1 = 1, l 2 = 2], o 2 = [l 1 = 1.0, l 2 = 2.0]. Les graphes tpe de o 1 et o 2 sont illustrés dans la Figure 6 par T 1 et T 2. Il eiste un prémorphisme g de T 2 à T 1 et les deu sommets v 1 et v 2 sont covariants parce qu ils ne sont pas cidents à aucun par-arc (b-arc). Asi, T 1 <: T 2 est facilement établie (nous supposons <: ). Le cas général peut être démontré de façon similaire en analsant les graphes tpe. Le sous-tpage sous OTG implante l homomorphisme et assure la commutativité du diagramme 1. Eemple 6 Le deuième problème est la fonction m1d. Cette fonction est construite dans OTG de façon fiable. Les tpes de p 1, p 2, et p 2 sont Q 1, Q 2, et Q 2, respectivement (Figure 7). La fonction m1d est : m1d = λ(p : Q 1 )((p.mv(1)).dist) Dans OTG, vérifier que Q 2 <: Q 1 est très simple. Ceci implique que le tpage de m1d(p 2 ) est correct. Mais Q 2 : Q 1 parce que l image f(ba(q 1 )) de la base de

13 Sous-tpage des objets 203 dist mv b dist mv mv b dist b mv mv b Q1 Q 2 Q 2 Figure 7. Q 1, Q 2, et Q 2 sont les tpes de p 1, p 2, et p 2 respectivement Q 1 sous le prémorphisme f de Ba(Q 1 ) à Ba(Q 2 ) n est pas fermée (f(ba(q 1)) Cl(f(Ba(Q 1 )))). Par conséquent, la possibilité pour m1d de prendre le po p 2 :Q 2 est élimée, évitant asi des résultats erronés. Eemple 7 Dans le cas de l eemple 5, nous observons que OTG relae le soustpage variant permettant asi le sous-tpage covariant. L eemple suivant montre que l variance est adoptée par OTG lorsque c est nécessaire. Soit l objet : a = [ ] = 1 = ς(s:s(a))( s. )! où et! sont les fonctions valeur absolue et factorielle. Le tpe de cet objet est représenté par le graphe A dans la Figure 8(a). Notons l eistence du par-arc (b-arc) allant de u à v. Donc, le noeud u est variant ce qui signifie que la méthode est variante. Pour apprécier la nécessité de cette variance, supposons que u est covariant, alors le tpe de A serait un sous-tpe de B (Figure 8(b)) et a:b par subsomption. La méthode de a peut être mise à jour avec une valeur réelle (1.2 par eemple) pour produire un autre objet : b = [ ] = 1.2. = ς(s:s(a))( s. )! Cependant, une erreur du calcul b. = ( 1.2 )! s ensuit parce que la valeur de l objet n appartient pas au domae de la fonction. Ceci est la raison prcipale qui motive l utilisation de sous-tpage variant dans les sstèmes conventionnels [ABA 96]. Dans le sous-tpage de OTG, la propriété de variance de chaque méthode est détermée par les liens. Le sous-tpage est déduit conformément. Dans cet eemple, la méthode est variante et la méthode est covariante. Discussion Soient deu méthodes et dans un graphe tpe objet. Nous avons à considérer quatre cas de dépendance entre et : (a) il n eiste aucun lien entre elles ; (b) il a un lien de à, mais pas de lien de à ( dépend de mais ne dépend pas de ) ; (c) il a un lien de à, mais pas de lien de à ( dépend de

14 204 RSTI - L objet 11/2005. LMO 05 A B u v (a) (b) Figure 8. (a) Le tpe de a. (b) Un tpe ne pouvant pas être un supertpe de A A B C D Figure 9. Cas prcipau des liens mais ne dépend pas de ) ; (d) il a un lien de à et un lien de à. ( et dépendent l un de l autre). Ces cas sont représentés dans la Figure 9 par les graphes tpe A, B, C, et D respectivement. Nous démontrons que chaque cas est différent des autres. Si B est considéré comme le même tpe (ou un sous-tpe de) A, alors on roduirait une erreur dans l eemple des pos mobiles. Proposition 1 Soit un graphe tpe objet A dans lequel il a un lien entre deu méthodes et. Soit le graphe tpe objet B obtenu de A en supprimant tous les liens dans A. On ne peut avoir ni A = B ni A <: B. Si nous considérons A comme le même tpe (sous-tpe) que B, alors nous offrons la possibilité à un objet dont les composants sont dépendants les uns des autres d être

15 Sous-tpage des objets 205 vu comme un objet dont les composants sont dépendants. Comme précédemment, ce cas donnera des résultats erronés. Par eemple, soit : ed 1 = dall = code for dall button = ς(s:s(e 1 ))s.dall ed 2 = dall = code for dall button = ς(s:s(e 2 ))s.dall s.dall ed 3 = dall = code for dall button = ς(s:s(e 3 ))() ed 4 = dall = code for dall button = ς(s:s(e 4 ))() () ce = λ(:e 1 ).button où ed i :E i sont des objets d un éditeur, et ce est une fonction qui prend un objet d un éditeur et vide sa mémoire tampon. Pour tous les ed i, dall est une méthode privée qui appelle des services ernes pour supprimer tous les dépouillements de la mémoire tampon. La suppression se faisant par effet secondaire, nous supposons que le résultat retourné par dall est () avec tpe unit (comme en ML). De plus, nous supposons qu il a une opération addition associée à l unité () telle que () () donne comme valeur (). La méthode button dans tous les objets est publique, et une fois qu on appuie sur le bon, elle est supposée appeler dall pour effectuer la suppression. Notons que la méthode button est implantée de façon différente dans chacun des quatre objets : dans ed 1 et ed 2, le bon (button) appelle dall une fois et deu fois respectivement ; dans ed 3 et ed 4, le bon n appelle pas dall. En ce qui concerne les liens, il a un lien de dall à button dans ed 1 et ed 2, mais aucun lien n eiste dans ed 3 et ed 4. Évidemment, ce(ed 1 ) et ce(ed 2 ) nettoient les mémoires tampon de ed 1 et ed 2 comme prévu (si on permet E 2 <: E 1 ), mais ce(ed 3 ) et ce(ed 4 ) ne réussiront pas à accomplir cette tâche (si on permet E 3 <: E 1 et E 4 <: E 1 ) produisant asi une erreur. Ceci nous force à ne pas prendre E 3 et E 4 comme sous-tpes de E 1, et à énoncer la proposition suivante. Proposition 2 Soit un graphe tpe objet A dans lequel il a un lien entre deu méthodes et. Soit le graphe tpe objet B obtenu de A en supprimant tous les liens dans A. On ne peut avoir ni A = B ni B <: A. Les autres cas (Figure 9) peuvent être adressés facilement en utilisant les deu propositions. 7. Conclusion T sstème de tpes devrait traiter les enregistrements et les objets de façon uniforme t en tenant compte des erdépendances parmi les composants des objets.

16 206 RSTI - L objet 11/2005. LMO 05 Ceci n est pas le cas des sstèmes conventionnels, ce qui mène soit à des erreurs, soit à des restrictions de la variance. Pour éviter ces erreurs et ces restrictions, nous avons défi le sstème de tpes OTG. OTG est basé sur la théorie des graphes et permet d eprimer les erdépendances à l aide de liens. Asi les relations entre deu tpes sont détermées par les tpes de leurs composants et les liens parmi leurs méthodes. Dans ce sstème nous avons discuté les différentes formes de sous-tpage. En comparant OTG avec les sstèmes conventionnels, nous avons démontré que le tpage sous OTG est non seulement sûr, mais aussi plus fleible. 8. Bibliographie [ABA 96] ABADI M., CARDELLI L., A Theor of Objects, Sprger-Verlag, New York, [BON 95] BONO V., LIQUORI L., «A Subtpg for the Fisher-Honsell-Mitchell Lambda Calculus of Objects», Proc. of CSL, International Conference of Computer Science Logic, n o 933 Lecture Notes Computer Science, p , Srger Verlag, [BRU 94] BRUCE K., «A paradigmatic Object-Oriented Programmg Language : Design, Static Tpg and Semantics», Journal of Functional Programmg, vol. 4, n o 2, 1994, p [CAR 91] CARDELLI L., MITCHELL J., «Operations of Records», Mathematical Structures Computer Science, vol. 1, n o 1, 1991, p [CAS 95] CASTGNA G., «Covariance and Contravariance : Conflict with a Cause», ACM TOPLAS, vol. 17, 1995, p [COO 90] COOK W., HILL W., CANNING P., «Inheritance is not Subtpg», Proceedgs of the 17the Annual ACM Smposium on Prciples of Programmg Languages, 1990, p [EHR 73] EHRIG H., PFENDER M., SCHNEIDER H. J., «Graph grammars : An algebraic approach», IEEE Conference of Automata and Switchg Theor, 1973, p [FIS 94] FISHER K., HONSELL F., MITCHELL J., «A Lambda Calculus of Objects and Method Specialization», Nordic Journal of Computg, vol. 1, 1994, p [HIC 02] HICKEY J., Introduction to O Caml, http ://caml.ria.fr/tutorials-eng.html, [LIQ 96] LIQUORI L., CASTAGNA G., «A Tped Lambda Calculus of Objects», N o 1179 Lecture Notes Computer Science, p , Srger Verlag, [LIQ 98] LIQUORI L., «On Object Etension», ECOOP 98 Object-oriented Programmg, n o 1445 Lecture Notes Computer Science, p , Srger Verlag, 1998.

Partie I : Automates et langages

Partie I : Automates et langages 2 Les calculatrices sont interdites. N.B. : Le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut

Plus en détail

Une extension pour RDF/RDFS utilisant des relations procédurales

Une extension pour RDF/RDFS utilisant des relations procédurales Une extension pour RDF/RDFS utilisant des relations procédurales Jean-François Baget * * INRIA Sophia-Antipolis & LIRMM(CNRS - UM2) LIRMM, 161 rue Ada, 34392 Montpellier Cedex 5 baget@lirmm.fr RÉSUMÉ.

Plus en détail

UNIVERSITE D ORLEANS SL01MA11, Groupes 1 et 5 Département de Mathématiques 2009-2010. N. El Hage Hassan S EXPRIMER EN MATHÉMATIQUES

UNIVERSITE D ORLEANS SL01MA11, Groupes 1 et 5 Département de Mathématiques 2009-2010. N. El Hage Hassan S EXPRIMER EN MATHÉMATIQUES UNIVERSITE D ORLEANS SL01MA11, Groupes 1 et 5 Département de Mathématiques 2009-2010 N. El Hage Hassan S EXPRIMER EN MATHÉMATIQUES 1 Les énoncés La plupart des phrases que l on rencontre dans un livre

Plus en détail

Théorie des Langages

Théorie des Langages Théorie des Langages Automates Claude Moulin Université de Technologie de Compiègne Printemps 2013 Sommaire 1 Automate fini 2 Automate et langages réguliers 3 Automate à pile Automate fini déterministe

Plus en détail

Option Informatique Arbres binaires équilibrés

Option Informatique Arbres binaires équilibrés Option Informatique Arbres binaires équilibrés Sujet novembre 2 Partie II : Algorithmique et programmation en CaML Cette partie doit être traitée par les étudiants qui ont utilisé le langage CaML dans

Plus en détail

Arbres binaires et codage de Huffman

Arbres binaires et codage de Huffman MP Option Informatique Premier TP Caml Jeudi 8 octobre 2009 Arbres baires et codage de Huffman 1 Arbres baires Soit E un ensemble non vide. On défit la notion d arbre baire étiqueté (aux feuilles) par

Plus en détail

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au

Plus en détail

Exo7. Limites de fonctions. 1 Théorie. 2 Calculs

Exo7. Limites de fonctions. 1 Théorie. 2 Calculs Eo7 Limites de fonctions Théorie Eercice Montrer que toute fonction périodique et non constante n admet pas de ite en + Montrer que toute fonction croissante et majorée admet une ite finie en + Indication

Plus en détail

Programmation, partiel: sémantique d un tableur

Programmation, partiel: sémantique d un tableur Programmation, partiel: sémantique d un tableur Recommandations. Votre copie (papier ou électronique) devra être lisible et bien structurée. La note tiendra compte autant du fond que de la présentation.

Plus en détail

Arbres binaires de recherche et arbres rouge noir

Arbres binaires de recherche et arbres rouge noir Institut Galilée lgo, rbres, Graphes I nnée 006-007 License rbres binaires de recherche et arbres rouge noir Rappels de cours et correction du TD rbres binaires de recherche : définitions Un arbre binaire

Plus en détail

Ensembles et applications. Motivations. Exo7

Ensembles et applications. Motivations. Exo7 o7 nsembles et applications Vidéo partie 1. nsembles Vidéo partie 2. Applications Vidéo partie 3. Injection, surjection, bijection Vidéo partie 4. nsembles finis Vidéo partie 5. Relation d'équivalence

Plus en détail

Chapitre 4 Modélisation et Conception de BD

Chapitre 4 Modélisation et Conception de BD Pourquoi une modélisation préalable? Chapitre 4 Modélisation et Conception de BD Il est difficile de modéliser un domaine sous une forme directement utilisable par un SGBD. Stockage physique Cohérence/intégrité

Plus en détail

Concours 2015 Épreuve d Informatique Filière : MP Durée de l épreuve : 3 heures. L utilisation d une calculatrice est autorisée.

Concours 2015 Épreuve d Informatique Filière : MP Durée de l épreuve : 3 heures. L utilisation d une calculatrice est autorisée. A 2015 INFO. MP École des Ponts ParisTech, SUPAERO (ISAE), ENSTA ParisTech, Télécom ParisTech, Mines ParisTech, Mines de Saint-étienne, Mines Nancy, Télécom Bretagne, ENSAE ParisTech (filière MP), École

Plus en détail

Chapitre 2 Modélisation de bases de données

Chapitre 2 Modélisation de bases de données Pourquoi une modélisation préalable? Chapitre 2 Modélisation de bases de données 1. Première étape : le modèle conceptuel Eemple : le modèle Entités-Associations (E/A) 2. Deuième étape : le modèle Traduction

Plus en détail

Calculs préliminaires.

Calculs préliminaires. MINES-PONTS 005. Filière MP. MATHÉMATIQES 1. Corrigé de JL. Lamard jean-louis.lamard@prepas.org) Calculs préliminaires. Notons que si f H alors f)e / est bien intégrable sur R car continue positive et

Plus en détail

La mesure de Lebesgue sur la droite réelle

La mesure de Lebesgue sur la droite réelle Chapitre 1 La mesure de Lebesgue sur la droite réelle 1.1 Ensemble mesurable au sens de Lebesgue 1.1.1 Mesure extérieure Définition 1.1.1. Un intervalle est une partie convexe de R. L ensemble vide et

Plus en détail

Support du cours de Probabilités IUT d Orléans, Département d informatique

Support du cours de Probabilités IUT d Orléans, Département d informatique Support du cours de Probabilités IUT d Orléans, Département d informatique Pierre Andreoletti IUT d Orléans Laboratoire MAPMO (Bât. de Mathématiques UFR Sciences) - Bureau 126 email: pierre.andreoletti@univ-orleans.fr

Plus en détail

Analyse de la variance à deux facteurs

Analyse de la variance à deux facteurs 1 1 IRMA, Université Louis Pasteur Strasbourg, France Master 1 Psychologie du développement 06-10-2008 Contexte Nous nous proposons d analyser l influence du temps et de trois espèces ligneuses d arbre

Plus en détail

Le raisonnement par récurrence

Le raisonnement par récurrence Le raisonnement par récurrence Nous notons N l ensemble des entiers naturels : N = {0,,, } Nous dirons naturel au lieu de entier naturel Le principe du raisonnement par récurrence Soit A une partie de

Plus en détail

+ 1. Qu est ce que cela donne pour notre calcul de 1,01? On pose x = 1,01 donc f (x) 1 + 1 0,01

+ 1. Qu est ce que cela donne pour notre calcul de 1,01? On pose x = 1,01 donc f (x) 1 + 1 0,01 Eo7 Dérivée d une fonction Vidéo partie. Définition Vidéo partie. Calculs Vidéo partie 3. Etremum local, théorème de Rolle Vidéo partie 4. Théorème des accroissements finis Eercices Fonctions dérivables

Plus en détail

Limites finies en un point

Limites finies en un point 8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,

Plus en détail

Introduction. Chapitre 1. 1.1 Introduction. 1.1.1 Bibliothèques. 1.1.2 Programmation de Haute Qualité

Introduction. Chapitre 1. 1.1 Introduction. 1.1.1 Bibliothèques. 1.1.2 Programmation de Haute Qualité Chapitre 1 Introduction Buts du chapitre : Motivation pour l étude des types abstraits de données ; Syntaxe de base pour l écriture de spécifications. 1.1 Introduction 1.1.1 Bibliothèques 1. L3, déjà une

Plus en détail

Épreuve d informatique 2011

Épreuve d informatique 2011 A 2011 INFO. MP ÉCOLE NATIONALE DES PONTS ET CHAUSSÉES, ÉCOLES NATIONALES SUPÉRIEURES DE L AÉRONAUTIQUE ET DE L ESPACE, DE TECHNIQUES AVANCÉES, DES TÉLÉCOMMUNICATIONS, DES MINES DE PARIS, DES MINES DE

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

Plus en détail

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme Chapitre 3 Quelques fonctions usuelles 1 Fonctions logarithme et eponentielle 1.1 La fonction logarithme Définition 1.1 La fonction 7! 1/ est continue sur ]0, +1[. Elle admet donc des primitives sur cet

Plus en détail

Enveloppes convexes dans le plan

Enveloppes convexes dans le plan ÉCOLE POLYTECHNIQUE ÉCOLES NORMALES SUPÉRIEURES ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE B (XECLR)

Plus en détail

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3 I Arbres binaires 2014-2015 Table des matières 1 Rappels 2 1.1 Définition................................................ 2 1.2 Dénombrements............................................ 2 1.3 Parcours.................................................

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance de cours/td Université Paris-Diderot Objectifs: Découverte du type String. Comprendre qu il y a des types différents. Maîtriser les expressions booléennes dans

Plus en détail

Tension d alimentation : V CC. i C R C R B

Tension d alimentation : V CC. i C R C R B Chapitre 4 Polarisation du transistor bipolaire à jonction 4.1 Le problème de la polarisation 4.1.1 Introduction Dans le chapitre 3, nous avons analysé un premier exemple de circuit d amplification de

Plus en détail

Chapitre 2 Le problème de l unicité des solutions

Chapitre 2 Le problème de l unicité des solutions Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)

Plus en détail

11. Tests d hypothèses (partie 1/2)

11. Tests d hypothèses (partie 1/2) 11. Tests d hypothèses (partie 1/2) MTH2302D S. Le Digabel, École Polytechnique de Montréal H2015 (v1) MTH2302D: tests d hypothèses 1/30 Plan 1. Introduction 2. Hypothèses et erreurs 3. Tests d hypothèses

Plus en détail

Devoir surveillé n 1 : correction

Devoir surveillé n 1 : correction E1A-E1B 013-01 Devoir surveillé n 1 : correction Samedi 8 septembre Durée : 3 heures. La calculatrice est interdite. On attachera une grande importance à la qualité de la rédaction. Les questions du début

Plus en détail

Groupes et Actions de groupes. 1 Groupes, morphismes et actions de groupes.

Groupes et Actions de groupes. 1 Groupes, morphismes et actions de groupes. Groupes et Actions de groupes On présente ici des notions de base de théorie des groupes pour l agrégation interne. 1 Groupes, morphismes et actions de groupes. Un groupe (G, ), ou plus simplement G, est

Plus en détail

Mini-Projet de Prolog : Solver de Sudoku

Mini-Projet de Prolog : Solver de Sudoku UNIVERSITE François Rabelais TOURS Polytech Tours-Département Informatique 64, Avenue Jean Portalis 37200 TOURS Mini-Projet de Prolog : Solver de Sudoku Encadré par : Présenté par : M. J-L Bouquard Florent

Plus en détail

Le jeu de Marienbad. 1 Écriture binaire d un entier

Le jeu de Marienbad. 1 Écriture binaire d un entier MPSI Option Informatique Année 2002, Quatrième TP Caml Vcent Simonet (http://cristal.ria.fr/~simonet/) Le jeu de Marienbad Dans le film d Ala Resnais «L année dernière à Marienbad» (1961), l un des personnages,

Plus en détail

MATHÉMATIQUES ET SCIENCES HUMAINES

MATHÉMATIQUES ET SCIENCES HUMAINES MATHÉMATIQUES ET SCIENCES HUMAINES B. MARCHADIER Dépendance et indépendance de deux aléas numériques images Mathématiques et sciences humaines, tome 25 (1969), p. 2534.

Plus en détail

Théorie des langages. Automates à pile. Elise Bonzon http://web.mi.parisdescartes.fr/ bonzon/ elise.bonzon@parisdescartes.

Théorie des langages. Automates à pile. Elise Bonzon http://web.mi.parisdescartes.fr/ bonzon/ elise.bonzon@parisdescartes. Automates à pile Elise Bonzon http://web.mi.parisdescartes.fr/ bonzon/ elise.bonzon@parisdescartes.fr 1 / 62 Automates à pile Introduction Rappels sur les piles Automates à pile : définition Automates

Plus en détail

Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position

Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position Plan du cours : Le problème : naviguer efficacement une structure de données Ce qui ne marche pas Ce qui marche : les de Huet Exemples Comment dériver des pour tout type de données Pour en savoir plus

Plus en détail

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures)

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures) L2 - lgorithmique et structures de données (nnée 2010/2011) Delacourt, Phan Luong, Poupet xamen (2 heures) Les documents (cours, TD, TP) sont autorisés. Les quatre exercices sont indépendants. À la fin

Plus en détail

Sélection de variables groupées avec les forêts aléatoires. Application à l analyse des données fonctionnelles multivariées.

Sélection de variables groupées avec les forêts aléatoires. Application à l analyse des données fonctionnelles multivariées. Sélection de variables groupées avec les forêts aléatoires. Application à l analyse des données fonctionnelles multivariées. Baptiste Gregorutti 12, Bertrand Michel 2 & Philippe Saint Pierre 2 1 Safety

Plus en détail

Fiche pour les étudiants «Comment répondre à une question à développement?»

Fiche pour les étudiants «Comment répondre à une question à développement?» VOLUME 11, NO 1 AUTOMNE 2012 Cégep de Rimouski Développement pédagogique Annexe 2 du Pédagotrucs no 40 Fiche pour les étudiants «Comment répondre à une question à développement?» Voici un guide qui t aidera

Plus en détail

Introduction au débogage avec Eclipse

Introduction au débogage avec Eclipse Introduction au débogage avec Eclipse C. Pain-Barre et H. Garreta IUT INFO Année 2006-2007 1 Notion de debogage Tout développeur est confronté un jour à un programme qui plante pour une raison apparemment

Plus en détail

Construction d un cercle tangent à deux cercles donnés.

Construction d un cercle tangent à deux cercles donnés. Préparation au CAPES Strasbourg, octobre 2008 Construction d un cercle tangent à deux cercles donnés. Le problème posé : On se donne deux cercles C et C de centres O et O distincts et de rayons R et R

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

ORDRE DE RÉACTION : MÉTHODES DE

ORDRE DE RÉACTION : MÉTHODES DE ORDRE DE RÉACTION : MÉTHODES DE RÉSOLUTION Table des matières 1 Méthodes expérimentales 2 1.1 Position du problème..................................... 2 1.2 Dégénérescence de l ordre...................................

Plus en détail

Solutions du Concours Fryer 2003

Solutions du Concours Fryer 2003 Concours canadien de mathématiques Une activité du Centre en mathématiques et en Université de Waterloo, Waterloo, Ontario Solutions du Concours Fryer 2003 (9 e année) (Secondaire III au Québec) pour les

Plus en détail

2.1. Les fonctions. Les fonctions se définissent de la manière suivante : NomDeLaFonction(param1, param2,...)= { \\ Code de la fonction

2.1. Les fonctions. Les fonctions se définissent de la manière suivante : NomDeLaFonction(param1, param2,...)= { \\ Code de la fonction TP1, prise en main de Pari/GP et arithmétique Le programme que nous allons utiliser pour les TP se nomme PARI/GP dont le point fort est la théorie des nombres (au sens large). Il est donc tout à fait adapter

Plus en détail

Continuité d une fonction de plusieurs variables

Continuité d une fonction de plusieurs variables Chapitre 2 Continuité d une fonction de plusieurs variables Maintenant qu on a défini la notion de limite pour des suites dans R n, la notion de continuité s étend sans problème à des fonctions de plusieurs

Plus en détail

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin. Exo7 Matrice d une application linéaire Corrections d Arnaud odin. Exercice Soit R muni de la base canonique = ( i, j). Soit f : R R la projection sur l axe des abscisses R i parallèlement à R( i + j).

Plus en détail

CONDITIONS NÉCESSAIRES ET DÉPENDANCE EXISTENTIELLE

CONDITIONS NÉCESSAIRES ET DÉPENDANCE EXISTENTIELLE CONDITIONS NÉCESSAIRES ET DÉPENDANCE EXISTENTIELLE Introduction Le concept de condition nécessaire est largement utilisé en philosophie, quelquefois explicitement pour définir d autres concepts importants.

Plus en détail

Chapitre 1: Introduction au calcul des probabilités, cas d un univers fini.

Chapitre 1: Introduction au calcul des probabilités, cas d un univers fini. Chapitre 1: Introduction au calcul des probabilités, cas d un univers fini. 1 Introduction Des actions comme lancer un dé, tirer une carte d un jeu, observer la durée de vie d une ampoule électrique, etc...sont

Plus en détail

Exercice 2. Exercice 3

Exercice 2. Exercice 3 Feuille d eercices n 10 Eercice 1 Une voiture parcours 150 km. Elle effectue une première partie du trajet à la vitesse moyenne de 80 km/h. On notera la longueur de cette partie, eprimée en km Suite à

Plus en détail

TS Physique D Aristote à aujourd hui Exercice résolu

TS Physique D Aristote à aujourd hui Exercice résolu P a g e 1 TS Physique Eercice résolu Enoncé -34 avant JC : Aristote déclare qu une masse d or, de plomb ou de tout autre corps pesant tombe d autant plus vite qu elle est plus grosse et, en particulier,

Plus en détail

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 11 : Arbre couvrant Prétraitement Benjamin Wack 2015-2016 1 / 32 La dernière fois Rappels sur les graphes Problèmes classiques Algorithmes d optimisation

Plus en détail

EXAMEN FINAL. 2 Février 2006-2 heures Aucun document autorisé

EXAMEN FINAL. 2 Février 2006-2 heures Aucun document autorisé MIE - E ANNÉE ALGORITHMIQUE GÉNÉRALE Vincent Mousseau EXAMEN FINAL Février 006 - heures Aucun document autorisé Exercice : On s intéresse à la gestion informatique des réservations sur l année d une salle

Plus en détail

Théorie des Langages Formels Chapitre 5 : Automates minimaux

Théorie des Langages Formels Chapitre 5 : Automates minimaux Théorie des Langages Formels Chapitre 5 : Automates minimaux Florence Levé Florence.Leve@u-picardie.fr Année 2015-2016 1/29 Introduction Les algorithmes vus précédemment peuvent mener à des automates relativement

Plus en détail

Points fixes de fonctions à domaine fini

Points fixes de fonctions à domaine fini ÉCOLE POLYTECHNIQUE ÉCOLE NORMALE SUPÉRIEURE DE CACHAN ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION 2013 FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE

Plus en détail

Polytechnique. Épreuve d Informatique 1998

Polytechnique. Épreuve d Informatique 1998 Polytechnique Épreuve d Informatique 1998 Corrigé rédigé par Martine Lannaud, Lycée Chaptal, Paris Pour toute remarque ou correction martine.lannaud@prepas.org Motifs et automates Question 1. Quelques

Plus en détail

Simulation d un système d assurance automobile

Simulation d un système d assurance automobile Simulation d un système d assurance automobile DESSOUT / PLESEL / DACHI Plan 1 Introduction... 2 Méthodes et outils utilisés... 2.1 Chaines de Markov... 2.2 Méthode de Monte Carlo... 2.3 Méthode de rejet...

Plus en détail

Systèmes linéaires. 1. Introduction aux systèmes d équations linéaires. Exo7. 1.1. Exemple : deux droites dans le plan

Systèmes linéaires. 1. Introduction aux systèmes d équations linéaires. Exo7. 1.1. Exemple : deux droites dans le plan Exo7 Systèmes linéaires Vidéo partie 1. Introduction aux systèmes d'équations linéaires Vidéo partie 2. Théorie des systèmes linéaires Vidéo partie 3. Résolution par la méthode du pivot de Gauss 1. Introduction

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

Pia Murgat, Christophe Duquesne, Aurige. Marc Florisson, Michel Etienne, Patrick Gendre

Pia Murgat, Christophe Duquesne, Aurige. Marc Florisson, Michel Etienne, Patrick Gendre CHOUETTE Maintenance, accompagnement et recette de logiciels pour les échanges de données multimodales Agence française pour l'information multimodale et la billettique Le processus de validation de données

Plus en détail

NOTES DE COURS (SUPPLÉMENTAIRES) POUR LE COURS MATHÉMATIQUES DISCRÈTES MAT1500. References

NOTES DE COURS (SUPPLÉMENTAIRES) POUR LE COURS MATHÉMATIQUES DISCRÈTES MAT1500. References NOTES DE COURS (SUPPLÉMENTAIRES) POUR LE COURS MATHÉMATIQUES DISCRÈTES MAT1500 ABRAHAM BROER References [R] Kenneth H. Rosen, Mathématiques discrètes, Édition révisée Chenelière McGraw-Hill, 2002. 1. But

Plus en détail

Les types utilisateurs (VBA) Corrigé

Les types utilisateurs (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 2 avril mai 2013 Corrigé Résumé Ce document décrit comment traduire en VBA les types utilisateur du langage algorithmique. Table des matières

Plus en détail

Projet de Programmation Fonctionnelle

Projet de Programmation Fonctionnelle Projet de Programmation Fonctionnelle L objectif de ce projet est de concevoir, en Objective Caml, un évaluateur pour le langage mini-ml (un sous ensemble du langage Objective Caml). Votre programme devra

Plus en détail

Algèbre Année 2007-2008 ENS Cachan Vincent Beck. Action de groupes

Algèbre Année 2007-2008 ENS Cachan Vincent Beck. Action de groupes Algèbre Année 2007-2008 ENS Cachan Vincent Beck Action de groupes L idée centrale de cette note est de mettre en évidence le fait fondamental suivant une action d un groupe G sur un ensemble X, «c est»

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

MATHÉMATIQUES TERMINALE ES A. YALLOUZ. Ce polycopié conforme au programme 2002, regroupe les documents distribués aux élèves en cours d année.

MATHÉMATIQUES TERMINALE ES A. YALLOUZ. Ce polycopié conforme au programme 2002, regroupe les documents distribués aux élèves en cours d année. MATHÉMATIQUES TERMINALE ES A. YALLOUZ Ce polcopié conforme au programme 00, regroupe les documents distribués au élèves en cours d année. Année 0-0 Année 0-0 T le ES A. YALLOUZ (MATH@ES) TABLE DES MATIÈRES

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

Exemple 4.4. Continuons l exemple précédent. Maintenant on travaille sur les quaternions et on a alors les décompositions

Exemple 4.4. Continuons l exemple précédent. Maintenant on travaille sur les quaternions et on a alors les décompositions Exemple 4.4. Continuons l exemple précédent. Maintenant on travaille sur les quaternions et on a alors les décompositions HQ = He 1 He 2 He 3 He 4 HQ e 5 comme anneaux (avec centre Re 1 Re 2 Re 3 Re 4

Plus en détail

Python et la Programmation fonctionnelle. Programmation fonctionnelle 3. Programmation fonctionnelle pure 4. Matthieu Amiguet

Python et la Programmation fonctionnelle. Programmation fonctionnelle 3. Programmation fonctionnelle pure 4. Matthieu Amiguet Python et la Programmation fonctionnelle Matthieu Amiguet 2009 2010 1 Programmation fonctionnelle? 2 3 Lambda expressions 4 5 Programmation fonctionnelle? Programmation fonctionnelle 3 L expression programmation

Plus en détail

Applications linéaires

Applications linéaires Applications linéaires I) Applications linéaires - Généralités 1.1) Introduction L'idée d'application linéaire est intimement liée à celle d'espace vectoriel. Elle traduit la stabilité par combinaison

Plus en détail

1 Une simple histoire de production, et déjà des calculs

1 Une simple histoire de production, et déjà des calculs Université François Rabelais - L AES Cours d Economie Générale Enoncé du TD n 7 Automne 202 Une simple histoire de production, et déjà des calculs Vous considérez dans cet exercice une firme qui a la possibilité

Plus en détail

Autour du cardinal d un ensemble de matrices binaires

Autour du cardinal d un ensemble de matrices binaires Autour du cardinal d un ensemble de matrices binaires Adrien REISNER 1 Abstract. We here study a couple of algebraic and analytic properties of certain binary matrices in the spaces M n(r). In particular,

Plus en détail

Module et argument d un nombre complexe. Interprétation géométrique, lignes de niveau associées. Applications

Module et argument d un nombre complexe. Interprétation géométrique, lignes de niveau associées. Applications Module et argument d un nombre complexe. Interprétation géométrique, lignes de niveau associées. Applications Introduction : Cette leçon s inscrit dans la continuité de la précédente. On supposera connu

Plus en détail

Modèle de troncature gauche : Comparaison par simulation sur données indépendantes et dépendantes

Modèle de troncature gauche : Comparaison par simulation sur données indépendantes et dépendantes de troncature gauche : Comparaison par simulation sur données indépendantes et dépendantes Zohra Guessoum 1 & Farida Hamrani 2 1 Lab. MSTD, Faculté de mathématique, USTHB, BP n 32, El Alia, Alger, Algérie,zguessoum@usthb.dz

Plus en détail

Second degré : Résumé de cours et méthodes

Second degré : Résumé de cours et méthodes Second degré : Résumé de cours et méthodes 1 Définitions : DÉFINITIN n appelle trinôme du second degré toute fonction f définie sur R par f () = a + b + c (a,b et c réels avec a 0). Remarque : Par abus

Plus en détail

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Nombres premiers. Comment reconnaître un nombre premier? Mais... Introduction Nombres premiers Nombres premiers Rutger Noot IRMA Université de Strasbourg et CNRS Le 19 janvier 2011 IREM Strasbourg Definition Un nombre premier est un entier naturel p > 1 ayant exactement

Plus en détail

DEFINITION et PROPRIETES des PRINCIPALES LOIS de PROBABILITES

DEFINITION et PROPRIETES des PRINCIPALES LOIS de PROBABILITES Université Paris1, Licence 00-003, Mme Pradel : Principales lois de Probabilité 1 DEFINITION et PROPRIETES des PRINCIPALES LOIS de PROBABILITES Notations Si la variable aléatoire X suit la loi L, onnoterax

Plus en détail

Principe de symétrisation pour la construction d un test adaptatif

Principe de symétrisation pour la construction d un test adaptatif Principe de symétrisation pour la construction d un test adaptatif Cécile Durot 1 & Yves Rozenholc 2 1 UFR SEGMI, Université Paris Ouest Nanterre La Défense, France, cecile.durot@gmail.com 2 Université

Plus en détail

Exo7. Sujets de l année 2008-2009. 1 Partiel. Enoncés et corrections : Sandra Delaunay. Exercice 1 Soit A une matrice 2 2 à coefficients réels.

Exo7. Sujets de l année 2008-2009. 1 Partiel. Enoncés et corrections : Sandra Delaunay. Exercice 1 Soit A une matrice 2 2 à coefficients réels. Enoncés et corrections : Sandra Delaunay Exo7 Sujets de l année 28-29 1 Partiel Exercice 1 Soit A une matrice 2 2 à coefficients réels. On suppose a + c = b + d = 1 et a b 1. ( ) a b c d 1. Soient (x 1,x

Plus en détail

Vidéo partie 1. Logique Vidéo partie 2. Raisonnements Exercices Logique, ensembles, raisonnements

Vidéo partie 1. Logique Vidéo partie 2. Raisonnements Exercices Logique, ensembles, raisonnements Exo7 Logique et raisonnements Vidéo partie 1. Logique Vidéo partie 2. Raisonnements Exercices Logique, ensembles, raisonnements Quelques motivations Il est important d avoir un langage rigoureux. La langue

Plus en détail

Couplages et colorations d arêtes

Couplages et colorations d arêtes Couplages et colorations d arêtes Complément au chapitre 5 «Une employée mécontente» et au chapitre 9 «L apprentie sudokiste» Considérons n équipes de hockey qui doivent s affronter lors d un tournoi.

Plus en détail

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014 Langage C/C++ TD 3-4 : Création dynamique d objets Hubert Godfroy 7 novembre 014 1 Tableaux Question 1 : Écrire une fonction prenant un paramètre n et créant un tableau de taille n (contenant des entiers).

Plus en détail

Introduction à la programmation sous Scilab : TP auto-correctifs II

Introduction à la programmation sous Scilab : TP auto-correctifs II Introduction à la programmation sous Scilab : TP auto-correctifs II Licence de Physique à distance Table des matières I Vecteurs et matrices (II) 1 a) Vecteurs........................................ 1

Plus en détail

Fonction polynôme du second degré : Forme canonique

Fonction polynôme du second degré : Forme canonique Fonction polynôme du second degré : Forme canonique I) Introduction. Soit g(x) = a(x - s)²+h. Toute fonction polynôme du second degré peut s écrire sous cette forme. Le passage de la forme développée à

Plus en détail

Resolution limit in community detection

Resolution limit in community detection Introduction Plan 2006 Introduction Plan Introduction Introduction Plan Introduction Point de départ : un graphe et des sous-graphes. But : quantifier le fait que les sous-graphes choisis sont des modules.

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Côté labo : Initiation aux scripts PowerShell

Côté labo : Initiation aux scripts PowerShell Côté labo : Initiation aux scripts PowerShell Description du thème Propriétés Intitulé long Formation concernée Matière Présentation Notions Description Initiation à la rédaction de scripts dans le langage

Plus en détail

Cours de spécialité mathématiques en Terminale ES

Cours de spécialité mathématiques en Terminale ES Cours de spécialité mathématiques en Terminale ES O. Lader 2014/2015 Lycée Jean Vilar Spé math terminale ES 2014/2015 1 / 51 Systèmes linéaires Deux exemples de systèmes linéaires à deux équations et deux

Plus en détail

Animation d un robot

Animation d un robot nimation d un robot IFT3355 : Infographie - TP #1 Jérémie Dumas Baptiste De La Robertie 3 février 2010 Université de Montréal Table des matières Introduction au problème 2 1 Transformations 2 1.1 Passage

Plus en détail

Fondements de l informatique: Examen Durée: 3h

Fondements de l informatique: Examen Durée: 3h École polytechnique X2013 INF412 Fondements de l informatique Fondements de l informatique: Examen Durée: 3h Sujet proposé par Olivier Bournez Version 3 (corrigé) L énoncé comporte 4 parties (sections),

Plus en détail

Le problème des multiplications matricielles enchaînées peut être énoncé comme suit : étant

Le problème des multiplications matricielles enchaînées peut être énoncé comme suit : étant Licence informatique - L Année 0/0 Conception d algorithmes et applications (LI) COURS Résumé. Dans cette cinquième séance, nous continuons l exploration des algorithmes de type Programmation Dynamique.

Plus en détail

Démontrer le caractère injectif / surjectif / bijectif d une application

Démontrer le caractère injectif / surjectif / bijectif d une application Démontrer le caractère injectif / surjectif / bijectif d une application Il s agit donc de montrer une propriété commençant par un symbole. La démonstration débute donc par : Soit (x 1, x 2 ) E 2. La propriété

Plus en détail

Nombres complexes Forme trigonométrique d un complexe Exercices corrigés

Nombres complexes Forme trigonométrique d un complexe Exercices corrigés Nombres complexes Forme trigonométrique d un complexe Exercices corrigés Sont abordés dans cette fiche : Exercice 1 : affixe d un point, représentation d un point-image dans le plan complexe, argument

Plus en détail

SUR LA SIGNATURE DE L AUTOMORPHISME DE FROBENIUS. par. Stef Graillat

SUR LA SIGNATURE DE L AUTOMORPHISME DE FROBENIUS. par. Stef Graillat SUR LA SIGNATURE DE L AUTOMORPHISME DE FROBENIUS par Stef Graillat Résumé. Dans cette note, nous calculons la signature de l automorphisme de Frobenius dans un corps fini. Nous serons amené pour cela à

Plus en détail

FONDEMENTS MATHÉMATIQUES 12 E ANNÉE. Mathématiques financières

FONDEMENTS MATHÉMATIQUES 12 E ANNÉE. Mathématiques financières FONDEMENTS MATHÉMATIQUES 12 E ANNÉE Mathématiques financières A1. Résoudre des problèmes comportant des intérêts composés dans la prise de décisions financières. [C, L, RP, T, V] Résultat d apprentissage

Plus en détail

Algèbre de BOOLE. Système binaire:

Algèbre de BOOLE. Système binaire: Algèbre de BOOLE 5V Sstème binaire: Un sstème binaire (signal, circuit, etc ) est un sstème qui ne peut eister que dans deu états autorisés. fermé : v 0 = 0v ouvert: v 0 = 5v R Notations: numérique : et

Plus en détail

Démonstrations. Chapitre 4. 4.1 Introduction

Démonstrations. Chapitre 4. 4.1 Introduction Chapitre 4 Démonstrations L objectif de ce chapitre est de commencer à aborder la question fondamentale suivante : qu est-ce qu une démonstration? Pour cela, plus précisément, on va se focaliser dans ce

Plus en détail

Les graphes d intervalles

Les graphes d intervalles Les graphes d intervalles Complément au chapitre 3 «Vol aux archives cantonales» Considérons un ensemble de tâches ayant chacune une heure de début et une heure de fin bien précises. Supposons qu on demande

Plus en détail