Représentation graphique des objets et sous-typage

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

É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

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

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

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

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

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

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

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

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

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

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

Université du Littoral Master 1. PROJET Puissance 4

Université du Littoral Master 1. PROJET Puissance 4 Université du Littoral Master 1 PROJET Puissance 4 Le but de ce projet est de réaliser un programme permettant à l utilisateur de jouer au Puissance 4 contre l ordinateur. 1 Travail à Rendre Le travail

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

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

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

Réalisation d une Interface Utilisateur

Réalisation d une Interface Utilisateur Réalisation d une Interface Utilisateur Pour manipuler facilement les données enregistrées dans une base de données, il est nécessaire de cacher leur implantation technique dans les tables et d offrir

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

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

Mise en œuvre d un Site Sharepoint-V1

Mise en œuvre d un Site Sharepoint-V1 Mise en œuvre d un Site Sharepoint- MAJ 20/01/2015 Ce document décrit le paramétrage pour la mise en œuvre des fonctionnalités standard de Microsoft SharePoint 2013 NADAP et SharePoint NADAP ( Nouvelle

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

+ 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

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

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

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

Arbres binaires de recherche (ABR) Binary Search Trees (BST)

Arbres binaires de recherche (ABR) Binary Search Trees (BST) LSVIII-BIM Algorithmie, 2015 Arbres binaires de recherche (ABR) Binary Search Trees (BST) I. Arbres binaires 1. Structure 2. Parcours II. Arbres binaires de recherche 1. Définition 2. Opérations sur les

Plus en détail

Rapport de Conception Préliminaire MESSAGERIE

Rapport de Conception Préliminaire MESSAGERIE Rapport de Conception Préliminaire MESSAGERIE Conception préliminaire du logiciel demandé en projet, illustré par les diagrammes des cas d utilisation, des classes du domaine et de séquence. Maxime SUARD,

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

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

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

avec des nombres entiers

avec des nombres entiers Calculer avec des nombres entiers Effectuez les calculs suivants.. + 9 + 9. Calculez. 9 9 Calculez le quotient et le rest. : : : : 0 :. : : 9 : : 9 0 : 0. 9 9 0 9. Calculez. 9 0 9. : : 0 : 9 : :. : : 0

Plus en détail

Module 8 : Périmètre et aire de figures planes

Module 8 : Périmètre et aire de figures planes RÉDUCTION DES ÉCARTS DE RENDEMENT 9 e année Module 8 : Périmètre et aire de figures planes Guide de l élève Module 8 Périmètre et aire de figures planes Évaluation diagnostique...3 Aire de parallélogrammes,

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

SOMMES ET PRODUITS. 1 Techniques de calcul. 1.1 Le symbole. 1.2 Règles de calcul. Laurent Garcin MPSI Lycée Jean-Baptiste Corot

SOMMES ET PRODUITS. 1 Techniques de calcul. 1.1 Le symbole. 1.2 Règles de calcul. Laurent Garcin MPSI Lycée Jean-Baptiste Corot SOMMES ET PRODUITS 1 Techniques de calcul 1.1 Le symbole Notation 1.1 Soient m et n deux entiers naturels. Alors { a m + a m+1 + + a + a n si m n, a = 0 sinon. On peut aussi noter m n =m a ou encore m,n

Plus en détail

Le Memory. a. Objectif : Créer un programme en langage Python qui permette de jouer au jeu Memory à deux joueurs.

Le Memory. a. Objectif : Créer un programme en langage Python qui permette de jouer au jeu Memory à deux joueurs. Le Memory Créer un programme en langage Python qui permette de jouer au jeu Memory à deux joueurs. Le jeu se compose de paires d images portant des illustrations identiques. L ensemble des images est mélangé,

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

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

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

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

TP3 : Manipulation et implantation de systèmes de fichiers 1

TP3 : Manipulation et implantation de systèmes de fichiers 1 École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande

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

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

Placements de tours sur les diagrammes de permutations

Placements de tours sur les diagrammes de permutations Placements de tours sur les diagrammes de permutations 5 août 0 Résumé Le problème des placements de tours consiste à compter le nombre de manières de placer k tours sur un échiquier sans que les tours

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

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

Plans projectifs, arithmétique modulaire et Dobble

Plans projectifs, arithmétique modulaire et Dobble Plans projectifs, arithmétique modulaire et Dobble M. Deléglise 27 février 2013 Résumé Le jeu de Dobble édité par Asmodée est une excellente occasion d introduire des objets mathématiques importants :

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

Représentation des fonctions booléennes

Représentation des fonctions booléennes Représentation des fonctions booléennes Épreuve pratique d algorithmique et de programmation Juillet 2003 Ce problème est consacré à l étude de deux représentations des fonctions booléennes de N variables

Plus en détail

L approche Bases de données

L approche Bases de données L approche Bases de données Cours: BD. Avancées Année: 2005/2006 Par: Dr B. Belattar (Univ. Batna Algérie) I- : Mise à niveau 1 Cours: BDD. Année: 2013/2014 Ens. S. MEDILEH (Univ. El-Oued) L approche Base

Plus en détail

CHAPITRE VI ALEAS. 6.1.Généralités.

CHAPITRE VI ALEAS. 6.1.Généralités. CHAPITRE VI ALEAS 6.1.Généralités. Lors de la synthèse des systèmes logique (combinatoires ou séquentiels), nous avons supposé, implicitement, qu une même variable secondaire avait toujours la même valeur

Plus en détail

Comparabilité d enregistrements réalisés avec les systèmes de mesure d HEAD acoustics

Comparabilité d enregistrements réalisés avec les systèmes de mesure d HEAD acoustics Comparabilité d enregistrements réalisés avec les systèmes de mesure d HEAD acoustics 1. Comparabilité de mesures réalisées avec différentes têtes artificielles HMS III Les mesures réalisées à l aide de

Plus en détail

Compte rendu de PHP MySQL : création d un formulaire de base de données

Compte rendu de PHP MySQL : création d un formulaire de base de données REVILLION Joris Décembre 2009 3EI Compte rendu de PHP MySQL : création d un formulaire de base de données Objectifs : Le principal objectif de ce cours est de découvrir et de nous familiariser avec le

Plus en détail

plate-forme PaaS (Audit)

plate-forme PaaS (Audit) Contrôle d accès dans une plate-forme PaaS (Audit) Ahmed BOUCHAMI, Olivier PERRIN, LORIA Introduction La sécurité d une plate-forme collaborative nécessite un module d authentification et un module de

Plus en détail

<< Crédit Club Auto >>

<< Crédit Club Auto >> Abbas Ahmad Année 2010/2011 Matin Bayramov Analyse et Modélisation des Systèmes Informatique (AMSI) Projet de Modélisation UML > Professeur encadrant : M. GUILLAUME PAQUETTE Projet

Plus en détail

Module EBanking dans WinEUR :

Module EBanking dans WinEUR : Module EBanking dans WinEUR : Le module EBanking de WinEUR permet d avoir un lien direct entre l application et un ou plusieurs comptes bancaires. Le module est composé de trois fonctionnalités : - L envoi

Plus en détail

LINQ to SQL. Version 1.1

LINQ to SQL. Version 1.1 LINQ to SQL Version 1.1 2 Chapitre 03 - LINQ to SQL Sommaire 1 Introduction... 3 1.1 Rappels à propos de LINQ... 3 1.2 LINQ to SQL... 3 2 LINQ to SQL... 3 2.1 Importer des tables... 3 2.1.1 Le concepteur

Plus en détail

Les graphes planaires

Les graphes planaires Les graphes planaires Complément au chapitre 2 «Les villas du Bellevue» Dans le chapitre «Les villas du Bellevue», Manori donne la définition suivante à Sébastien. Définition Un graphe est «planaire» si

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

Modèle Entité/Association. Marc Plantevit. marc.plantevit@liris.cnrs.fr

Modèle Entité/Association. Marc Plantevit. marc.plantevit@liris.cnrs.fr Modèle Entité/Association Marc Plantevit marc.plantevit@liris.cnrs.fr Objectifs Savoir lire un schéma E/R. Savoir traduire un schéma E/R en Modèle Relationnel.... 2 Le modèle Entité-Association (E/A) E/R

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

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

MANUEL DE FORMATION DE CONVERSION EN BASES DE DONNÉES

MANUEL DE FORMATION DE CONVERSION EN BASES DE DONNÉES MANUEL DE FORMATION DE CONVERSION EN BASES DE DONNÉES VERSION 6.03 1, rue de la Martinerie 78610 LE PERRAY EN YVELINES SUPPORT TECHNIQUE Tél. : +33-(02).99.73.52.06 Adresse e-mail : support@euroid.fr Site

Plus en détail

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION Licence STS Université Claude Bernard Lyon I LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION 1 COURS 5 : Les Tableaux PLAN DE LA SÉANCE Comprendre l utilité des tableaux Apprendre à manipuler

Plus en détail

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Claude Delannoy Exercices en langage C++ 3 e édition Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Chapitre 3 Les fonctions Rappels Généralités Une fonction est un bloc d instructions éventuellement

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

Algorithmique et Programmation Projets 2012/2013

Algorithmique et Programmation Projets 2012/2013 3 Dames 3. Objectif Il s agit d écrire un programme jouant aux Dames selon les règles. Le programme doit être le meilleur possible. Vous utiliserez pour cela l algorithme α β de recherche du meilleur coup

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

Sites web propriétaires

Sites web propriétaires Ce document est disponible à : C:\Users\pc_samba\Documents\Doc sites prop.docx Sommaire 1 Introduction... 3 2 Création du mini-site... 4 2.1 Autorisation de création... 4 2.2 Création de votre site Web...

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Fiche PanaMaths Introduction au tracé de courbes avec Scilab

Fiche PanaMaths Introduction au tracé de courbes avec Scilab Fiche PanaMaths Introduction au tracé de courbes avec Scilab Introduction Ce document présuppose un certain niveau de connaissance du logiciel Scilab de la part du lecteur (de la lectrice) : calcul matriciel,

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

FctsAffines.nb 1. Mathématiques, 1-ère année Edition 2007-2008. Fonctions affines

FctsAffines.nb 1. Mathématiques, 1-ère année Edition 2007-2008. Fonctions affines FctsAffines.nb 1 Mathématiques, 1-ère année Edition 2007-2008 Fonctions affines Supports de cours de mathématiques de degré secondaire II, lien hpertete vers la page mère http://www.deleze.name/marcel/sec2/inde.html

Plus en détail

CONDITIONS DE REUSSITE, DISPENSES, REPORTS ET CREDITS DANS L ENSEIGNEMENT SUPERIEUR

CONDITIONS DE REUSSITE, DISPENSES, REPORTS ET CREDITS DANS L ENSEIGNEMENT SUPERIEUR CONDITIONS DE REUSSITE, DISPENSES, REPORTS ET CREDITS DANS L ENSEIGNEMENT SUPERIEUR Position de la Fédération des Étudiant(e)s Francophones (F.E.F.) discutée puis adoptée lors des Conseils du 25 septembre

Plus en détail

Factorisation Factoriser en utilisant un facteur commun Fiche méthode

Factorisation Factoriser en utilisant un facteur commun Fiche méthode Factorisation Factoriser en utilisant un facteur commun Fiche méthode Rappel : Distributivité simple Soient les nombres, et. On a : Factoriser, c est transformer une somme ou une différence de termes en

Plus en détail

Introduction à Eclipse

Introduction à Eclipse Introduction à Eclipse Eclipse IDE est un environnement de développement intégré libre (le terme Eclipse désigne également le projet correspondant, lancé par IBM) extensible, universel et polyvalent, permettant

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

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en dé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

Le modèle de données relationnel

Le modèle de données relationnel Le modèle de données relationnel 1. Le modèle relationnel 1.1. Présentation Le modèle relationnel représente la base de données comme un ensemble de tables, sans préjuger de la façon dont les informations

Plus en détail

L2 MIEE 2012-2013 VAR Université de Rennes 1

L2 MIEE 2012-2013 VAR Université de Rennes 1 . Sous-ensembles de R n et fonctions (suite) 1 Nappes paramétrées Si f une fonction de deux variables, son graphe est une surface incluse dans R 3 : {(x, y, f(x, y)) / (x, y) R 2 }. Une telle surface s

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

CH.8 Décidabilité. Propriétés des langages récursifs : Fermés par complémentation, union et intersection. oui. non. oui M 1. non. oui M 2.

CH.8 Décidabilité. Propriétés des langages récursifs : Fermés par complémentation, union et intersection. oui. non. oui M 1. non. oui M 2. CH.8 Décidabilité 8.1 Les langages récursifs 8.2 La machine de Turing universelle 8.3 Des problèmes de langages indécidables 8.4 D'autres problèmes indécidables Automates ch8 1 8.1 Les langages récursifs

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

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Chapitre 5 LE MODELE ENTITE - ASSOCIATION Chapitre 5 LE MODELE ENTITE - ASSOCIATION 1 Introduction Conception d une base de données Domaine d application complexe : description abstraite des concepts indépendamment de leur implémentation sous

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