UNIVERSITÉ PARIS-SORBONNE ÉCOLE DOCTORALE V «CONCEPTS ET LANGAGES» Laboratoire de recherche «Langues, Logiques, Informatique, Cognition (STIH-LaLIC)» T H È S E pour obtenir le grade de DOCTEUR DE L UNIVERSITÉ PARIS-SORBONNE Discipline/ Spécialité : Informatique Présentée et soutenue par : Benoît SAUZAY le : 26 octobre 2013 Le concept informatique de «compilation généralisée» dans les sciences cognitives (linguistique, logique et intelligence artificielle): Contribution aux rapports entre la logique combinatoire et les T[Σ]-algèbres. Sous la direction de : M. Jean-Pierre DESCLES Professeur émérite, Université Paris-Sorbonne, JURY : M. Jean-Yves BEZIAU Professeur, Université Fédérale de Rio de Janeiro (rapporteur) M. Ismaïl BISKRI Professeur, Université du Québec à Trois-Rivières M. Jean-Pierre DESCLES Professeur, Université Paris-Sorbonne, LaLIC (directeur de thèse) M. Jean-Gabriel GANASCIA Professeur, Université Pierre et Marie Curie, LIP6 M. Jean SALLANTIN Professeur, Directeur de recherche au CNRS, LIRMM (rapporteur)
2
POSITION DE THESE Les problèmes de la cognition ou de l intelligence artificielle se posent généralement (Searle, 1990) en faisant référence à la machine de Turing (Turing, 1950). Si on considère le développement de l informatique depuis les années soixante, on constate que d une part, les architectures matérielles évoluent modérément, le jeu d instructions majoritairement utilisé aujourd hui étant toujours le même qu aux débuts de l ordinateur individuel : le langage x86 d Intel 1. D autre part, l augmentation du nombre de langages de programmation, aussi bien avec une approche procédurale que déclarative 2, a été très importante. Parallèlement, les concepts, comme la notion de fonction, peuvent être traduits d un langage de haut niveau dans un autre langage de haut niveau. Les notions d objet d un langage orienté objet peuvent aussi être traduites dans un autre. On peut poser des propriétés de commutativité ou d associativité relatives à un opérateur, de précédence des opérateurs entre eux, ou écrire une grammaire. On distinguera, parmi ces concepts, des invariants qui ne seront pas toujours clairement exprimés par les syntaxes des différents langages de programmation, mais qui traverseront invariablement les différentes phases de compilation et les différents compilateurs. Ces invariants sont principalement l application d un opérateur à un opérande, c est pourquoi on parle généralement de langage applicatif. Nous reprendrons dans ce travail un deuxième invariant, introduit par J.-P. Desclés, qui est la distinction entre la notion d opérateur 3 et celle d opération (Desclés J.-P., Opérateurs Opérations, 1980). On peut dès lors légitiment se poser la question du rapport entre la pensée et le cerveau non plus en termes de machine à instructions de Turing, mais en termes de compilation, d opérateurs 4 et d opérations. Si le langage de haut niveau implique des symboles, le calcul repose en premier lieu sur des opérateurs et des opérations 5. Un ordinateur forme donc un ensemble d opérateurs en dualité avec des opérations «physiques», qui peuvent éventuellement être associées à des symboles. Ces opérateurs se composent et se complexifient dans une certaine 1 Le langage x86 est un langage binaire directement exécutable par une machine matérielle ; le langage assembleur se trouve juste au-dessus de ce langage x86, puis encore au-dessus, interviennent les langages de haut niveau. Le langage x86 est utilisé dans la majorité des processeurs actuels. Certains langages binaires, comme ceux de la famille 68xxx ou SPARC, ont disparu ou sont restreints à des usages très spécifiques. Les processeurs ARM utilisent un jeu d instructions très comparable au langage x86. 2 Les langages procéduraux ou impératifs se distinguent des langages déclaratifs ou fonctionnels ; selon (Reade, 1993, p. 2), «procedural languages have evolved as abstractions from a von Neumann model of sequential machines and their control mechanisms have arisen as abstractions from the use of a program counter to locate the next instruction and to perform jumps. The programmer is having to do several things at the same time, namely : (1) describe what is to be computed ; (2) organize the computation sequencing into small steps ; (3) organize memory management during the computation. ( ) Declarative languages are usually generated from mathematical principles.». Ces deux approches ont cependant intégré des concepts d objet ou «orientés-objet», afin de permettre la prise en compte aussi bien des problèmes d évolution du programme que des entités manipulées par la pensée humaine, i.e. les «objets» ou concepts (Masini, Napoli, Colnet, Léonard, & Tombre, 1991, p. 17). 3 La notion de fonction n est plus dès lors synonyme d opérateur. 4 Brièvement, un opérateur est un procédé constructif qui produit un résultat à partir d un opérande donné. 5 Si nous réalisons une machine «mécanique» (comme les anciennes machines à vapeur), cette dernière peut être programmée par des manettes, manivelles (opérations) ou autre procédé mécanique indépendamment de tout système symbolique. 3
horizontalité, mais également dans une certaine verticalité. De même que la compilation verticale permet de passer d un ensemble de concepts à un autre, un opérateur horizontal complexe fait la correspondance entre deux ensembles d opérateurs qui renvoient à des concepts. En s engouffrant dans la brèche ouverte par J. Backus (1957) avec le premier compilateur FORTRAN, jusqu à la position de (Gajski, 2003) qui substitue la notion d instruction par celle de compilation, il nous semble donc raisonnable de vouloir étudier la cognition humaine, et même animale, la faculté de langage, et ses représentations logiques et informatiques, par le biais de l approche par compilation. Les travaux contemporains (Chomsky & Schützenberg, 1963) sur la syntaxe abstraite des langues naturelles ont pu par exemple inspirer J. Backus pour construire une abstraction de la machine plus «naturelle». Nous proposons ainsi de reprendre la démarche de J. Backus de la façon suivante : Il n est pas nécessaire de tout penser en termes de machine de Turing. Pour cela, on peut concevoir une machine de Turing particulière, appelée «compilateur», qui permette d oublier 6 la complexité «technique» des machines de Turing. Cette dernière peut être elle-même mise «à l intérieur», ou réalisée par une machine de Turing. Sans entrer dans le débat sur la notion de calculabilité, nous entendons par «machine de Turing», l ensemble des machines y compris les hypermachines ou les ordinateurs quantiques. Le problème de la cognition en général peut donc être posé à l aide du concept général de compilation, conçu comme une succession de changements de représentations, et non plus uniquement en termes de machine de Turing puisque la compilation en a effacé les aspects techniques. Pouvons-nous faire l hypothèse que certains mécanismes relevant de la compilation font partie intégrante de l étude explicative de la cognition et de son architecture par changement de représentation entre couches ou niveaux? La cognition serait alors, dans cette optique, expliquée par des changements successifs de représentation, allant d un niveau cognitif symbolique hautement catégorisé, vers un niveau matériel dont la structure est très différente et inversement, du niveau matériel vers un niveau entièrement symbolique. Plus complexe qu une simple compilation, la cognition peut-elle mettre en œuvre plusieurs niveaux successifs? Elle effectuerait alors des changements de représentation, d un niveau cognitif vers un niveau matériel et serait alors synonyme de compilation généralisée. L expression compilation généralisée a été introduite initialement par (Desclés J.-P., 1989), (Abraham, Desclés, Piotrowski, & Segond, 1990). Par exemple, comment peut-on décrire les calculs qui engendrent des représentations associées à tuer ou mourir, représentations qui ne sont elles-mêmes pas indépendantes les unes des autres? En effet, pour expliquer la relation entre «tuer» et «mourir», nous devons expliquer comment l énoncé le chasseur a tué le daim, engendre une représentation qui permet d en déduire que ce daim est mort. Pour cela, la reconnaissance de la forme linguistique tuer déclenche la construction d une représentation structurée que nous allons définir comme une treille. Cette représentation fait intervenir en tant que composante, les opérateurs «être-vivant» et «ne pas être vivant», identifiable à «être mort». Il se trouve que les représentations arborescentes sous-jacentes aux expressions des énoncés linguistiques sont similaires à celles mises en œuvre par les compilateurs des langages informatiques. Ces structures sont des arbres doublement orientés (Arbib & Give'on, 1968) qui se distinguent des arbres de la théorie des graphes (Berge, 1958), (Gondran & Minoux, 2009) simplement orientés. On remarque cependant qu en se restreignant aux seules structures d arbres 6 Oublier ou effacer de la complexité, c est faire en quelque sorte de l abstraction, ou s élever au-dessus d un certain nombre de difficultés techniques (variables). 4
bi-ordonnés, on peut être amené à réitérer certains calculs, ce qui diminue considérablement l efficacité opératoire (temps de calcul et occupation mémoire). Par exemple, un même calcul effectué dans une structure arborescente ne peut pas être repris à un autre endroit de l arborescence (sans duplication), il nécessite alors des opérations intermédiaires de stockage et de transport à l intérieur de l arborescence englobante. C est pourquoi, pour optimiser les calculs, le compilateur classique construira des graphes dirigés sans circuit (DAG 7 ) alors qu il manipule en réalité des graphes dirigés orientés sans circuit (DOAG 8 ), à partir d arbres, en utilisant d un point de vue technique, des pointeurs pour permettre le calcul. De même, en linguistique, la notion d arbre bi-ordonné, aussi bien l arbre syntagmatique de la linguistique structurale nord-américaine que l arbre de dépendance de L. Tesnière ou de Mel cuk, ne permet pas de représenter adéquatement la composition de prédicats complexes appliqués à un même terme. Par exemple, dans Luc pense partir, le prédicat complexe pense partir est le résultat d une composition des prédicats plus élémentaires pense et part, appliqués au même terme Luc puisque Luc pense partir signifie Luc pense (Luc part). La structure de treille que nous allons présenter permet d avoir une représentation plus adéquate et plus économique que l arbre bi-ordonné. Dans un arbre bi-ordonné, un même nœud ne peut pas avoir plusieurs pères ; de ce fait, le nœud «Luc» est redoublé et la structure n exprime pas que les prédicats «penser» et «partir» ont un même sujet. Dans un DAG, il y a bien un même sujet pour les deux prédicats, cependant les deux opérandes du prédicat «penser» ne se trouvent pas au même niveau 9. Sans orientation verticale du graphe mais avec uniquement une orientation des arcs, l opérateur initial ne peut pas être représenté sans ambiguïté, ce qui empêche le calcul de se déployer. Le DAG est déjà en partie orienté. Le DOAG précise que l opérateur complexe représenté débute avec le prédicat «penser» et non «partir», parce qu il se trouve au nœud supérieur. Le DOAG ne donne cependant pas le procédé de calcul sous-jacent. Par contre, la treille possède les propriétés du DOAG, ainsi que des propriétés de calcul adéquates sur des opérateurs qui permettent d écrire l opérateur I sur le nœud intermédiaire gauche, qui «fait remonter» l opérande «Luc» comme sujet du verbe «penser». Autrement dit, en termes de représentations, seule la treille donne une bonne représentation, également valide d un point de vue du calcul. Notre problème est donc l explicitation technique et épistémologique du concept de compilation largement utilisé en informatique, et étendu aux sciences cognitives, englobant l étude du fonctionnement langagier, au moyen de représentations symboliques, logiques, et informatiques. Dans ce contexte, nous abordons dans l ordre les problèmes suivants, qui correspondent à notre découpe par chapitres, selon une première partie exposant les cadres théoriques, et une seconde partie présentant des applications. Premier problème : La compilation en informatique. Quelles sont les étapes qui constituent la compilation en informatique? Nous les décrirons simplement, puis nous interrogerons : est-il possible d envisager une chaîne de compilation ou de transformation de différents niveaux d abstraction dans une approche «non classique» de la compilation? Peut-on «penser» ces calculs indépendamment des opérations matérielles elles-mêmes, dans la continuité de la démarche de J. Backus jusqu à la position de Gajski? 7 Directed Acyclic Graph. 8 Directed Oriented Acyclic Graph 9 Le sujet Luc se trouve à une distance d un arc du prédicat Penser, ce qui n est pas vrai. Nous avons bien «penser : Luc partir» qui s applique en dernier sur Luc. La structure doit rendre compte de cet ordre pour permettre le calcul effectif. 5
Deuxième problème : Combinateurs de la logique combinatoire. Des opérateurs primitifs, appelés par H. Curry des combinateurs, permettent de construire toutes les expressions d un calcul formel comme le λ-calcul de Church et réciproquement. Ces combinateurs renvoient à des «objets de pensée» et définissent donc un modèle de calcul. Cependant, les formalismes qui utilisent des compilateurs renvoient-ils davantage à des modèles de calculs ou bien à des modèles de machines? Troisième problème : Σ-algèbre. Les deux principaux modèles de calcul qui ont été «présentés» (i.e. la logique combinatoire et le λ-calcul) n effectuent pas de distinction explicite entre la notion d opérateur et celle d opération. Ils ne possèdent pas non plus une formalisation adéquate pour se déployer directement sous la forme d arbres opératoires. Quelle comparaison sera-t-il possible de faire entre le modèle de calcul par treilles, la logique combinatoire de Curry et le λ-calcul de Church sur cette base? Un autre modèle de calcul doit-il encore être introduit? Quatrième problème : T[Σ]-algèbre. Le troisième problème conduisant à un niveau de complexité élevé, un quatrième modèle de calcul est introduit ; selon J.-P. Desclés (1980), il peut être défini en termes de deux T-opérations («comparables» aux combinateurs de H. Curry.). Nous présenterons donc les travaux de J.-P. Desclés de façon actualisée. Cinquième problème : Des arbres aux treilles. Les compilateurs mettent donc en œuvre des calculs sur des calculs. Ces derniers ont été formalisés dans les années 1930 par la logique combinatoire et le λ-calcul, sur la base de représentations symboliques. Or, la manipulation de ces systèmes pour des applications concrètes comme l informatique a fait apparaître une représentation plus adéquate, économique : l arbre bi-ordonné. Dès lors, pourquoi ne pas utiliser directement un formalisme de calcul sur la base de ces arbres informatiques ou bi-ordonnés? Peut-on fonder un calcul uniquement sur des arbres, sans faire référence à des solutions techniques appartenant au modèle de machine? Le formalisme des arbres est-il suffisant? Sixième problème : Rapports entre la logique combinatoire et les treilles. Se pose alors la question de construire des rapports entre ce dernier modèle et le modèle de Curry. La logique combinatoire est plus simple et davantage orientée sur la notion d opérateur primitif que le modèle de Church. La logique combinatoire est un système qui s appuie sur la notion d application, alors que les T[Σ]-algèbres ou treilles utilisent la notion de composition dans la théorie des catégories. Dès lors, comment construire une sorte de «pont» entre ces deux modèles de calcul? Les cadres théoriques présentées permettent-ils une compilation, i.e. un calcul de calculs ou encore un calcul sur des structures? Septième problème : Arithmétique. Les calculs mis en œuvre dans un compilateur ne sont pas triviaux. Est-il possible de construire une application simple du calcul par des treilles, pour luimême dans le plan, comme par exemple l arithmétique? Huitième problème : Changements de représentations en biologie. La biologie est un système de construction par niveaux, si on considère que des réactions physico-chimiques interviennent, puis des structures, des tissus, des organismes. Lors des changements de représentations, des transformations «intrinsèques» interviennent : effacements, duplications, inversions. Pouvonsnous utiliser un formalisme de manipulation d opérateurs pour décrire «en partie» les mécanismes biologiques ou chimiques? On s interrogera ainsi sur les différents programmes de structure mis en œuvre par la biologie. 6
Neuvième problème : Schèmes sémantico-cognitif (compilation en linguistique). Le problème du choix d une structure adéquate pour effectuer des «calculs sur des calculs» (troisième problème) a été posé en partant des langues naturelles. Pouvons-nous développer ce calcul «de calcul» à un niveau sémantico-cognitif? Est-il possible de proposer un calcul formel qui serait sous-jacent à l énoncé «le chasseur a tué le daim», tel que la machine puisse inférer que le daim est maintenant mort, après avoir été vivant? Quel en serait le formalisme adéquat? Peut-on utiliser le même formalisme que celui utilisé pour l arithmétique et indépendament de tout domaine d application? Dixième problème : La compilation généralisée en sciences cognitives. Nous interrogeons la relation entre la matière ou le cerveau et l esprit ou les représentations cognitives d un point de vue épistémologique. Comment les représentations cognitives, si elles ont une certaine autonomie, pourraient-elles être étudiées indépendamment des supports matériels (neurobiologiques)? Si l on réfute le dualisme et le réductionnisme, comment relier alors la pensée et le cerveau? Si la proposition de J. Ladrière : «l esprit est adhérent à la matière», peut être retenue, que signifie-t-elle? Comment les représentations cognitives peuvent-elles adhérer à leur support? Pour résoudre ces problèmes, nous adoptons une démarche qui détermine notre plan. Tout d abord, une première partie pose le problème de la compilation et des transformations internes qu elle met en œuvre, puis se consacre au cadre algébrique, théorique et à sa comparaison avec la logique combinatoire. La deuxième partie présente les applications en réponse aux problèmes d arbres soulevés dans la première partie, et les ouvre vers la compilation généralisée en sciences cognitives. Ce mémoire se compose donc de dix chapitres et s inscrit dans le programme de recherche transversal du laboratoire STIH-LaLIC - langage, logiques, informatique et cognition - qui travaille sur les langues naturelles dans le cadre théorique de la Grammaire Applicative Cognitive et Enonciative. De ce fait, à travers l analyse en niveaux à partir des observables et la synthèse issue des représentations cognitives élaborées, il s intéresse autant aux langues qu aux moyens formels (logiques et mathématiques) de l analyse, en vue d une automatisation à terme, par exemple sur des applications ciblées (résumé ou extraction de segments pertinents méthode d exploration contextuelle). Notre projet est pluridisciplinaire, car il est centré sur ces moyens formels de l analyse et de la synthèse ; pour ce faire, il fait appel à un cadre mathématique et établit une relation avec la logique qui se justifie par elle-même ; toutefois, il prend aussi en compte l insuffisance des représentations arborescentes, notamment pour la linguistique, et se justifie également de par le formalisme simple qu il lui apporte. 7
REFERENCES Abraham, M., Desclés, J.-P., Piotrowski, D., & Segond, F. (1990). Langage naturel et représentations cognitives : un problème d'architecture et de compilation. Actes du 4e colloque de l'arc, progrès de la science cognitive (pp. 290-303). ARC INRIA. Arbib, M., & Give'on, Y. (1968). Algebra Automata I: Parallel Programming as a Prolegomena to the Categorial Approach. Dans Information and Control (pp. 331-345). Backus, J. (1959). the syntax and semantics of the proposed international algebraic language of the Zurich ACM-GAMM Conference. Proc. Intl. Conf. Information Processing (pp. 125-132). Paris: UNESCO. Backus, J. (1978, August). Can Programming Be Liberated from the von Neumann Style? A functional Style and its Algebra of Programs. ACM Turing Award Lecture - volume 21 number 8, pp. 631-641. Berge, C. (1958). Théorie des graphes et des applications. Paris: Dunod. Chomsky, N. (1956). Three models for the description of language. IRE Trans. on Information Theory, IT-2.3, 113-124. Chomsky, N., & Schützenberg, M.-P. (1963). The Algebraic Theory of Content-Free Language. Dans P. Braffort, & D. Hirschberg, Computer Programming ad Formal Systems (pp. 118-161). North Holland. Church, A. (1932). A set of postulates for the foundation of logic. Annals of Mathematics - series 2, 346-366. Curry, H. (1929). An Analysis of Logical Substitution. American Journal of Mathematics Vol51, No 3, 363-384. Curry, H., Feys, R., & Craig, W. (1958). Combinatory Logic. Amsterdam: North-Holland. Desclés, J.-P. (1980). Opérateurs Opérations. Paris: Thèse d'etat - Université de Paris 7. Gajski, D. (2003). NISC : The Ultimate Reconfigurable Component. Center for Embedded Computer Systems TR 03-28. Gondran, M., & Minoux, M. (2009). Graphes et algorithmes. Paris: Lavoisier. Turing, A. (1950). Computing Machinery and Intelligence. Mind n 49, 433-460. 8