HAL Id: tel-01752904
https://tel.archives-ouvertes.fr/tel-01752904v2
Submitted on 16 Sep 2008
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub-
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non,
interprétation sémantique
Romain Pechoux
To cite this version:
Romain Pechoux. Analyse de la complexité des programmes par interprétation sémantique. In-
formatique [cs]. Institut National Polytechnique de Lorraine - INPL, 2007. Français. �NNT :
2007INPL084N�. �tel-01752904v2�
Ecole doctorale IAEM Lorraine ´
Analyse de la complexit´ e des programmes par interpr´ etation s´ emantique
TH` ESE
pr´ esent´ ee et soutenue publiquement le 14 novembre 2007
pour l’obtention du
Doctorat de l’Institut National Polytechnique de Lorraine
(sp´ ecialit´ e informatique)
par
Romain P´ echoux
Composition du jury
Rapporteurs : Roberto Amadio Professeur, Universit´ e Paris VII
Neil Jones Professeur, DIKU, University of Copenhagen
Examinateurs : Patrick Baillot Charg´ e de Recherche, CNRS Claude Kirchner Directeur de Recherche, INRIA
Jean-Yves Marion Professeur, ´ Ecole des Mines de Nancy, INPL Simona Ronchi Della Rocca Professeur, Universit` a di Torino
Paul Zimmermann Directeur de Recherche, INRIA
J’aimerais remercier de nombreuses personnes pour avoir contribu´ e, ` a titres divers, ` a l’´ elaboration de ce document. J’adresse donc des remerciements les plus chaleureux et sinc` eres :
– ` A Cl´ emence, mon ´ epouse, pour m’avoir soutenu pendant ces trois ann´ ees de th` ese.
– ` A mon directeur de th` ese, Jean-Yves Marion pour m’avoir encourag´ e et pour avoir su me donner de bonnes pistes et intuitions de recherche.
– ` A Roberto Amadio et ` a Neil Jones qui ont accept´ e d’ˆ etre les rapporteurs de mon manuscrit.
– Aux autres membres de mon jury de th` ese, Patrick Baillot, Claude Kirchner, Luigi Liquori, Simona Ronchi Della Rocca et Paul Zimmermann.
– ` A tous les membres de ma famille, mes parents et ma soeur.
– Aux membres de l’´ equipe CARTE avec lesquels j’ai pu ´ echanger des id´ ees, Guillaume Bonfante, Olivier Bournez, Johanne Cohen et Isabelle Gnaedig.
– Aux membres du projet ACI CRISS avec lesquels j’ai travaill´ e entre 2004 et 2006.
– Aux diff´ erents coll` egues de bureau, que j’ai cˆ otoy´ es pendant cette th` ese et qui ont toujours contribu´ e ` a maintenir une ambiance chaleureuse (et studieuse) sur notre lieu de travail. Dans l’ordre chronologique, Jean-Yves Moyen, Matthieu Kaczma- rek, Marco Gaboardi, Emmanuel Hainry, Daniel Gra¸ ca, Anne Bonfante et Octave Boussaton, ainsi qu’` a tous les coll` egues de l’´ equipe PROTHEO, Germain, Florent, Antoine, Colin et ` a S´ ebastien de l’´ equipe PAROLE.
– ` A tous mes autres amis dont la bande de l’ ´ Ecole des Mines, Charles (× 2), Blandine, Emeline, Fred, Domi, Fabrice et Nadim, et le gang des dentistes, Soph, Jul, S´ ´ eb, Nat, Gillou, Pat et Julie.
– ` A mes coll` egues enseignants, dont Azim Roussanaly, Antoine Tabbone et Odile
Thiery, qui m’ont encadr´ e et conseill´ e au cours des trois ann´ ees de monitorat que
j’ai effectu´ ees ` a l’UFR de Math´ ematiques et d’Informatique de l’Universit´ e de Nancy
2.
Remerciements i
Introduction 3
I Les quasi-interpr´ etations 11
I.1 D´ efinitions . . . . 14
I.1.1 Syntaxe des programmes fonctionnels au premier ordre . . . . 14
I.1.2 S´ emantique des programmes fonctionnels au premier ordre . . . . 15
I.1.3 Pr´ ec´ edence . . . . 17
I.1.4 Arbre des appels . . . . 17
I.1.5 Assignations partielles . . . . 18
I.1.6 Quasi-interpr´ etations . . . . 19
I.2 Propri´ et´ es des quasi-interpr´ etations . . . . 22
I.2.1 Machines de Turing et classes de complexit´ e polynomiales . . . . . 22
I.2.2 Lemme fondamental . . . . 23
I.2.3 Ordres r´ ecursifs sur les chemins . . . . 26
I.2.4 Une caract´ erisation de FPtime . . . . 28
I.2.5 Une caract´ erisation de FPspace . . . . 31
I.3 Synth` ese de quasi-interpr´ etations . . . . 34
I.3.1 D´ efinition . . . . 35
I.3.2 D´ ecidabilit´ e du probl` eme de la synth` ese sur Max-Poly { R + } . . . 37
I.3.3 Synth` ese de quasi-interpr´ etations Max-Plus . . . . 41
I.4 Modularit´ e des quasi-interpr´ etations . . . . 49
I.4.1 Union disjointe . . . . 50
I.4.2 Union ` a constructeurs partag´ es . . . . 52
I.4.3 Union hi´ erarchique . . . . 56
I.5 Application ` a d’autres langages de programmation . . . . 67
I.5.1 Application ` a la v´ erification de bytecode . . . . 67
I.5.2 Application ` a des syst` emes de threads concurrents et interactifs . . 68
I.5.3 Application ` a des programmes d’ordre sup´ erieur . . . . 69
I.6 Conclusion . . . . 72
II Les sup-interpr´ etations 73 II.1 D´ efinitions . . . . 76
II.1.1 Adjonction d’op´ erateurs . . . . 76
II.1.2 Fraternit´ es . . . . 77
II.1.3 Assignations partielles . . . . 78
II.1.4 Sup-interpr´ etations . . . . 79
II.1.5 Poids . . . . 81
II.2 Crit` eres permettant le contrˆ ole des ressources en espace . . . . 82
II.2.1 Crit` ere quasi-amical . . . . 82
II.2.2 Crit` ere pour les programmes non-terminants . . . . 90
II.2.3 Crit` ere pour les algorithmes de type « diviser pour r´ egner » . . . . 96
II.3 Application aux travaux pr´ ec´ edents . . . 100
II.3.1 Comparaison avec les quasi-interpr´ etations . . . 100
II.3.2 Application aux paires de d´ ependance . . . 103
II.3.3 Application au size-change principle . . . 107
II.4 Une caract´ erisation des classes de complexit´ e NC k . . . 110
II.4.1 Rappels sur ALogTime, NC k et NC . . . 110
II.4.2 Programmes arborescents et sympathiques . . . 114
II.4.3 Caract´ erisations de ALogTime, NC k et NC . . . 119
II.5 Synth` ese de sup-interpr´ etations . . . 130
II.5.1 Synth` ese avec propri´ et´ e sous-terme . . . 130
II.5.2 Synth` ese sans propri´ et´ e sous-terme . . . 130
II.6 Conclusion . . . 132
III Extension des sup-interpr´ etations ` a un langage orient´ e objet 135 III.1 Programmation orient´ ee objet . . . 137
III.1.1 Syntaxe des programmes . . . 137
III.1.2 S´ emantique . . . 140
III.2 Sup-interpr´ etations et poids . . . 142
III.2.1 Assignations . . . 142
III.2.2 Sup-interpr´ etations . . . 144
III.2.3 Poids . . . 147
III.3 Crit` ere fraternel . . . 148
III.3.1 D´ efinition . . . 148
III.3.2 Propri´ et´ es des programmes fraternels . . . 150
III.4 Synth` ese de sup-interpr´ etations . . . 153
III.4.1 Poids d’une m´ ethode . . . 153
III.4.2 M´ ethodes fraternelles . . . 153
III.5 Caract´ erisations de classes de complexit´ e . . . 155
III.5.1 Une caract´ erisation de FPspace . . . 155
III.5.2 Une caract´ erisation de FPtime . . . 157
III.6 Conclusion . . . 159
Conclusion 161
Bibliographie 163
Index 175
Je n’ai pas besoin de m’occuper de ce que je ferai plus tard. Je devais faire ce que j’ai fait. Je n’ai pas besoin de d´ ecouvrir quelles choses je d´ ecouvrirai plus tard. Dans la nouvelle science, chaque chose vient ` a son tour, telle est son excellence.
(Lautr´ eamont, Po´ esies II)
Le pr´ esent ouvrage ´ etudie l’analyse de la complexit´ e des programmes par interpr´ eta- tions s´ emantiques ; c’est-` a-dire le contrˆ ole des ressources utilis´ ees par des programmes
`
a l’aide d’un outil sp´ ecifique, les interpr´ etations s´ emantiques. Dans cette introduction, nous cherchons ` a motiver l’objet d’une telle ´ etude en partant de la notion tr` es g´ en´ erale de « besoins humains », puisque le contrˆ ole des ressources s’inscrit dans une volont´ e de satisfaire efficacement un besoin. Nous pr´ esenterons la notion de ressources infor- matiques qui permet de satisfaire tous les besoins humains li´ es ` a l’utilisation de l’outil informatique. Nous introduirons ensuite la th´ eorie de la complexit´ e qui permet la mise en place d’une ´ etude formelle des ressources informatiques. Puis, nous plongerons un peu plus dans les d´ etails en dressant un ´ eventail des diff´ erentes m´ ethodes permettant de contrˆ oler les ressources d’un programme. Enfin, nous pr´ esenterons notre d´ emarche sur l’´ etude des ressources ` a l’aide d’interpr´ etations s´ emantiques en donnant une trame narrative ` a laquelle le lecteur pourra se r´ ef´ erer.
Les besoins humains :
La notion de besoin r´ esulte de l’interaction entre un individu et son environnement.
Les sociologues ont pris l’habitude de classifier les besoins humains en deux cat´ egories principales :
– Les besoins primaires ou physiologiques qui repr´ esentent les besoins indispensables
`
a la survie de l’Homme comme la respiration ou encore la reproduction de l’esp` ece.
– Les besoins secondaires ou mat´ eriels qui rassemblent tous les besoins qui ne sont pas indispensables ` a la survie de l’Homme comme la programmation ou la recherche du minimum d’une fonction.
Cette classification reste cependant tr` es subjective, et, est donc sujette ` a controverses
puisqu’elle d´ epend fortement du contexte ´ economique et social des individus. En carica-
turant l´ eg` erement, on peut consid´ erer que l’acc` es ` a un ordinateur est en passe de devenir
un besoin primaire dans les soci´ et´ es occidentales tandis qu’il repr´ esente un besoin secon-
daire pour les indiens Pataxo ou les pygm´ ees Mbuti.
Le psychologue am´ ericain Abraham Maslow a affin´ e cette hi´ erarchie des besoins dans un diagramme pyramidal pr´ esent´ e dans la figure suivante :
physiologique s´ ecurit´ e amour, appartenance
estime des autres estime de soi accomplissement personnel
Pyramide des besoins de Maslow
D’apr` es lui, l’Homme cherche ` a satisfaire prioritairement les besoins d’un niveau inf´ e- rieur de la pyramide avant de s’int´ eresser aux niveaux sup´ erieurs. De bas en haut de la pyramide, on trouve :
– Les besoins physiologiques qui correspondent au maintien des fonctions vitales ap- pel´ e aussi hom´ eostasie. Claude Bernard la d´ efinit comme ´ etant « l’ ´ equilibre dyna- mique qui nous maintient en vie ».
– Le besoin de s´ ecurit´ e qui correspond ` a la n´ ecessit´ e pour l’individu d’assurer son int´ egrit´ e physique et son int´ egrit´ e morale.
– Le besoin d’appartenance qui s’inscrit dans la volont´ e de l’individu de communiquer et d’appartenir ` a un groupe social.
– Les besoins d’estime qui correspondent ` a une n´ ecessit´ e d’ˆ etre respect´ e, de se respec- ter et de respecter les autres. On peut constater que l’estime des autres l’emporte en g´ en´ eral sur l’estime de soi.
– Enfin, le dernier besoin est un besoin d’auto-r´ ealisation qui se traduit par un goˆ ut de l’apprentissage et la volont´ e de participer ` a des activit´ es totalement d´ esint´ eress´ ees.
Les besoins qui se cachent derri` ere l’usage de l’outil informatique sont, pour la plupart,
des besoins d’appartenance et de s´ ecurit´ e. Ils correspondent globalement aux utilisations
personnelle et professionnelle de l’informatique. Le d´ eveloppement des technologies de la
communication et de l’information et en particulier d’Internet, ` a la fin du si` ecle dernier,
est r´ ev´ elateur d’une tentative de satisfaction du besoin d’appartenance. Les internautes
ont pu communiquer par mail ou partager leurs opinions sur les forums et autres sites
de chat. Derri` ere leurs buts premiers, les blogs et les communaut´ es de d´ eveloppement de
logiciels (on peut penser ` a sourceforge.net) ou de jeux en ligne cachent une r´ eelle volont´ e
d’afficher son appartenance ` a un groupe social. Le besoin de s´ ecurit´ e en Informatique est,
quant ` a lui, intimement li´ e ` a la mise en application des outils informatiques ` a l’´ echelle
industrielle. Par exemple, l’utilisateur veut ´ eviter qu’un logiciel embarqu´ e bogue par
manque d’espace m´ emoire. Il veut ´ eviter toute intrusion d’un utilisateur anonyme dans
une base de donn´ ees confidentielle ou, encore, il veut crypter un message ` a envoyer afin
dans nos soci´ et´ es puisqu’il s’´ etend d´ esormais aux utilisations personnelle et familiale de l’ordinateur : Aujourd’hui, la grande majorit´ e des ordinateurs vendus dans le commerce est ´ equip´ ee d’un antivirus qui permet de se pr´ emunir d’´ eventuelles attaques du monde ext´ erieur.
Les ressources informatiques :
La notion de besoin est ´ etroitement li´ ee ` a celle de ressource. En ´ economie, la ressource correspond aux « moyens mat´ eriels dont dispose un pays, une r´ egion, une collectivit´ e ».
Ainsi, les ressources repr´ esentent les moyens qui vont permettre la satisfaction du be- soin. Cependant, la notion de ressource est plus restrictive que celle de besoin puis- qu’elle d´ enote en plus la finitude des moyens dont on dispose. Car les ressources sont limit´ ees, et l’Homme se doit de les exploiter convenablement pour satisfaire ses besoins et ainsi produire de la valeur. En informatique, les ressources repr´ esentent « l’ensemble des moyens dont dispose un ordinateur pour ex´ ecuter un ou plusieurs programmes ».
Les ressources informatiques sont diverses et d´ ependent en g´ en´ eral du mat´ eriel et de ses limites physiques. L’informatique th´ eorique a mod´ elis´ e l’ensemble de ces contraintes physiques comme des ressources de temps et d’espace. Ces deux ressources sch´ ematisent toutes les restrictions mat´ erielles ` a l’´ echelle humaine. La ressource en temps va cor- respondre ` a l’ex´ ecution en temps fini d’un programme. Par exemple, un utilisateur va vouloir que son programme termine en lui retournant un r´ esultat en un temps plus ou moins raisonnable. Cependant, elle n’est pas toujours pertinente. Par exemple, un sys- t` eme d’exploitation va s’ex´ ecuter en continu apr` es que l’ordinateur a ´ et´ e mis sous tension et il serait dommageable qu’il s’arrˆ ete au bout d’un temps donn´ e puisqu’il doit prendre en charge le bon fonctionnement de tous les autres programmes. De ce point de vue l` a, les ressources en espace sont beaucoup plus int´ eressantes que les ressources en temps puisque leur pertinence ne d´ epend pas du type de programme consid´ er´ e. L’ordinateur dispose de supports de m´ emorisation, comme le disque dur et la m´ emoire vive, et leur capacit´ e de stockage est physiquement limit´ ee. Ainsi il sera n´ ecessaire de contrˆ oler la m´ emoire de certaines applications afin d’´ eviter des bogues ou des attaques. Par exemple, si l’on int` egre un logiciel embarqu´ e dans une automobile, quelle garantie poss` ede-t-on sur le fait que le logiciel ne d´ epassera pas la quantit´ e m´ emoire maximale disponible lors de son ex´ ecution. De telles probl´ ematiques sont primordiales dans des domaines ` a forts enjeux strat´ egiques et financiers, comme l’a´ erospatial et l’armement, mais elles tendent aussi ` a le devenir dans notre quotidien. Que faire si ma voiture ne r´ epond plus ou si mon t´ el´ ephone portable bogue apr` es le t´ el´ echargement et l’ex´ ecution d’un jeu Java ?
La th´ eorie de la complexit´ e :
La th´ eorie de la complexit´ e a ´ et´ e introduite afin de proposer un cadre formel permet-
tant de r´ epondre ` a ce type de questions. Elle correspond ` a l’´ etude de la difficult´ e des
probl` emes informatiques en utilisant une notion de mesure de complexit´ e [Blu67] et se
doit de :
– d´ efinir clairement cette notion de mesure de complexit´ e qui va permettre de quan- tifier les ressources ` a maˆıtriser.
– permettre le calcul de la complexit´ e d’un programme relativement ` a la mesure de complexit´ e en consid´ eration.
– ´ etudier la complexit´ e des programmes ind´ ependamment du mod` ele de calcul en consid´ eration ; c’est-` a-dire ind´ ependamment de la machine utilis´ ee pour effectuer les calculs.
Car la richesse de l’informatique est intimement li´ ee ` a la diversit´ e des machines et des mod` eles de calcul ` a disposition. En g´ en´ eral, la th´ eorie de la complexit´ e utilise les machines de Turing [Tur36] comme mod` ele fondamental. Les ouvrages suivants [Jon97, Pap94]
comparent d’autres mod` eles aux machines de Turing tout en donnant une vision tr` es d´ etaill´ ee de la th´ eorie de la complexit´ e. Les machines de Turing demeurent n´ eanmoins le mod` ele de calcul le plus populaire pour des raisons scientifiques et historiques et seront d´ ecrites en d´ etail en section I.2. En substance, elles sont constitu´ ees de un ou plusieurs rubans 1 permettant de m´ emoriser les symboles d’un alphabet donn´ e dans diff´ erentes cases m´ emoire et d’un ´ etat permettant de mod´ eliser l’´ etat courant de la machine. Une
´ etape du calcul correspond ` a un changement d’´ etat courant et ` a l’´ ecriture d’un nouveau symbole, parfois identique, dans une case de chaque ruban. La complexit´ e en temps d’un calcul est d´ efini comme le nombre d’´ ecritures d’un symbole durant un calcul tandis que la complexit´ e en espace correspond au nombre maximal de cases m´ emoire utilis´ e pendant le calcul. Il est d’usage d’utiliser diff´ erentes classes de fonctions, par exemple l’ensemble des fonctions polynomiales ou l’ensemble des fonctions exponentielles, afin de hi´ erarchiser la complexit´ e de diff´ erents probl` emes dans ce que l’on nomme classe de complexit´ e. Par probl` eme, on sous-entend probl` eme de d´ ecision ; c’est-` a-dire une question math´ ematique que l’on peut r´ esoudre en r´ epondant par l’affirmative ou par la n´ egative.
L’ensemble des probl` emes pouvant ˆ etre r´ esolus par une Machine de Turing poss´ edant une complexit´ e en temps born´ ee par un polynˆ ome en les entr´ ees est appel´ e Ptime tandis que l’ensemble des probl` emes pouvant ˆ etre r´ esolus par une Machine de Turing poss´ edant une complexit´ e en espace born´ ee par un polynˆ ome en les entr´ ees est appel´ e Pspace . La diversit´ e des classes de complexit´ e ´ etudi´ ees dans la litt´ erature est impressionnante. Elle d´ epend des diff´ erentes notions de mesure de complexit´ e ´ etablies et de la multitude de mod` eles de calcul existants. Le calcul quantique est un exemple de mod` ele de calcul plus
´ esot´ erique que la simple Machine de Turing. Par ailleurs, les machines de Turing peuvent ˆ etre ´ etendues au non-d´ eterminisme ou ` a des mod` eles randomis´ es. Le non-d´ eterminisme correspond ` a la possibilit´ e pour la machine d’effectuer un choix ` a chaque ´ etape du calcul.
La machine calcule un probl` eme de mani` ere non-d´ eterministe si au moins une suite de choix permet de r´ esoudre le probl` eme. On d´ efinit de mani` ere analogue les classes NPtime et NPspace pour les machines de Turing non-d´ eterministes. Ces diff´ erentes classes de probl` emes permettent l’obtention d’une hi´ erarchie de probl` emes :
Ptime ⊆ NPtime ⊆ Pspace = NPspace
1