FR 3085499 A1 20200306 FR 1800911 A 20180828 PROCEDE FONCTIONNEL DE CALCUL UNIVERSEL PAR PRODUIT ETENDU DE MATRICE FORMELLE DOMAINE TECHNIQUE DE L'INVENTION La Présente invention concerne le domaine des dispositifs électroniques appelés unités centrales de traitements et mettant en oeuvre des dispositifs l :giciel de calcul universel. ETAT DE LA TECHNIQUE ANTERIEURE 10 Les unités centrales de traitements sont des dispositifs qui n'effectuent pas de calcul à proprement parler, contrairement aux unités arithmétiques, log' ques et graphiques, dédiées aux opérations de même nom ; mais décodent et effectuent des instructions (mots hexadécimaux), plus ou moins complexes, dont une partie, appelée gpcode (« code opérationnel ») , est associée à des modifications re l'état interne du système. Ces instructions encodent les échanges de données entre les différentes entités constituantes : unité centrale, unité de calcul, emplacement mémoire, etc. Ces principes, définis 20 initialement par A. LLErks, G. Goldstein et von Neumann (1946), sont toujours actuels. Ces unités centrales mettent en jeu un petit nombre de variables appelés registres dont les valeurs dépendent des instructions. Les dispositifs logiciels correspondants se déclinent alors sur ces architectures comme 25 des suites d'instructions qui organisent des structures de graphes ou piles en mémoire (LIFO - Last In First à l'aide de variables mémoire (adresse contenant une autre adresse mémoire) appelées pointeurs. Les dispositifs logiciels dits « fonctionnels » ou s'appuyant sur des notions iogico- 30 mathématiques, comme par exemple sur celle de fonction « abstraite » définie par A. Church avec le X-caleul (1932), sont traduits, aujourd'hui encore, vers des instructions, registres, piles mémoires et pointeurs qui nécessitent la mise en oeuvre de processus complexes de vérifications et de certifications de 35 code en l'absence d'unités centrales de traitement conçues 2 directement à partir de procédés « fonctionnels ». Le modèle von Neumann, source de séquences d'instructions toujours plus importantes, d'un grand nombre d'erreurs potentielles, et de processus de développement complexes, ne permet pas non plus de 5 mise en oeuvre d'un haut degré de parallélisme. En l'absence de modèle de parallélisme autre que « maître-esclave », ce dernier est géré le plus souvent « manuellement » par les dispositifs logiciels eux-mêmes. Dans ce contexte, d'autres approches de la notion de calcul (au sens large) et de sa mise en oeuvre, ont été 10 proposées par différents auteurs (M. Schbnfinkel -1924, H.B. Curry 1930, K. Iverson - 1967, B. Robinet - 1980, J.-P. Besciés - 1980, pour ne citer gu'eux). Elles sont, soit le plus souvent abandonnées ou à ce jour non réalisées, soit elles empruntent les dispositifs logiciels basées sur le X-calcul. En 15 résumé, toutes les approches dites « fonctionnelles » n'ont pas réussi à définir jusqu'à présent des dispositifs réalisant des unités centrales de traitement directement « fonctionnelles ». BREVE DESCRIPTION DE L'INVENTION 70 Procédé fonctionnel de calcul universel par produit étendu de matrice formelle. Pour remédier aux inconvénients des architectures von Neumann ci-dessus succinctement présentés, et au manque de réalisations d'unités centrales de traitement directement 25 fonctionnelles et programmables par des langages de haut niveau, la présente invention propose un procédé caractérisé en ce qu'il utilise le produit matriciel étendu avec des places ou. index sur un mot de produits de matrice, pour définir une unité centrale de traitements sans instructions. Les dispositifs logiciels 30 associés sont des produits de matrices, ordonnés en mots, qui utilisent la notion d'opérateur.. La présente invention permet la construction automatique de nouveaux dispositifs logiciels, plus réduits, par le produit matriciel étendu de dispositifs logiciels correspondants, soit sans passer nécessairement par la 35 suite des résultats intermédiaires. Le présent dispositif permet 3 la mise en oeuvre de deux niveaux distincts et autonomes de parallélisme, appelés respectivement « technique » et « applicatif ». A la suite des auteurs précités, le présent dispositif réalise directement, et par un procédé « fonctionnel », la Logique Combinatoire (désormais LC) de H.B. Curry (et. le -Ar-calcul de A. Church) et s'intègre totalement dans la chaîne de développement informatique des langages de haut niveau. La compilation des dispositifs logiciels universels de « haut 10 niveau » vers l'unité centrale de traitement objet de la présente invention s'effectue par les algorithmes actuels de compilation vers la Logique Combinatoire de H.B. Curry, et peuvent être réalisés par le présent dispositif. 15 BREVE DESCRIPTION DES DESSINS D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit. On se reportera aux dessins annexés dans lesquels : La figure 1 est une représentation schématique globale du 20 cadre de l'invention ; - La figure 2 est une représentation du dispositif représenté à la figure 1, permettant la suppression des résultats intermédiaires par produit quand les conditions sont réunies ou « lecture au--dessus du produit ». 25 - La figure 3 est une vue de la « lecture au-dessus du produit » (de la figure 2) permettant de lire les expressions formelles avec parenthèses à partir de l'écriture matricielle. - La figure 4 est. une vue du. dispositif selon le cadre 30 l'invention représenté à la figure - La figure 5 représente le produit matriciel relatif au combinateur B. - La figure 6 représente le produit matriciel relatif au combinateur I. 4 - Là figure 7 représente le produit matriciel relatif au combinateur S. - La figure B représente le produit matriciel relatif au combinateur W. - La figure 9 représente le produit matriciel relatif au combinateur C. - La figure 10 représente le produit matriciel relatif au combinateur K. - La figure 11 représente le calcul externe relatif au combinateur WS. La figure 12 représente le calcul externe relatif au combinateur BE. La figure 13 représente la correspondance entre les produits de matrice, la structure arborescente correspondante et la représentation sous la forme de mots. La figure 14 représente l'application « interne » relative au combinateur E (sous ses trois formes), - Les figures 15 à 17 représentent un mode de réduction détaillé relatif au combinateur E (sous ses trois formes). La figure 18 représente l'application « interne » du combinateur S (sous ses trois formes), La figure 19 donne un exemple de parallélisme applicatif avec l'application des combinateurs B et S en parallèle. - La figure 20 représente l'application « interne » du combinateur C (sous ses trois formes). - La figure 21 représente l'application « interne » relative au combinateur W (sous ses trois formes). Les figures 22 à 26 représentent un mode d'application détaillé relatif au combinateur '3E' entre l'unité centrale 30 de traitement et le dispositif logiciel. - La figure 27 représente le calcul détaillé de l'application 1CW'. Les figures 28 et 29 représentent le calcul détaillé de l'application. 'WC'. 35 La figure 30 représente le calcul de l'application 'SW'. - La figure 31 représente le calcul de l'application 'WS'. - La figure 32 représente le calcul de l'application 'SB'. Les figures 33 et. 34 représentent le premier cycle du calcul de l'application du point fixe °WS(BWB)1. î - Les figures 35 à 38 représentent le troisième temps de réponse au problème posé dans le cadre de l'invention. Ces exemples illustratifs ne sont pas limitatifs, ie 5résent dispositif s'appliquant à la totalité des combinateurs, les calculs matri Ciels des combinateurs (I) ou -y par exemple, mais 10 également les autres combinaisons de combinateurs (e.g. sont aussi objet de la présente invention. DESCRIPTION DETAILLEE DE L'INVENTION La présente invention est un procédé de réalisation direct de la 15 Logique Combinatoire de H.B. Curry. Les différentes descriptions données dans la présente invention utiliseront donc les mêmes représentations ou symboles, appelés combina tee rs, que ceux donnés par H.B. Curry (1958). Une présentation générale du cadre dans lequel se place le 20 présent dispositif est donné dans la figure 1. L'unité centrale (1) , objet de la présente invention, est principalement caractérisée par (conceptuellement) deux matrices triangulaires (2) qui, par composition avec elles-mêmes ou par un mécanisme d'alplication et d'expansion de matrices diagonales internes A génèrent d'autres (4) dans la matrice opposée, et ainsi de suite (5), jusqu'à obtenir un produit ou des applications internes représentant des expressions applicatives. L'ensemble des transformations des langages ou représentations (sémantiques et cognitives) de haut niveau (3) vers la Logique 30 combinatoire (6) peuvent ainsi être réutilisées dans 1C cadre du présent dispositif.. Dans la présente invention, les transformations combinatoires de la LC sont des transformations binaires « applipatives », internes (4) au produit matriciel, qui engendrent d'autres transformations matricielles binaires 6 applicatives », ou peuvent être associées à des transformations externes au produit matriciel (opérations arithmétiques, logique booléenne, ...). Dans certaines approches de mise en oeuvre de la LC, 5 distinctes du dispositif de la présente invention, les calculs reposent directement sur les symboles (6) qui sont alors interprétés comme des instructions d'une machine von Neumann. D'autres approches encore, utilisent des procédés dits de « réduction de graphes » par des dispositifs logiciels basés sur 10 des instructions et pointeurs d'une machine von Neumann, absents du présent procédé. Dans le contexte de la présente invention, la 10 se distingue aussi naturellement des systèmes de déduction « à la Hilbert » car leur système axiomatique n'est pas composabie au 15 sens de la présente invention. Par l'utilisation du produit matriciel et l'absence d'instruction, le présent procédé permet de synthétiser et d'effectuer des transformations complexes en parallèle, par une unité centrale de traitement (1), sans avoir à les définir en 20 des termes élémentaires autres que les éléments constitutifs du produit matriciel binaire étendu avec des index sur un mot de produit de matrices (17). Dans le cadre de la présente invention, certaines transformations binaires internes au produit matriciel peuvent 25 alors être interprétées directement comme des transformations arithmétiques élémentaires addition, multiplication, soustraction. La prise en compte en parallèle de ces transformations complexes par l'unité centrale de traitement est alors beaucoup plus efficace, performante, puisqu'il n'est pas nécessaire de faire appel à des unités de calcul dédiées pour effectuer en parallèle ces opérations arithmétiques élémentaires. n'est pas nécessaire de modifier l'unité centrale de traitement. pour faire effectuer par cette dernière des nouveaux calculs exactement de la même façon que s'ils étaient des primitives de fonctionnement. Les expressions de combinateurs de 7 la LC sont ainsi « réunitarisées » ou réduites en des produits matriciels binaires étendus avec leur signification ap licatiye propre ou calculateire, Le parallélisme « technique » lié au calcul matriciel est totalement indépendant de tout algorithme. Le parallélisme applicatif (figure 19) est défini par une organisation en matrices diagonales des matrices de calculs associées à chaque « calcul ». il est réalisé par ie parallélisme technique de façon totalement indépendante. 10 On considère dés lors indifféremment les combinateurs de Curry comme synonymes des produits matriciels dans le cadre de la présente invention, qui les exprime sous forme de produit étendu de matrices. Le cadre de la présente invention est celui des systèmes 15 applicatifs (ou purement applicatifs) en ce qu'il se définit par la. seule opération d'application. La relation d'application se caractérise damé la présente invention comme une relation binaire (ligne, colonne) interne au produit matriciel. Le présent procédé se distingue donc également des systèmes quasi- 20 applicatifs dont le ?--calcul_ est un cas particulier (également dit équivalent à la machine de Turing dans thèse dite de « ChurcrieTuring »). Le présent procédé ne fait pas intervenir d'autres opérations comme par exemple l'opération d'abstraction d'autres notions comme encore celle de variable 25 liée Une propriété immédiate de ces systèmes purement applicatifs est la suppression d'un résultat intermédiaire lors de la composition de deux. combinateurs (produit de matrices) pour en construire un troisième, comme décrit dans la figure 2. Les 30 éléments (7) sont des combinateurs (produits) qui se composent. pour former un nouveau combinateur (produit} dit « composé » ou « le second suivant lé premier ». Les éléments (8) désignent un opérande ou n'importe quelle expression applicative, et (9) les résultats respectifs des (7) sur leur opérande (8). Un résultat g peut former un opérande, il y a alorsune séquence d'application. En supprimant les résultats intermédiaires, quand (8) = (9) lorsque les combinateurs sont composables, les dispositifs logiciels se réduisent ou se synthétisent en des dispositifs plus petits, tout en gardant le résultat final (10) équivalent la succession des applications. La démarche de la présente invention vise ainsi à résoudre le problème de la définition d'un nrorédé de construction 10 automatique d'un nouveau calcul : 1 . à partir de plusieurs autres ; 2. éventuellement non distincts 3. d'une façon totalement aveugle, soit sans connaître effectivement 15 a. les résultats intermédiaires (9) des calculs opérandes ; b.ni celui du calcul obtenu (10), dans un premier temps ; c. mais tel que ces résultats puissent effectivement 20 être obtenus si nécessaire dans un deuxième temps ; d. et que le résultat final du calcul obtenu (10) soit le même que par la succession correspondante des premiers calculsavec leurs résultats 25 intermédiaires (9). Dans le cadre de la présente invention, la réponse au problème s'effectue en trois temps : 1. Dans un premier temps, les calculs (matriciels), identifiés sur la base de calculs élémentaires 30 (combinateurs) à partir desquels toutes les autres (expressions applicatives universelles) peuvent être construites, sont définies « à l'extérieur » du produit. matriciel : figures 5 à 10, puis 11 et 12. 2. Dans un deuxième temps, les calculs applicatifs sont 35 intégrés dans le calcul matriciel lui-même, de façon à ne pas induire d'opérations complexes 9 P extérieur de ce dernier. A ce niveau, les résultats intermédiaires (9) sont donnés par des produits particuliers : figures 14 à 34. 3. Dans un troisième temps, les résultats (applications) 5 intermédiaires, devenus inutiles, sont supprimés figures 35 à 38. Dans le cadre du présent procédé, les calculs sont donc des combinateurs ou plus largement des produits de matrices qui gèrent des relations dites applicatives « internes ». 10 Dans le cadre de la présente invention, une distinction importante est donc faite entre la succession de calculs (combinateurs) , dans laquelle les résultats (lectures au-dessus du produit) intermédiaires des uns (9) servent d'entrée aux suivants, et la composition. de calculs (combinateurs) qui 15 construit véritablement un nouveau calcul (combinateurs) ; soit de nouvelles lectures au-dessus du produit, à partir de plusieurs autres. Ce nouveau calcul « composé » (Curry - 1948), a alors, par définition, exactement le même résultat final (10) que la 20 séquence correspondante des « composés » (9). En revanche, .1. 1 possède les propriétés d'avoir été construit sans passer par la suite de résultats intermédiaires, et sans, non plus nécessairement, établir explicitement la construction du résultat de ce nouveau calcul (lecture au-dessus du produit). 25 Dans la présente invention, la lecture au-dessus du produit emprunte donc le chemin « le plus court » de la figure 2, par le produit matriciel en lieu et place de la succession ou séquence d'applications. Dans la présente invention, le « traitement » effectué par 30 les unités centrales (de calcul) (1) se déplace ainsi du décodage des instructions mettant en oeuvre des pointeurs ou registres vers le produit matriciel de matrices binaires applicatives (2) effectuant des constructions de calculs. Dans la présente invention, tout résultat, par exemple un 35 nombre obtenu suite à un calcul arithmétique, est vu comme la construction d'un nouveau calcul « réduit » (4). La notion de 10 valeur est donc attachée au dispositif logiciel capable de produire ce résultat. Toute expression, dès lors appelée applicative, est ainsi caractérisée en un mot d'opérandes ou d'application d'opérandes (17), éventuellement composéeavec d'autres, ordonnée arbitrairement de la gauche vers la droite. LECTURE AU-DESSUS DU PRODUIT Dans le cadre de la présente invention, toutes les 10 expressions applicatives sont représentées par des produits matriciels. Les expressions applicatives linéaires avec ou sans parenthèses s'obtiennent alors par la lecture au-dessus du produit (24), telle qu'illustrée pour le combinateur B dans la figure 3. 15 La matrice gauche du produit (11), se compose en parallèle (parallélisme technique) avec la matrice droite (12), tel que le produit « au-dessus » établisse des connexions entre des index ou places associés à des lignes ou des colonnes (13). Dans la figure 3, le résultat donne une application binaire dont la 70 deuxième application est également une application. Dans le présent exemple, une telle application résultante n'est pas représentable par le dispositif puisque seul un nombre peut être associé à une ligne ou une colonne et non une application de nombre ou d'index. L'exemple est donné à titre de 25 compréhension dans le premier temps de réponse au présent problème. Le second temps va systématiser l'internalisation dans le produit matriciel de toutes les applications de telle sorte que le principe d'avoir un seul nombre ou index associé à une ligne ou colonne soit respecte (figures 14 à 34) . 30 Touiours dans la figure 3, les deux calculs « extérieurs » au produit matriciel courant, et qui sont également des produits matriciels, sont représentés par (14) et (15). Dans la présente invention, une expression appiicative n' est donc pas représentable par une structure linéaire, mais par le 35 produit formé au-dessus d'une structure algébrique multilinéaire (ou matrice) et uniquement par cette dernière, T] faut 11 visualiser le produit ou « vocaliser » ce dernier pour. faire apparaître la notation. avec parenthèses de l'expression applicative correspondante. Soit donc la donnée d'un mot (ligne) ou de plusieurs mots 5 binaires (composés), constituant une matrice ou produit, de la forme : %M...M' où chaque 'M', synonyme de « vrai » ou. '1' représente: (1) une relation applicative (ou relation entre une entrée ou colonne et une sortie ou ligne) entre : 10 a, la colonne relative à sa position. dans le mot courant et la ligne courante ; b. une autre colonne et une autre ligne par l'ajout d'un nombre entier (13) relatif à la colonne ou à la ligne courante,. représentant un index dans le mot de 15 matrice du dispositif logiciel courant. On représente cette relation par l'ajout au maximum d'un nombre entier aux lignes et colonnes respectifs. (2) une sous-expression applicative. Dans ce cadre ladite 20 sous-expression applicative s'obtient par composition du dit mot avec une autre matrice où les mêmes principes s'appliquent, et par la lecture au-dessus du produit, et ainsi de suite. Lorsque que la valeur est IF il y a application, lorsque la 25 valeur est D (« faux » ou '0'), il y a absence d'application. Le présent dispositif applique les règles de « produit » suivantes : M * M M * - 30 D * M = fl*fl=fl Le présent dispositif applique les règles de « somme » suivantes: M + M 35 s+ri u M M 12 n = n Toutes les représentations matricielles sont entièrement binaires, seules les lignes et les colonnes peuvent se voir ajouter au maximum un nombre entier par ligne et par colonne. 5 Pour des facilités de lecture uniquement, nous étiquetons la matrice gauche avec le symbole correspondant au combinateur « de tête » dans les figures associées au premier temps de la réponse à la question, puis dans le deuxième et troisième temps, nous donnons uniquement les matrices binaires interprétables comme 10 des applications de combinateurs. Exemple I : La matrice gauche ou mot 'W.M.M' représente mporte quelle expression « ternaire » comme par exemple 'ex', 'fyx' ou' fx(gx)' ou encore 'fxx'. Les différences entre ces expressions sont données 5 par la matrice droite associée (mettant en oeuvre ou non des index). Exeqple II On appelle « régulier » un combinateur ou matrice dont la valeur la première colonne de la première ligne de la matrice droite du produit matriciel correspondant est 'M'. En effet, le produit 'M t- 20 m' entre les matrices des premières colonnes de chaque ligne n'introduit aucun changement sur ta première colonne de la première ligne du résultat, STRUCTURE ARBORESCENTE PRODUIT 25 Le dispositif selon la présente invention repose principalement sur des produits de matrices gui sont des représentations dans R2 ou l'espace deux dimensions. Ces représentations ne sont pas usuelles des machines « numériques ». D'autres représentations isomorphes sont donc nécessaires pour permettre une réalisation. 30 effective du dispositif. On précise que le produit matriciel est un cas particulier du produit tensoriel qui le généralise à des dimensions supérieures à deux, tout en reposant sur un. produit « ligne - colonne », objet de la première revondication du présent 35 procédé. On obtient alors un système comparable, uniquement par le nombre de dimensions manipulées (2 et supérieures), aux 13 systèmes dits de « réseaux de neurones ». En effet, le présent dispositif constitue alors un réseau de « neurones formels » reposant sur la notion d'application par l'intermédiaire de matrices binaires objet de la première revendication du présent 5 procédé. La mise en oeuvre d'un tel système nécessite d'intégrer dans les mots qui suivent plusieurs dimensions, soient des mots ou tableaux de dimensions supérieure à 2, par l'ajout de mots d'entiers encodant ces dimensions et les produits de ces dimensions pour en permettre l'accès à travers des index. 10 L'algorithme de produit tensoriel peut alors se déduire de celui du produit matriciel, en décomposant le produit en sous-produits de dimensions inférieures jusqu'à ce que l'on se ramène à un produit « ligne colonne ». L'ensemble forme alors des chaînes de produits structurées en chaînons significatifs, comparables î. 15 des expressions formelles internes du dispositif logiciel. Ces éléments, et respectivement ces chaînons, peuvent alors se composer en des chaînes, double, ou bien triple, ou encore des structures plus complexes, puis être calculées identiquement. La réalisation d'une unité de traitement basé sur le produit 20 tensoriel ou le produit matriciel généralisé repose sur les principes donnés par le présent procédé, étendu à des dimensions supérieures à deux. De la même façon que le produit matriciel permet la mise en oeuvre d'un niveau de parallélisme applicatif, le produit tensoriel permet la mise en oeuvre de plusieurs 25 niveaux de parallélisme applicatif, tous entièrement réalisés par le niveau technique. Les produits de matrices sont donc représentés sous la forme d'une structure arborescente (25) où chaque noeud interne de ladite structure représente soit un produit de matrice (P) soit 30 une matrice diagonale (M). Cette structure arborescente (25) doublement ordonnée est à son tour représentée sous la forme de mots binaires étendus avec des mots d'index. Pour la réalisation effective, on choisira donc la représentation sous la forme de mots, tout en gardant les propriétés de la représentation sous 35 la forme de matrice (et celle sous forme d'arborescence produit »). 14 La transformation ou encodage de l'arborescence en mot s'effectue par la procédure d'enchaînement suivante (figure 13): Dans un parcours de la gauche vers la droite, on part de la racine. Cette racine peut éventuellement être fictive si. l'on 5 souhaite mettre en oeuvre du parallélisme « applicatif » ou de façon équivalente, mettre en oeuvre plusieurs arborescences simultanées ou intriquées (partageant une même racine « fictive »). Par des lectures successives (figure 13) depuis la racine 10 vers les feuilles, on marque '1' Quand le noeud n'a pas déjà été parcouru et `0' quand le noeud a déjà été parcouru. L'encodage commence donc toujours par un mot de '1' qui définit le chemin de la racine à la première feuille se trouvant le plus à gauche. On obtient un mot (ou vecteur binaire) que 15 l'on représente sous la forme d'un vecteur particulier (14) dont le nombre de colonnes est paire ou multiple de 2 fois le nombre d'applications en parallèle. Le présent dispositif parcourt, gère, manipule, ainsi simultanément toutes les colonnes « deux à deux » du dit 20 vecteur. La structure de produit matriciel, attaché à cette arborescence, repose alors sur un autre mot binaire (15) où les '1' caractérisent un noeud interne de l'arborescence comme étant un produit et un '0' comme étant une matrice diagonale contenant 25 d'autres matrices soit également diagonales soit des matrices feuilles binaires terminales. Ce mot binaire est constitué par le même parcours de lecture que la structure arborescente correspondante, mais chaque 'I' ou '0' marque uniquement un noeud interne de la structure arborescente. 30 Une feuille s'identifie donc comme un '1' suivi d'un '0' ou de la fin du mot définissant l'arborescence « produit ». De même que pour la structure arborescente, on représente ce mot (15) par un vecteur dont le nombre de colonne est pair et fonction du parallélisme applicatif. 35 A chaque feuille de l'arborescence correspond une matrice binaire 10,11 ; soient les informations relatives au nombre de 15 lignes et au nombre de colonnes, ainsi que les valeurs binaires de ladite matrice. Les informations de lianes et de colonnes peuvent. être également représentées pax des mots de nombres entiers de lignes 5 et. respectivement de colonnes organisés selon la même structure que l'arborescence et la structure de produit matriciel de telle sorte que le parcours de l'arborescence permette d'accéder aux données correspondantes des matrices. Ces mots de lignes et de colonnes sont représentés en (16), 10 Chaque ligne et colonne de chaque matrice (feuille) peut être étendu (en fonction des différents combinateurs) avec au maximum un nombre entier positif (par ligne et par colonne) représentant des index ou positions dans un mot de produit de matrices (17). A défaut. de la présence d'une telle information, 15 l'index est donné par la colonne courante dans la lecture au-dessus du produit. Les index (strictement positifs) désignant des places dans un mot de produit de matrices (1.7) formant le dispositif logiciel associé à l'unité centrale de traitement. forment un mot 20 d'annotation des feuilles, de la même façon que la notion de produit (P) et de matrice diagonale (M) annote les noeuds internes de la structure arborescente. L'ajout de ces annotations sur les feuilles s'effectue par un vecteur représentant les annotations (13) associées aux 25 matrices dont le nombre de colonnes est multiple de deux, suivi des mots (13) de données des index correspondants. On définit alors un mot d'entiers pour les lignes et un autre pour les colonnes de la matrice terminale. On considère que '0' n'est pas une valeur d'index. 30 Toujours dans la figure 13, l'ensemble des mots est facilement représentable par une structure de mot (17) représentant un élément d'un. dispositif logiciel et contenant des éléments de différentes tailles, soit indexé par la somme des produits des tailles respectives à. chaque sous-élément. 35 ns L'intégration d'opérations externes comme des opérations arithmétiques ou logiques opérées par des unités calculatoires 16 spécialisées s'effectue en rajoutant les informations correspondantes aux dites opérations externes par des mots ou annotations supplémentaires à l'arborescence. Si la présence d'un index renvoie à des opérations internes au produit matriciel que nous allons décrire, la présence d'une autre « annotation » de l'arborescence entraîne le déclenchement de l'opération correspondante tel que le résultat soit associé à une entrée de la composition suivante. L'ensemble des différentes structures de mots (17), 10 constitué de l'arborescence « produit » avec ses feuilles « matricielles » étendues comme décrit, précédemment, forme le dispositif logiciel ou « programme » de combinateurs (voir figure 22, l'initiallsation du calcul depuis le dispositif logiciel). 15 Le produit matriciel effectué par l'unité centrale de traitement se réalisant « au-dessus » de la structure arborescente (ou de mots), cette dernière est une structure « en miroir », de telle façon que les matrices feuilles des sous-arborescences gauches se composent avec leurs analogues des 20 sous-arborescences droites par rapport à la racine (voir les figures 4, 15, 16 et 17). Les seules contraintes sont donc celles liées au produit lignes par colonnes des matrices feuilles entre elles. Chaque produit binaire « local » est dirigé par le nombre de 25 lignes de la matrice feuille gauche et le nombre de colonne de la matrice feuille droite, les valeurs « non définies » sont égales à 'El' comme décrit, précédemment. Lorsqu'il n'y a pas de correspondance au niveau des matrices terminales (voir par exemple le combinateur S figure 18) , un 30 regroupement des valeurs binaires au niveau supérieur est effectué. L' algorithme de parcours de l'arborescence (et de calcul-sur cette dernière) s'effectue ainsi par niveau ou « classe d'équivalence » (figures 15 et 17): on parcourt simultanément les deux branches ou colonnes du 35 vecteur (14), à chaque traversée d'un noeud « produit » (p) (autre que la racine) le parcours des branches suivantes peut 17 s'effectuer en parallèle (figures 17 et 18). Il n'y a pas de « remontée » sur les noeuds produits. Le mot (15) permet d'identifier la profondeur du calcul, la lecture de ce mot n'avance que lorsqu'un '1' est rencontré sur le mot (14). h chaque cycle la profondeur se réduit de 1. Chaque entité de traitement en parallèle parcourt alors autonomie sa branche respective (voir figure 17 pour la réduction ; figures 23 et 24 pour la construction ou expansion). Si elle rencontre un autre noeud produit, alors chaque sous 10 branche est parcourue en parallèle s'il reste des ressources de traitement parallèle disponibles (et la ressource présente est libérée). S'il ne reste plus de ressources disponibles, la ressource présente peut attendre qu'une ressource se libère, voire encore, elle peut passer en mode « séquentiel ». 15 En cas de parallélisme, le « fils gauche reprend l'arborescence au niveau actuel et le « fils droit » reprend le mot d'arborescence au prochain '0'. Ce parcours en parallèle est techniquement différent de la multiplication des matrices binaires, mais est considéré comme faisant partie de celui-ci ou 20 du parallélisme « technique ». Une matrice terminale doit se composer avec une autre ou une matrice « feuille ». Le nombre et l'organisation des matrices feuilles résultantes sont déterminés par le produit des matrices feuilles. La taille de la dernière matrice terminale « gauche » 25 définit le nombre d'opérandes (index.) qui rentrent simultanément dans le produit matriciel (e). Lors de la phase de réduction, au fur et à mesure de la descente de l'arborescence produit, les entités de traitement parallèle (ou fils) se voient affecter respectivement les planes 30 d'écriture pour les résultats. La taille et donc les emplacements de ces mots dans le mot résultant se déduisent simplement des mots de lignes et de colonnes correspondants, par les lignes de la matrice gauche et les colonnes de la matrice droite. Les différents mots du produit de matrice résultant se 35 déduisent de l'arborescence parcourue et se construisent selon les mêmes principes au fur et à mesure du parcours. 18 De façon analogue, lors de la phase de construction ou d'expansion, les mots (ou matrices) peuvent être construits selon les mêmes principes de matrices diagonales « en miroir ». Le mot représentant les index est donc recopié dans la ou g les matrices résultantes correspondantes selon les propriétés du produit matriciel. L'algorithme de produit matriciel s'effectue sur les noeuds matrice ou les feuilles ; une fois effectué, les unités de traitement sont libérées pour servir à nouveau à d'autres 10 calculs. REDUCTION, APPLICATION ET EXPANSION Le présent dispositif de calcul se caractérise donc par deux actions antagonistes: 15 (1) La première, à travers le produit matriciel, vise à construire ou concentrer les dispositifs logiciels en des matrices de plus en plus réduites, jusqu'à obtenir des connexions ou applications entre des places (index) ou à défaut un produit (on rappelle qu'il n'y a pas 20 d'opérations gui permettent de « grouper » les index ou de les appliquer les uns sur les autres dans un même mot - certaines figures dérogent à ce principe pour permettre la compréhension et la distinction avec les autres approches qui les développent à partir de 25 pointeurs sur des adresses mémoire) (2) La seconde est. « inverse » à la première et vise à construire des produits ou matrices diagonales telles que les connexions entre les index soient réalisées par la lecture au-dessus du produit. Dans ce cas, elles ne 30 sont plus directement réalisées par un même élément d'une même matrice et résolvent l'impossibilité d'écrire un index à une colonne ou ligne déjà occupée. Si un tel cas se produit, le présent dispositif n'effectue pas une réduction, mais tout d'abord une 35 « application », puis une « expansion », fonction du dispositif logiciel courant. Dans ce cas, l'application 19 interne au produit matriciel est transformée dans un premier temps en une « application produit ». L'application initiale (définie par un. seul élément d'une même matrice) et l'application « produit » 5 résultante sont lisibles « dans les deux sens » du fait de l'égalité de lecture qui est commutative L'algorithme est relativement simple car il est uniquement nécessaire de construire des inverses de produits de matrice diagonale « identité » dont les 10 valeurs se déduisent immédiatement du produit courant par « égalité de lecture ». Les matrices étant liées deux à deux dans un produit, si une matrice subit ce traitement, alors son homologue également, de sorte que la lectute au-dessus soit préservée pour le produit. 15 De même que le produit matriciel manipule des matrices « deux à deux » simultanément, les phases d'applications et d'expansion doivent manipuler les matrices exactement de la même façon « deux à deux » en parallèle. Les phases d'application et d'expansion peuvent être vues comme des phases qui ne produisent 20 aucune modification en l'absence d'application interne. La présente invention vise ainsi à construire des expressions matricielles qui « se suffisent à elles-mêmes », c'est-à-dire qu'elles intègrent toutes les transformations (comme par exemple les effacements successifs d'applications) 25 relatives à l'application de combinateurs les uns sur les autres, par l'« arithmétique » élémentaire citée précédemment encodée par le produit matriciel binaire lui--même. Le présent procédé ne met pas en oeuvre d'autres opérations que : 30 I. la réduction par le produit matriciel étendu par des entiers, 2. l'application vers des matrices diagonales « unitaires », 3.et l'expansion à travers les index qui renvoient à 35 des transformations se trouvant dans le mot de produit de matrices du. dispositif logiciel. 20 On distingue ainsi deux « types » d'expressions (3) Les expressions qui ne possèdent pas d'information supplémentaires (index) renvoyant à des colonnes ou lignes particulières et qui sont directement 5 composables. Ces expressions sont absentes des deux premiers temps de la réponse. Elles seront construites, lorsque cela est possible, dans le troisième temps. Elles ont la. particularité de ne faire aucune référence externe à l'unité centrale de traitement. Le troisième 10 temps de réponse au problème pose s'obtient donc en supprimant toue les matrices « inutiles » car redondantes des index portés par les colonnes et les lignes (4) des expressions étendues avec des informations 15 supplémentaires ou entiers (index) associés à une ou plusieurs lignes et ou colonnes et qui sont composables avec celles sans information supplémentaires et sous certaines conditions avec leurs homologues étendues avec des entiers ou index. 20 Lors de la phase de réduction, un mécanisme de décalage global du produit matriciel déplace ce dernier vers les opérandes suivants de telle sorte que ces opérandes « entrent » dans le produit matriciel. Le nombre d'opérande qui rentre est donné par la dernière matrice terminale « gauche ». Cette entrée pousse 25 éventuellement le(s) dernier (s) opérande (s) à remonter dans le calcul matriciel vers une position avec un. index auquel il dorme alors sa valeur (voir par exemple le '5' dans la figure 26), UNITE CENTRALE DE TRAITEMENT 30 Dans le cadre de la présente invention, les transformations effectuées par -t e présent dispositif d'unité centrale sont celles présentées précédemment que nous allons encore détailler. Nous résumons et développons: (1) Le produit matriciel de matrices diagonales, à 35 l'intérieur ou par, des matrices triangulaires (voir figure 4). en l'absence d'application interne (ou de 21 connexion entre des index) tant qu'il y a plus produit. (2) Lorsque qu'il y a connexion entre cieux index par un même élément d'une même matrice, ou impossibilité 5 d'associer un index à une ligne ou une colonne, car il y a déjà un index de positionné, l'unité centrale de traitement transforme cette applicatiapplication « élément » en une application « produit » de matrices diagonales « identité » à « iso » lecture au-dessus du produit. On 10 précise que les opérations élémentaires utilisées pour construire la réduction peuvent être réutilisées pour réaliser l'applàcation et l'expansion, mais en « sens inverse » du produit matriciel : Au lieu de construire une nouvelle matrice, les deux matrices sont conservées 15 avec des données qui évoluent « en diagonale » à. iso lecture au-dessus du produit. (3) En parallèle, de la transformation. de l'application « élément » en une application « produit », l'unité centrale de traitement construit la matrice 20 « application » (ou portée de l'appli a,:ion.) requise pan le combinateur du dispositif logiciel (18) correspondant l'index se en première position dans la lectine au-dessus du produit (figure 22). L'index est donné par l'annotation si elle est 25 présente ou à défaut par l'index de la colonne courante. La. construction de cette matrice qui pourra être supprimée dans le troisième temps de la réponse, est relative à la notion de « curryage », également appelée « currying ». 30 (4) A la sortie des étapes (12) et (13)_'unité centrale de traitement copie à l'intérieur du produit courant (entre la matrice gauche et la matrice droite), la matrice du dispositif logiciel référencé (19) par l'index « de tête » donné par la lecture au-dessus du 35 produit (initialement égale à 1), décalé d'une ligne et une colonne (20). Ce décalage est également spécifique 22 au deuxième temps de la réponse et: peut être supprime lorsqu'il y a composition. Le s étapes ci-dessus (2) , (3) et (4) réalisées, le cycle de I' unité centrale de traitement reprend à l'étape (1). L'unité centrale fonctionnelle de traitement objet de la présente invention est donc caractérisée par un dispositif de calcul de produit de (petites) matrices binaires dites formelles car mettant en oeuvre des relations applicatives. Ce produit est étendu avec des transformations que nous allons préciser sur des 10 entiers désignant des places dans des mots de matrice. L'unité centrale de traitement, objet de la présente invention, est ainsi schématiquement caractérisée par les propriétés de deux matrices triamqulaires figure (4). La matrice supérieure droite est arbitrairement retenue couine matrice de. 15 départ. dans la présente description. Chaque matrice sert successivement à écrire le résultat de la composition précédente par son homologue. La synchronisation du parallélisme technique objet de la réalisation du produit matriciel. est donc effectuée 20 automatiquement à chaque cycle produit, indépendamment du dispositif logiciel en cours. Ces matrices triangulaires sont abstraites ou représentent les propriétés qui relient l'unité centrale de traitement objet de la présente invention avec les dispositifs logiciels 25 correspondant et représentés par des matrices diagonales ou produit. Comme détaille précédemment dans le paragraphe « structure arborescence produit », elles n'ont pas nécessairement d'existence en tant que telles sous la forme d'une matrice triangulaire binaire pleine, comme illustré par la 30 figure 4, mais comme de petites matrices reliées entre elles par une structure arborescente (voir les figures suivant la figure 4) On parle alors de matrice « feuille » (M) , au niveau de l'arborescence, qui englobe les sous-matrices effectives 35 élémentaires ou terminales. 4'..) Si la valeur recherchée n'existe pas comme valeur binaire alors dans ce cas la valeur est D, L'unité centrale de traitement repose sur les propriétés des matrices triangulaires qui permettent d'effectuer des produits 5 ou compositions « aveugles » sur des matrices diagonales « internes », par composition de la matrice triangulaire avec elle-même (voir figure 4). Toutes les transformations sont ainsi réalisées par des transformations internes à la formule suivante : 10 (ml) = (mû) *(m0). Nous reprenons maintenant les notions présentées ci-avant en les intégrant davantage dans l'unité centrale de calcul - voix figure 22 : ETAT ü L'unité centrale de traitement (UC) objet de la 15 présente invention n'a pas de dispositif logiciel référencé. ETAT l INITIALISATION l'UC charge un dispositif logiciel (DL) constitué par un mot d'opérandes ou de produits de matrices binaires. Cette opération d'initialisation n'est pas objet de revendication. Elle peut consister à 20 -« pointer » vers une adresse mémoire (source) donnée, contenant le début du dispositif logiciel qui. forme un mot ; -disposer d'un procédé pour accéder aux différents éléments par un index. Il est également nécessaire de définir un protocole pour que 25 l'UC puisse manipuler des matrices ou mots mémoire « internes » ou « externes » pendant le calcul. Cette opération n'est pas objet de revendication et peut consister à « pointer » vers une adresse mémoire (cible) avec des opérations d'écriture, de lecture, et de réservation et de libération des mots mémoire. 30 La taille nécessaire à la réalisation d'un calcul de réduction sera toujours inférieure à la taille du dispositif logiciel en cours. La taille nécessaire à la réalisation d'un calcul d'application ou d'expansion peut être anticipée par la taille S connue des matrices manipulées. D'autres dispositifs peuvent être ajoutés sur les principes du présent dispositif, pour 24 palier à l'absence de ressources mémoire disponibles. Contrairement aux machines von Neumann, ce n'est pas le dispositif logiciel qui effectue une demande de ressource mémoire, mais l'unité centrale de traitement « fonctionnelle ». L'UC construit un premier mot d'application (22) du dispositif logiciel référencé dans l'adresse mémoire source correspondant au nombre d'opérande requis pour effectuer le produit matriciel du premier élément du dispositif logiciel. Ce nombre est fonction de (18) et de (23), la dernière matrice 10 feuille de l'arborescence gauche. Puis les matrices du dispositif logiciel correspondant, (19) et (18), sont ajoutées avec les décalages (20). Cet ajout peut être fait en parallèle (voir les figures 23 et. 2A). Enfin, une matrice unitaire (21), elle-même décalée par un effacement (20), est rajoutée (voir 15 figure 22). tin certain nombre de tests peut être effectué pour vérifier la bonne formulation. Nous détaillons (voir illustration globale figure 4 et cas particulier figure 22): i) la première matrice (gauche) doit commencer à la 20 colonne égale à son propre nombre de ligne + 1. ii) le « coin » inférieur gauche de la matrice (gauche) « touche » ou descend jusqu'à la diagonale. iii) la seconde matrice (droite) doit. posséder le même nombre de ligne que le nombre de colonne de la matrice 25 gauche. iv) la matrice droite débute au « coin » inférieur droite de la matrice gauche et doit également descendre jusqu'à la diagonale. v) chaque matrice peut être subdivisée en un nombre 30 différent de sous-matrices, mais de toi 1° façon que les sommes » de matrices respectent les propriétés du produit matriciel. vi) La structure de produit matriciel est globale et « au-dessus » des différentes matrices, qui prises isolément 35 peuvent ne pas être composables avec leur homologues. 25 ETAT 2 : L'EX demande dans un premier temps un espace mémoire, appelé matrice diagonale « cible » dont il peut facilement connaître la taille à partir des feuilles de l'arborescence produit de la matrice diagonale « source » : 5 cornac des lignes des matrices feuilles « gauche » et somme de colonnes des matrices feuilles « droite ». PHASE DE REDUCTION (ETAT 2) -L'UC effectue alors le produit matriciel vers la. matrice triangulaire « cible » des matrices 10 diagonales se trouvant dans la matrice triangulaire « source » telle que définie par l'arborescence produit correspondante, par la lecture au-dessus du produit matriciel, et tant que l'arborescence produit. contient des noeuds « produit » (p) (autre que la racine) et qu'il n/y a pas de connexion (ou de relation 15 directe) entre deux index. i/UC utilise donc deux matrices triangulaires l'une servant à mettre les résultats de l'autre et ainsi de suite, libérant à chaque cycle la matrice « source » et allouant une « nouvelle » matrice « cible ». La lecture en parallèle au-dessus des produits de lignes et de colonnes, est. 20 « développée » dans la matrice triangulaire « suivante » et définit le dispositif logiciel en cours de calcul. Le dispositif peut être éventuellement « sauvegardé » tel quel et restitué de façon à interrompre puis reprendre un calcul (continuation) éventuellement après arrêt total de l'unité 25 centrale de traitement. PHASE D'APPLICATION (ETAT 2): égaiement appelée phase de « compilation. »et comparable par certains aspects aux actions répétitives de « codage » effectuées par les êtres humains. 30 Cette phase est plus particulièrement mise en oeuvre lorsque le dispositif logiciel (référencé à l'ETAT 1) est construit directement corme dans le problème exposé précédemment dans la présente invention, soit par l'application ou la succession d'autres dispositifs logiciels entraînant leur composition pour 35 en constituer directement un autre par composition sans passer par la chaîne traditionnelle de développement informatique. 26 tette opération produit exactement le même résultat que Processus de compilation informatique, qui part d'un langage de haut niveau, mais sans passer par ce dernier du fait du présent procédé. Dams le cas où il y a connexion entre au moins deux reliés par un même élément d'une même matrice - ou lorsqu'une place d'index, en ligne ou colonne, est déjà occupée par au moins le produit de deux valeurs 'MI' (« vrai » ou '1' sur 1 ligne et 1 colonne)-, l'UG doit tout d'abord vérifier si l'index relatif à la colonne « sort plusieurs fois » (est associé à plusieurs lignes). Ce test est élémentaire suffit de vérifier si une même lecture au-dessus du produit (avec connexion entre deux index) repose sur une même colonne comprenant plusieurs valeurs à '311 15 .(« vrai ») REVENDICATIONS Dispositif caract en ce qu'il utilise le produit de matrices diagonales binaires. (4) dans des matrices triangulaires (2) par elles-mêmes, pour réaliser des calculs formels sur des expressions applicatives universelles. 2) Dispositif selon la revendication 1 caractérise en ce 1 utilise des index « colonne » ou « ligne » renvoyant à des positions dans un mot de produits de matrices. 3) Dispositif selon les revendications I. et 2, caractérisé en ce qu'il effectue un produit matriciel global au.-dessus d'une structure arborescente (25) représentant des produits ou des matrices diagonales (15) pouvant elles-mêmes être constituées d'autres matrices diagonales ou. de matrices binaires dont les 15 dimensions (16) sont inféra unes à celles attendues par la. revendication1. 4) Dispositif selon l'une quelconque des revendications précédentes caractérisé en cecalcule les valeurs résultantes binaires par la lecture interne au-dessus du produit matriciel global selon la revendication 3. 5) Dispositif selon l'une quelconque des revendications précédentes caractérisé en ce qu'il effectue automatiquement des opérations successives de produit matriciel (5) en l'absence de relation applicative entre les Éléments (13) définis selon la 25 revendication 2. 6) Dispositif selon les revendications 1, 2 et 3 caractérisé en ce qu'il effectue automatiquement des opérations inverses de produits de matrice à même valeur de lecture au-dessus du roduit, par des ma-trices diagonales « identités » selon la 311 revendication 7) Dispositif selon l'une quelconque des revendications précédentes caractérisé en ce que les dispositifs logiciels associés (17) soient organisés en un mot de produits de matrices binaires étendues avec des index, l'ensemble représentant des 35 relations d'expressions applicatives. 30 8) Dispositif selon l'une quelconque des revendications précédentes caractérisé en ce que des opérations arithmétiques élémentaires relatives aux expressions aoplicatives sont réalisées en earalléle par des opérations binaires internes au 5 produit matriciel. 9) Dispositif selon les revendications 1, 2 et 2 caractérise en ce qu'il permet de « réunitariser » des transformations complexes en éléments de produit matriciel à l'exclusion de toutes autres primitives. 10 10) Unité centrale de traitement d'un système numérique caractérisé en ce qu'il comprend le dispositif revendiqué selon l'une des revendications 1 à 9.