FR 2689661 A1 19931008 FR 9301524 A 19930211 La présente invention concerne le domaine de la reconnaissance de configurations, en particulier la reconnaissance d'une configuration fournie en tant que configuration valide dans un langage prédéfini. Une reconnaissance de configuration est un domaine dans lequel des configurations, typiquement une expression visuelle comme une expression mathématique ou un schéma logique ou un organigramme sont identifiés comme valides Typiquement, une image d'une configuration sera fournie par une exploration optique d'un support pour créer une image à topographie mémoire, (ou carte de bits) de ce milieu Dès lors que l'image à topographie mémoire est créée, des symboles ou caractères individuels seront identifiés au moyen d'un processus appelé la reconnaissance de caractères De telles techniques de reconnaissance de caractères incluent une concordance d'une représentation à topographie mémoire du caractère avec des règles à symboles, ou calibres, de caractères connus, une analyse de représentations polygonales du caractère et une analyse statistique de la représentation à topographie mémoire du caractère. La reconnaissance de configurations est une composante importante d'une technologie, qui émerge actuellement, de systèmes d'ordinateurs appelés des systèmes à base de stylets (ou ordinateurs blocs- notes) Dans un système de bloc-note, un utilisateur entre des données dans l'ordinateur en "écrivant" sur un bloc, ou tablette d'entrée Ceci diffère des procédés classiques d'entrées de données sur un clavier ou de déplacement d'un curseur sur un affichage pour invoquer un effet Puisque la donnée qui est entrée peut être un élément quelconque qui est écrit sur le bloc d'entrée, il faut déterminer pour une application particulière que la donnée qui est entrée est du type approprié et d'une syntaxe appropriée pour l'application particulière. Il est connu que les symboles de caractères compris dans une classe de configurations (langage) présentent des relations (appelées également des procédés syntaxiques) qui peuvent être définies en termes d'une grammaire Une grammaire est un ensemble de règles syntaxiques et de symboles qui définissent un langage (ou domaine) Différentes grammaires peuvent posséder des types différents de règles et/ou de symboles Le langage peut être un langage parlé, par exemple l'anglais ou le français, ou ce peut être un langage d'ordinateur, par exemple le Fortran ou le PASCAL Les règles syntaxiques définissent un procédé au moyen duquel une expression peut être, identifiée dans un langage, en tant qu'expression valide ou invalide On a également utilisé, en Science des Ordinateurs, des grammaires pour décrire la logique de calcul Des cours de base de théorie des automates utilisent des grammaires pour définir des modèles de calcul finis et non finis. En ce qui concerne la reconnaissance de configurations, il est souhaitable d'utiliser des procédés syntaxiques lorsqu'il est commode de représenter une configuration en tant que collection d'une ou plusieurs sous-configurations Une sous- configuration est définie comme étant un symbole ou un groupe de symboles liés Pour un langage écrit, un symbole peut être une lettre d'un alphabet ou un opérateur mathématique ou un symbole graphique Des procédés syntaxiques sont également souhaitables lorsque la validité d'une configuration dépend des relations de ses configurations Par exemple, pour reconnaître la validité d'une équation mathématique, il peut ne pas être valide que deux opérateurs mathématiques soient adjacents, même si chaque opérateur, pris isolément, est un symbole valide de la grammaire. Alors qu'une grammaire définit les symboles valides et les règles syntaxiques, une configuration particulière est analysée en utilisant un processus d'analyse Des procédés classiques d'analyse sont linéaires, c'est-à-dire de haut en bas ou de bas en haut Un processus d'analyse détermine si une configuration est valide ou invalide Le processus d'analyse détermine la validité au moyen d'une analyse lexicale (c'est-à-dire qu'il vérifie la validité des sous-configurations individuelles) et en déterminant que les règles syntaxiques sont suivies Si la configuration est valide, le processus d'analyse renvoie une représentation, analysée selon les règles syntaxiques, de la configuration Si la configuration est invalide, le processus d'analyse peut se terminer et fournir l'information exposant la raison pour laquelle la configuration est invalide. Comme noté ci-dessus, des procédés syntaxiques ont été utilisés dans l'art de la reconnaissance de configurations L'un de ces procédés syntaxiques est appelé une grammaire d'attribut Des grammaires d'attributs sont décrites dans un article intitulé "Attributed Grammar A Tool for Combining Syntatic and Statistical Approaches to Pattern Recognition" (c'est- à-dire Grammaire des attributs un outil de combinaison des approches syntaxiques et statistiques à la reconnaissance de configurations) de Wen-Hsiang Tsai et King-Su Fu, publié dans IEEE Transactions on Systems, Man, and Cybernetics, pages 873-885, Vol. SMC-10, Ne 12, décembre 1980 Dans une grammaire d'attributs, une information sémantique des configurations est combinée avec les règles syntaxiques pour créer une règle de production Les règles syntaxiques établissent une relation parmi des sous- configurations L'information sémantique est utilisée pour calculer des attributs d'une configuration en utilisant les attributs des sous-configurations liées. Les attributs d'une sous-configuration liée peuvent également être utilisés pour indiquer l'applicabilité d'une règle de production. Une grammaire d'attributs est définie par une fonction quintuple G = (VT, VN, A, P, S), o VT est un ensemble de symboles terminaux, VN est un ensemble de symboles non terminaux, A est un ensemble d'attributs, P est un ensemble de règles de production et S est le symbole de début Un symbole est simplement une représentation d'une configuration ou sous- configuration incluse dans la grammaire Un symbole terminal représente des sous-configurations qui ne peuvent pas être encore divisées (par exemple une lettre d'un alphabet) alors qu'un symbole non terminal représente une sous-configuration qui peut encore être divisée Pour chaque x e VT U VN, l'expression A(x) désigne les valeurs d'attributs de x, même si certaines des valeurs d'attributs peuvent être indéfinies pour un symbole donné Chaque règle de production de l'ensemble P comprend deux parties: la première partie de la règle spécifie une restriction syntaxique parmi les symboles et la deuxième partie de la règle spécifie une restriction sémantique parmi les symboles La partie syntaxique est une forme exempte de contexte La partie sémantique décrit la manière dont les valeurs d'attribut du symbole situé sur le côté gauche de la règle syntaxique sont calculées en termes de valeurs d'attributs des symboles situés sur le côté droit En variante, la partie sémantique peut indiquer dans quelles conditions la règle syntaxique s'applique De façon formelle, la partie syntaxique d'une règle est: B B 1, B 2 Bn o Bi e VN u VT, pour 1 La partie sémantique de la règle est un ensemble d'applications Il existe autant d'applications qu'il y a d'attributs pour le non terminal B Chaque application calcule la valeur d'attribut correspondante de B à partir des valeurs d'attributs de B 1, B 2 * Bn- Des grammaires d'attributs connues sont limitées à définir, entre des sous-configurations, des relations unidimensionnelles On a reconnu qu'il est souhaitable dans certaines applications de définir des relations multidimensionnelles entre les sous-configurations. Ceci peut se produire par exemple dans l'analyse d'expressions ou de fractions mathématiques Dans une fraction, une valeur entière est située au-dessus d'une ligne de fraction alors qu'une deuxième valeur entière est située au-dessous de la ligne de fraction Il peut en être de même pour des sous-expressions d'une expression mathématique Ici, les relations entre les symboles sont aussi bien horizontales que verticales (c'est-à-dire bidimensionnelles). Un procédé de description et d'analyse de configurations à relations bidimensionnelles est décrit dans un document intitulé "Syntax-Directed Recognition of Hand-Printed Two-Dimensional Mathematics" (c'est-à- dire Reconnaissance, dirigée par syntaxe, de mathématiques bidimensionnelles écrites à la main) de Robert H Anderson, Interactive Systems for Experimental Applied Mathematics, pages 436 à 459, New York, Academic Press, 1981 Le document d'Anderson décrit des règles syntaxiques pour commander un processus d'analyse Les règles syntaxiques comprennent des conditions correspondantes pour identifier positivement une entrée particulière Cependant, le procédé décrit exige des ressources importantes de calcul pour effectuer une analyse de reconnaissance de configuration La raison en est que l'analyse associée exige l'examen d'un ensemble excessivement large de permutations des sous- configurations qui constituent la configuration En particulier, le procédé décrit ne prévoit pas l'utilisation de mots-clés ou d'informations heuristiques à l'intérieur du processus d'analyse. C'est donc un but de la présente invention que de fournir un procédé de reconnaissance de configurations dans lequel des configurations à relations multidimensionnelles sont définies et reconnues avec précision et moyennant un calcul efficace. La présente invention fournit un procédé de définition et d'identification de configurations valides dans un système de reconnaissance de configurations Le procédé est particulièrement bien adapté pour définir et reconnaître des configurations comprenant des sous-configurations à relations multidimensionnelles Le système de reconnaissance de configurations est typiquement incorporé dans un système fonctionnel de plus grande ampleur qui inclut un système de reconnaissance de caractères et un système de manipulation de données. La présente invention est généralement divisée en deux parties, une partie de définition de langage et une partie de vérification La partie de définition de langage est incorporée dans une grammaire contrainte d'attributs La grammaire contrainte d'attributs inclut des ensembles de symboles non terminaux, des symboles mots-clés, et des symboles non mots-clés, des définitions d'attributs correspondant à chaque symbole, un ensemble de règles de production et une mesure de la pertinence de chacun des symboles mots-clés Les règles de production incluent des parties syntaxiques, sémantiques, de contraintes et d'effets La partie syntaxique définit une relation de production entre symboles Les parties sémantiques définissent une relation basée sur les attributs de symboles La partie de contraintes inclut des définitions pour des relations multidimensionnelles entre symboles La partie d'effet définit l'effet qui est réalisé si la règle concorde La partie de vérification comprend un schéma d'analyse qui prend un ensemble de sous- configurations d'entrées fournies par un système de reconnaissance de caractères et qui détermine si les configurations d'entrées définissent une configuration valide selon une implantation de langage de la grammaire La sortie de la partie de vérification est une représentation de la configuration selon une structure en arbre. Selon un premier aspect, la présente invention fournit un procédé de définition et de détermination d'une configuration valide dans un système de reconnaissance d'une configuration valide, ladite configuration comprenant une ou plusieurs sous- configurations, ladite ou lesdites sous-configurations présentant des relations multidimensionnelles, caractérisé en ce qu'il comprend les étapes consistant à: fournir une grammaire à un moyen d'analyse, ladite grammaire comprenant: - un ensemble de symboles non terminaux; un ensemble de symboles mots-clés; un ensemble de symboles non mots non-clés; un moyen de définition d'attribut, ledit moyen de définition d'attribut étant prévu pour définir une liste d'attributs ou l'un quelconque desdits symboles non terminaux, mots-clés ou non mots-clés; un ensemble de règles de production, chaque règle de production dudit ensemble de règles de production comprenant une partie syntaxique, une partie sémantique, une partie de contraintes et une partie d'effet; un symbole de début de grammaire; un moyen d'application d'un symbole mot-clé, ledit moyen d'application de symbole mot-clé étant prévu pour appliquer à une valeur de nombre réel chacun des symboles dudit ensemble de symboles mots-clés; b) fournir audit moyen d'analyse un ensemble de sous- configurations d'entrées à reconnaître comme configurations valides; c) fournir audit moyen d'analyse ledit symbole de début de grammaire; d) analyser ladite sous-configuration parmi lesdites sous-configurations d'entrée pour déterminer si ledit ensemble de sous-configurations d'entrées peut être récrit, selon ledit ensemble de règles de production, en tant que ledit symbole de début; e) renvoyer une représentation analysée dudit ensemble de sous-configurations d'entrées si ledit ensemble de sous-configurations d'entrées peut être récrit en tant que ledit symbole de début selon ledit ensemble de règles de production; f) renvoyer une information exposant la raison pour laquelle ladite configuration est invalide si ledit ensemble de sous-configurations d'entrées ne peut pas être récrit en tant que ledit symbole de début selon ledit ensemble de règles de production. Lesdites règles de production peuvent comprendre en outre: a) un ensemble de règles syntaxiques, chacune desdites règles syntaxiques définissant une production à partir de l'un desdits symboles non terminaux X vers un ou plusieurs desdits symboles identificateurs, des symboles non terminaux ou des symboles mots-clés Y; b) un ensemble de règles sémantiques, chacune desdites règles sémantiques correspondant à une règle syntaxique, lesdites règles sémantiques définissant une relation physique entre X et Y; c) un ensemble de contraintes pour chacune desdites règles syntaxiques, chacune des contraintes dudit ensemble décrivant des règles d'ordonnancement d'analyse et des contraintes spatiales. Dans ce cas, ladite étape d'analyse desdits ensembles de sousconfigurations d'entrées, destinée à déterminer si ledit ensemble de sous-configurations d'entrées peut être récrit en tant que ledit symbole de début selon ledit ensemble de règles de production, comprend en outre, de préférence, les étapes consistant à: a) identifier un premier sous-ensemble dudit ensemble de sous-configurations d'entrées qui peut être récrit en tant que l'un desdits symboles non- terminaux; et b) déterminer s'il existe une règle de production dans laquelle ledit début de symbole produit, dans ladite partie syntaxique, ledit symbole non terminal identifié à l'étape a); c) renvoyer ladite représentation analysée dudit ensemble de sous- configurations d'entrées, s'il existe une telle règle de production,; et f) renvoyer ladite information exposant la raison pour laquelle ladite configuration est invalide, s'il n'existe pas de telles règles de production. L'étape d'identification d'un premier sous- ensemble dudit ensemble de sous-configurations d'entrées qui peut être récrit en tant que l'un desdits symboles non terminaux comprend alors, de façon avantageuse, les étapes consistant: a) identifier, dans ledit ensemble de sous- configurations d'entrées, une sous-configuration qui concorde avec l'un desdits mots-clés; b) identifier une règle de production qui correspond audit mot-clé; c) identifier un sous-ensemble desdits symboles qui satisfont à une première contrainte de ladite règle de production, ladite première contrainte possédant un symbole non terminal correspondant N; d) déterminer que ledit sous-ensemble desdits symboles ne contient qu'un seul symbole X; et e) déterminer qu'il existe une règle de production dans laquelle ledit symbole non terminal N produit, dans ladite partie syntaxique, ledit symbole X. Selon un deuxième aspect, la présente invention fournit un procédé de définition de relations spatiales multidimensionnelles entre symboles dans un système de reconnaissance de configurations valides de symboles, caractérisé en ce qu'il comprend les étapes consistant à: a) fournir un ensemble d'opérateurs spatiaux; b) fournir un ensemble de symboles identificateurs; c) fournir un ensemble de symboles non terminaux; d) fournir un ensemble de symboles mots-clés; e) fournir un ensemble de règles syntaxiques, chacune desdites règles syntaxiques définissant une production à partir de l'un desdits symboles non terminaux X vers un ou plusieurs desdits symboles identificateurs, desdits symboles non terminaux ou desdits symboles mots-clés Y; f) fournir un ensemble de règles sémantiques, chacune desdites règles sémantiques correspondant à une règle syntaxique, lesdites règles sémantiques définissant une relation physique entre X et Y; g) fournir un ensemble de contraintes pour chacune desdites règles syntaxiques, chacun desdits ensembles de contraintes décrivant des règles d'ordonnancement et des contraintes spatiales en utilisant lesdits opérateurs spatiaux. Selon un troisième aspect, la présente invention fournit un procédé d'analyse d'un ensemble de sous- configurations d'entrées pour déterminer des configurations valides desdites sous-configurations d'entrées selon un langage prédéfini, ledit langage utilisant une grammaire, ladite grammaire comprenant des symboles terminaux, des symboles non terminaux, un symbole de début et des règles de production, caractérisé en ce qu'il comprend les étapes consistant à: a) identifier un sous- ensemble dudit ensemble de sous-configurations d'entrées qui peut être récrit en tant que l'un desdits symboles non terminaux; b) récrire ledit ensemble de sous-configurations d'entrées en tant que ledit symbole non terminal; et c) déterminer s'il existe une règle de production o ledit symbole de début produit ledit symbole non terminal; Dans ce procédé dans lequel lesdits symboles non terminaux comprennent en outre des mots-clés et des identificateurs, ladite étape d'identification d'un sous-ensemble desdites sous-configurations d'entrées qui peut être récrit en tant que l'un desdits symboles non terminaux comprend en outre, de préférence, les étapes consistant à: a) déterminer que l'un desdits symboles dudit ensemble de sous- configurations d'entrées concorde avec l'un desdits mots-clés; b) identifier une règle de production qui correspond audit mot-clé; c) identifier un sous-ensemble desdits symboles qui satisfont à une première contrainte de ladite règle de production, ladite première contrainte possédant un symbole non terminal correspondant N; d) déterminer que ledit sous-ensemble desdits symboles ne contient qu'un seul symbole X; et e) déterminer qu'il existe une règle de production dans laquelle ledit symbole non terminal N produit, dans ladite partie syntaxique, ledit symbole X. Les buts, avantages et particularités de la présente invention décrits ci-dessus, ainsi que d'autres, seront mieux compris à partir de la description détaillée qui suit en se référant aux dessins annexés dans lesquels: la Figure la illustre un système d'ordinateur qui peut incorporer le mode de réalisation préféré de la présente invention. La Figure lb illustre une vue d'ensemble d'un système de reconnaissance de configuration selon le mode de réalisation préféré de la présente invention. La Figure 2 illustre les relations spatiales, entre les symboles et les expressions mathématiques, qui peuvent être reconnues selon le mode de réalisation préféré de la présente invention. La Figure 3 illustre, pour les divers symboles décrits à la Figure 2, des rectangles limites qui peuvent être utilisés selon le mode de réalisation préféré de la présente invention. Les Figures 4 a à 4 d sont des schémas logiques illustrant les étapes générales d'analyse qui peuvent être utilisées dans le mode de réalisation préféré de la présente invention. La Figure 5 illustre un exemple d'arbre d'analyse qui peut être engendré pendant l'analyse selon le mode de réalisation préféré de la présente invention. Une partie de la description de cette demande de brevet contient des matières qui font l'objet d'une protection de droits d'auteurs Le propriétaire des droits d'auteur n'émet aucune objection à la reproduction par fac-similé, par quiconque, de la description du brevet, telle qu'elle apparaît dans les fichiers ou enregistrements de brevet de l'Office des Brevets et des Marques Commerciales, mais réserve par ailleurs tous les droits d'auteurs, quels qu'ils soient. On va maintenant décrire un procédé de définition et d'identification de configurations valides dans un système de reconnaissance de configurations Dans la description qui suit, de nombreux détails spécifiques sont exposés, par exemple les relations spatiales spécifiques pour des fonctions mathématiques bien connues, afin de fournir une compréhension complète de la présente invention Il ressortira cependant à l'homme de l'art que la présente invention peut être mise en oeuvre sans ces détails spécifiques Dans d'autres cas, des techniques spécifiques de reconnaissance de caractères ou de manipulation de données n'ont pas été représentées de façon détaillée afin de ne pas obscurcir de façon inutile la présente invention. On décrira en premier lieu une vue générale du système d'ordinateur adapté au mode de réalisation préféré. Le mode de réalisation de la présente invention peut être mis en oeuvre sur des systèmes d'ordinateur présentant diverses configurations La Figure la illustre certains des composants de base d'un tel système d'ordinateur, mais elle ne doit pas exclure d'autres composants ni impliquer que ces composants sont discrets Il est connu que certains composants, de façon particulièrement remarquable un dispositif d'affichage, peuvent exercer aussi bien des fonctions d'entrée que de sortie (comme celles que l'on trouve dans les systèmes de type bloc-notes) Dans tous les cas, le système d'ordinateur illustré à la Figure la comprend un bus ou un autre moyen de communication 101 pour communiquer les informations, un moyen de traitement 102 couplé au bus 101 pour traiter l'information, une mémoire vive (REM) ou un autre dispositif de mémoire 103 (appelé habituellement une mémoire principale) couplé au bus 101 pour mémoriser les informations et les instructions destinées au processeur 102, une mémoire morte (ROM) ou un autre dispositif de mémoire statique 104 couplé au bus 101 afin de mémoriser une information statique et des instructions destinées au processeur 102. D'autres dispositifs couplés au bus 101 incluent un dispositif de mémorisation de données 105, par exemple un disque magnétique et une unité de disque pour mémoriser une information et des instructions, un dispositif alphanumérique d'entrées 106 incluant des touches alphanumériques et autres pour communiquer une information et pour ordonner des choix au processeur 102, un dispositif de commande de curseur 107, par exemple une souris, une balle roulante, des touches de commande de curseur, etc pour commander un curseur et communiquer une information et ordonner des choix au processeur 102, un dispositif d'affichage 108 pour afficher une entrée et une sortie de données et une tablette graphique 109 pour communiquer, par inscription, une information au processeur 102. Un dispositif d'exploration 110 peut également être couplé au système d'ordinateur par le bus 101 Le dispositif d'exploration 110 fournirait des représentations à topographie mémoire de documents en tant qu'entrées au logiciel d'exécution, par exemple un logiciel de reconnaissance de caractères, travaillant sur le système d'ordinateur. Il est instructif ici, pour éviter des confusions ultérieures, de distinguer la présente invention d'une utilisation de la présente invention On dit qu'un langage particulier est un exemple d'une grammaire. Ainsi, dans la description qui suit, la classe de grammaires contraintes d'attributs et le schéma d'analyse représentent le mode de réalisation préféré, alors que le langage d'expressions mathématiques donné à titre d'exemple représente un exemple du mode de réalisation préféré. Il est utile de définir ici un certain nombre de termes qui seront utilisés dans toute la présente description. Une configuration désigne l'objet qui doit être reconnu comme valide ou invalide Une configuration comprend typiquement une ou plusieurs sous- configurations Une sous-configuration correspond à un caractère individuel ou à un ensemble de caractères liés En se référant brièvement à la Figure 2, une expression mathématique " 3 + 4 " 201 est une configuration, alors que les sous-expressions " 3 + 4 " 202, le symbole de division 204 et le nombre " 5 " 203 sont des sous- configurations En outre, chacun des caractères individuels " 3 " 205, "+ " 209 et " 4 " 207 représenterait aussi une sous-configuration. Dans les définitions précédentes, les références concernent un langage visuel de systèmes de reconnaissance Cependant, de telles définitions ne doivent pas être considérées comme limitant le cadre de la présente invention Il ressortira à l'homme de l'art que les concepts décrits sont extensibles à d'autres domaines dans lesquels des procédés syntaxiques peuvent être utilisés. On va maintenant décrire les types de symboles utilisés dans la description d'une grammaire contrainte d'attributs Un symbole est simplement une représentation, dans la grammaire, d'une configuration ou d'une sous-configuration Il existe quatre types de symboles de base: les symboles mots-clés, les symboles non mots-clés, les symboles terminaux et les symboles non terminaux Un symbole mot-clé détient une signification spéciale dans l'analyse Un symbole mot- clé fournit un point de début local pour un processus d'analyse Par exemple, en ce qui concerne la Figure 2, le symbole de division 204 est un mot-clé Puis, un symbole non mot-clé représente un caractère qui n'est pas un mot-clé Par exemple, en ce qui concerne la Figure 2, le " 3 " et le " 4 " sont représentés par des symboles non mots-clés Collectivement, on désigne comme symboles terminaux l'ensemble des symboles mots- clés et non mots-clés Des symboles non terminaux représentent des sousconfigurations qui ne sont pas des symboles terminaux Par exemple, la sous-expression " 3 + 4 " 202 serait représentée par un symbole non terminal. On va maintenant donner une vue d'ensemble d'un système de reconnaissance d'une configuration selon le mode de réalisation préféré. Un système de reconnaissance de configurations dans le mode de réalisation préféré est généralement une composante fonctionnelle d'un système de reconnaissance Un tel système de reconnaissance peut être utilisé pour reconnaître des langages visuels, par exemple des organigrammes ou des expressions mathématiques ou des partitions musicales écrites Une entrée d'un système de reconnaissance de configuration proviendrait d'un système de reconnaissance de caractères ou d'un système semblable qui peut fournir à un ensemble de sous-configurations d'un niveau de symboles terminaux Lasortie du système de reconnaissance de configurations irait vers un système de manipulation de données Par exemple, le système de reconnaissance de configurations peut être incorporé à l'intérieur d'un système de calcul o un utilisation "écrit" sur une tablette graphique l'équation mathématique à exécuter Le système de reconnaissance de caractères séparerait et identifierait les- caractères et les symboles "écrits" individuels Le système de reconnaissance de configurations détermine si les caractères "écrits" sont valides de manière syntaxique, c'est-à-dire s'ils forment une expression valide Finalement, le système de manipulation de données effectuerait le calcul mathématique. La Figure lb illustre le système de reconnaissance de configurations selon le mode de réalisation préféré Le système de reconnaissance de configurations comprend une partie de définition de langage et une partie de vérification de configurations La base du système de reconnaissance de configurations est incorporée dans la grammaire 121 (partie de définition de langage) et dans l'analyseur 122 (partie de vérification de configurations) qui sont entourés, ou limités, par le rectangle 120 L'ensemble d'entrées 123 est constitué par un système de reconnaissance de caractères Comme décrit de façon plus détaillée ci-après, l'ensemble d'entrées 123 consiste en sous-configurations qui constituent la configuration en cours de reconnaissance L'expression analysée 124 ou une information d'expression invalide est fournie en tant que sortie de l'analyseur 122 On va maintenant décrire de façon plus détaillée chacune de ces fonctions. On décrira en premier lieu de façon détaillée la grammaire 121. Le système de reconnaissance de configuration du mode de réalisation préféré permet la représentation, par un exemple concret, d'un langage en utilisant le cadre de grammaires contraintes d'attributs En bref, la classe des grammaires contraintes d'attributs ajoute des contraintes dimensionnelles au cadre des grammaires d'attributs (décrites précédemment en liaison avec l'art antérieur) De telles contraintes dimensionnelles permettent l'implantation de langages qui comprennent des sous-configurations à relations multi- dimensionnelles La classe des grammaires contraintes d'attributs est décrite de façon plus détaillée ci- dessus. La fonction d'une grammaire dans une reconnaissance de configuration est représentée à titre d'exemple dans l'analyse d'expressions mathématiques simples En utilisant une notation anglaise, ou française, classique, l'expression " 3 + 5 " est valide. Cependant, les mêmes caractères peuvent être disposés différemment pour créer une expression, par exemple, " 3 + 11 qui est invalide En outre, en notation polonaise, l'expression 1 + 3 5 " est valide alors que l'expression " 3 + 5 " est invalide Dans cet exemple, si la grammaire choisie est la notation anglaise, ou française, une expression comprenant le symbole clé "+" n'est valide que lorsqu'il existe des nombres sur les deux côtés. On va maintenant décrire l'Analyseur 122. La partie de vérification du système de reconnaissance de configuration est définie en termes d'un Analyseur Un Analyseur interprète des configurations selon une grammaire particulière Un Analyseur applique à la configuration les règles de la grammaire afin de déterminer si les relations dimensionnelles et syntaxiques définies par la grammaire sont en place Si les relations ne sont pas en place, la configuration est déterminée comme invalide Si les relations sont en place, l'Analyseur fournit une représentation à structure en arbre de la configuration d'entrée, qui correspond aux règles de la grammaire La représentation à structure en arbre fournit une organisation logique donnée pour le système de manipulation de données. On va maintenant décrire les relations multidimensionnelles. Comme noté précédemment, la classe des grammaires contraintes d'attributs du mode de réalisation préféré permet de définir des configurations dont les sousconfigurations présentant des relations multidimensionnelles En se référant à nouveau à la Figure 2, il y est illustré une configuration dont les sous-configurations présentent une relation spatiale bidimensionnelle ( 2-D) A la Figure 2 est illustrée l'expression mathématique " 3 + 4 ", 201 La sous- expression 202, " 3 + 4 " est située au-dessus d'une sous-configuration 204, qui est ici le symbole de division Dans cet exemple, la sousconfiguration 204 est un mot-clé Ainsi, une sous-configuration 203, ici le nombre " 5 " est au-dessous du mot-clé 204 Un aspect de la relation spatiale de la configuration 201 est défini par rapport au mot- clé 204, (bien que les relations spatiales ne soient pas limitées, dans le mode de réalisation préféré, à celles qui impliquent un mot-clé) Ici, pour qu'il existe une configuration valide, une première sous- configuration doit être située au-dessus du mot-clé 204 et une deuxième sous- configuration doit être située au-dessous du mot-clé 204 Ainsi, une relation verticale valide entre des sous-configurations doit être établie Un deuxième aspect des relations spatiales est trouvé dans la sous- configuration 202 " 3 + 4 " Ici, la sous-configuration comprend un motclé 206 "+" et des sous-configurations 203 " 3 " et 207 " 4 " Pour que la sous-configuration 206 définisse une configuration valide, une sous- configuration doit se trouver à la gauche du mot-clé 206 et une sousconfiguration doit se trouver à la droite du mot-clé 206 Ainsi, il doit exister une relation horizontale valide entre sous-configurations. Ici, les sous-configurations 202 et 203 satisfont aux critères verticaux nécessaires et les sous- configurations 205 et 207 satisfont aux critères horizontaux nécessaires La manière dont il est déterminé que ces critères sont satisfaits est décrite en relation avec les attributs de la sous- configuration. Comme décrit de façon plus détaillée ci-dessous, chaque symbole terminal et non terminal d'une grammaire contrainte d'attributs possède une liste associée d'attributs Ces attributs concernent les propriétés d'une sous-configuration correspondante Par exemple dans le cas d'un langage visuel, l'attribut associé à une configuration peut être un rectangle limite Un rectangle limite est créé en projetant la configuration sur un système de coordonnées X-Y et en déterminant le rectangle qui limite la configuration La Figure 3 illustre des rectangles limites des sous-configurations de la configuration 201 de la Figure 2 Il faut noter que les rectangles limites illustrés à la Figure 3 ne sont pas précis en ce qu'ils sont plus grands que ceux qui seraient en fait définis Ceci est fait dans un but d'illustration afin que les différents rectangles limites puissent être clairement distingués Pour clarifier encore, on suppose que la configuration 201 représente un symbole non terminal Un rectangle limite 301 du symbole non terminal enveloppe la configuration entière Comme décrit plus loin en ce qui concerne un exemple spécifique d'implantation de langage, le rectangle limite d'un symbole non terminal est simplement l'union des rectangles limites des non mots- clés et des mots-clés qui constituent le non terminal. En outre, des rectangles limites 302, 303 et 304 sont illustrés et correspondent à la sous-configuration 202, à la sous-configuration de mot-clé 204 et la sous- configuration 203, respectivement Chacun des rectangles limites peut être défini en termes de ses adresses de coordonnées Afin de déterminer s'il est répondu à des contraintes spatiales spécifiées, les rectangles limites sont comparés Comme illustré à la Figure 3, le rectangle limite 302 de la sous- configuration 202 est situé au nord du rectangle limite 303 pour la sousconfiguration de mot-clé 204 En outre, le rectangle limite 304 de la sous-configuration 203 est situé au sud du rectangle limite 304 de la sous-configuration 203 Ainsi, il est répondu aux contraintes spatiales d'une configuration valide incluant un symbole de division. On va maintenant définir la classe de grammaires contraintes d'attributs conforme au mode de réalisation préféré. Une grammaire contrainte d'attributs diffère des grammaires connues par l'addition de contraintes dimensionnelles à un ensemble de règles syntaxiques et sémantiques Une autre distinction affine la classification des symboles terminaux. Une grammaire contrainte d'attributs est septuple. G = (VN, VK, VNK, A, P S, M) Dans la grammaire, VN est un ensemble de symboles non terminaux (non terminaux), VK est un ensemble de symboles mots-clés (mots-clés) et VNK est un ensemble symboles non mots-clés (non mots-clés) Il faut noter en outre que l'ensemble combiné des symboles mots-clés VK et des symboles non mots-clés VNK (c'est-à-dire VT = VK U VNK) est appelé l'ensemble des symboles terminaux VT (terminaux) Il faut noter que les symboles terminaux représentent typiquement les sous- configurations initiales d'entrée du procédé d'analyse du mode de réalisation La raison de la classification des symboles terminaux en classes séparées est décrite de façon plus détaillée ci-après. A est un ensemble d'attributs tel que pour chaque x e VT VN, A(x) désigne les valeurs d'attributs de x. Des attributs décrivent une caractéristique physique, par exemple les coordonnées d'un rectangle limite enfermant un symbole terminal ou un symbole non terminal Il faut noter que certains attributs peuvent être non définis pour un symbole particulier. P est un ensemble de règles de production Des règles de production définissent les règles syntaxiques et sémantiques, les contraintes qui doivent exister entre des terminaux et/ou des non terminaux afin qu'une configuration soit valide, et l'effet qui est réalisé lorsqu'une règle concorde Des règles de production sont décrites de façon plus détaillée ci-dessous S est le symbole de début Le symbole de début S est un symbole non terminal qui est utilisé pour indiquer le noeud de racine d'une structure en arbre qui sera engendrée pendant l'étape d'analyse Finalement, M est une application, sur les nombres réels, de l'ensemble des mots-clés L'application M fournit un facteur de pondération pour les symboles mots-clés et elle fournit un ordre de traitement pour un arbre d'analyse engendré. Comme décrit ci-dessus, l'ensemble des symboles mots-clés VK combiné avec l'ensemble des symboles non mots-clés VNK constitue l'ensemble des symboles terminaux VT L'ensemble des symboles terminaux VT est divisé en symboles mots-clés et symboles de non mots- clés pour plusieurs raisons Une première raison est qu'un symbole mot-clé peut être utilisé de façon commode comme un point de début local de l'analyse Par conséquent, un symbole mot-clé peut être utilisé comme un point de saisie, pour analyser un sous-ensemble de l'entrée Comme décrit ci-dessus, la mesure de la pertinence de mots-clés utilisés en liaison avec des contraintes fournit un procédé simple d'imposition d'un ordre selon lequel sont choisis les symboles d'entrée de début local Une deuxième raison de la dichotomie des symboles terminaux est de rendre uniforme la représentation de contraintes de règles de production. Toutes les contraintes d'une règle donnée peuvent utiliser le même mot-clé comme point de référence. Cependant, ceci pourrait facilement être généralisé. L'utilisation de mots-clés dans chaque règle de production d'une grammaire n'est pas nécessaire. Cependant, l'utilisation de mots-clés pour l'une quelconque des raisons mentionnées ci-dessus peut avoir pour effet de simplifier le processus d'analyse. En revenant aux règles de production décrites ci- dessus, chaque règle de production de P consiste en quatre parties une partie syntaxique, une partie sémantique, une partie de contrainte et une partie d'effet La forme de la partie syntaxique de la règle est: B -> Bl B 2 Bn o N est un entier positif, B e VN et Bt e VN U VT O Bi e VN U VNK, pour 2 règle est en correspondance avec ce symbole de règle. Des contraintes sont fréquemment exprimées en termes d'attributs des symboles Supposons, par exemple, que les attributs des symboles sont les points des coins de leurs rectangles limites Une contrainte souhaitée d'un symbole non terminal d'une règle peut consister à limiter les symboles d'entrée, associés à ce symbole de règle, à être les symboles situés à la droite du mot- clé Cette contrainte peut être établie en termes des rectangle limites des symboles d'entrée (par exemple le rectangle limite du symbole d'entrée doit se trouver à droite du symbole limite du mot-clé) Cependant, d'autres types de contraintes sont possibles Comme mentionné ci-dessus, des contraintes peuvent aussi être utilisées pour imposer un ordre d'analyse sur la base de la mesure de pertinence de mots-clés. A chaque règle est en outre associé un effet La partie d'effet d'une règle encode un effet qui est effectué en cas de concordance avec la règle Un tel effet peut être encodé comme fonction ou comme procédure Un exemple d'un effet consisterait à créer un mot-clé particulier si une règle est en concordance. Un deuxième exemple consisterait à provoquer une évaluation d'une sous-expression en concordance. Cependant, la partie d'effet d'une règle peut être vide, c'est-à-dire qu'il peut n'y avoir aucun effet à exécuter lorsque la règle est en concordance. Il est utile ici de passer en revue les différences entre des grammaires d'attributs et des grammaires contraintes d'attributs On observera qu'une règle de production d'une grammaire contrainte comprend une partie syntaxique et une partie sémantique comme dans le cas d'une grammaire d'attributs Cependant, une grammaire contrainte d'attributs incorpore dans une règle de production des contraintes et des effets Une contrainte associe des symboles d'entrée (par exemple des sous- configurations) à des symboles terminaux et non terminaux Ce sont les contraintes qui permettent la définition des relations spatiales entre les sous- configurations De plus, dans une grammaire contrainte d'attributs, il est fourni une division des symboles terminaux en mots-clés et non mots- clés Finalement, une grammaire contrainte d'attributs permet de poursuivre une distinction des mots-clés en permettant la définition d'une mesure de pertinence de chaque mot- clé. On va maintenant donner, en utilisant la définition ci- dessus, un exemple d'une grammaire contrainte d'attributs destinée à reconnaître des expressions mathématiques. Une telle grammaire serait utile dans des applications comme la reconnaissance d'expressions mathématiques écrites sur une tablette graphique Afin de simplifier l'exemple, on suppose que le langage définit deux opérateurs, l'addition (+) et la division (-), et que chaque caractère d'une expression du langage donnée à titre d'exemple a été déterminé comme valide. Dans ce cas, le langage possède le mot-clé "+ " pour l'addition, et le mot-clé "-" pour la division Le symbole "nk" désigne un non mot-clé Les non terminaux sont S, E, El et E 2, o S est le symbole de début Les valeurs d'attributs d'un symbole terminal sont les points des coins du rectangle limite d'une sous- configuration correspondante Les valeurs d'attributs d'un symbole non terminal sont les points des coins du rectangle limite minimal qui enferme toutes les sous- configurations correspondantes de symboles terminaux qui comprennent le symbole non terminal (on se rappellera que le rectangle limite minimal d'un non terminal est simplement une union des rectangles limites des symboles terminaux qui constituent le non terminal) Ainsi, pour un symbole terminal ou non terminal quelconque x, A(x) désigne les valeurs des points de coins d'un rectangle limite La mesure pertinente M d'un mot-clé est calculée comme la largeur de sa case limite Ici, M(+) = 32 et M(-) = 60. Les règles de production de la grammaire sont décrites au tableau A Dans la partie de contrainte de chaque règle, le symbole x indique un symbole terminal ou non terminal, alors que le symbole k désigne un symbole mot-clé Il faut noter que les règles de production de cette grammaire ne sont suivies d'aucun effet. TABLEAU A REGLES DE PRODUCTION Partie syntaxique Partie sémantique 1 S -> El nk A(S)=A(E)IA(nk) 2 E->+E 1 E 2 A(E) = A(+) UA(E 1)U 3 E E 1 E 2 Contraintes Cl(x) = vrai A(E 2) CO(x) = Eq(x,+) et M(x) 2 M (k) pour tous les k Si plus d'un x satisfait à CO, en choisir un arbitrairement. Cl(x)=Ouest(x,+) C 2 (x)=Est (x,+). A(E)=A(-)U A(E 1) UA(E 2) CO(x) = Eq(x,-)) et M(x) 2 M(k) pour tous les k. Si plus d'un x satisfait à CO, en choisir un arbitrairement. Cl(x)=Nord(x,-) C 2 (x)=Sud (x,-) 4 E 1 E Ink A(E 1)=A(E)JA(nk) Cl(x)=vrai E 2 Elnk A(E 1)=A(E)JA(nk) Cl(x)=vrai Afin d'établir une correspondance entre des contraintes et des symboles d'entrée, on notera que les symboles situés sur le côté droit de chaque règle sont implicitement numérotés 0, 1 et ainsi de suite Par exemple, à la règle 2, chaque symbole d'entrée qui satisfait à la contrainte C 1 est en correspondance avec le symbole E 1. Les symboles utilisés dans les règles de production seraient familiers à l'homme de l'art, mais leurs définitions sont fournies ici afin d'aider à la compréhension Le symbole "->" peut être lu comme "produit" Le symbole "|" peut être lu comme "ou" Le symbole "U 3 " peut être lu comme "union avec". Finalement, le symbole "e" peut être lu comme "est un élément de" Il faut noter que des contraintes spatiales, par exemple Nord, Sud, Est et Ouest sont des primitives fonctionnelles prédéfinies De telles primitives fonctionnelles comparent les rectangles limites pour des symboles afin de déterminer s'il est satisfait à un critère spatial prédéterminé Il serait évident d'inclure d'autres contraintes spatiales, par exemple des diagonales pour des opérations matricielles, afin de satisfaire à toutes exigences spatiales pour une implantation particulière de langage. En ce qui concerne la règle 1, la partie syntaxique signifie que le symbole de début S produit le non terminal E ou le non mot-clé nk Le non mot-clé serait ici un caractère ou un nombre conforme à la définition de l'alphabet de langage La partie sémantique signifie que l'attribut, c'est-à-dire le rectangle limite, du symbole de début serait égal à l'attribut du non terminal ou du non mot-clé La partie de contrainte indique que tout symbole satisfait à la règle. En ce qui concerne la règle 2, la partie syntaxique signifie que le non terminal E produit un mot-clé "+" associé à un premier non terminal (E 1) et une deuxième non terminal (E 2) Il faut noter que cette partie syntaxique n'indique pas une relation spatiale entre les deux non terminaux, mais indique seulement que deux expressions doivent être associées au mot-clé. La partie sémantique signifie que le rectangle limite du non terminal E est égal à l'union des rectangles limites du mot-clé "+" et des non terminaux E 1 et E 2. La partie de contrainte fournit les relations spatiales nécessaires La contrainte C O exige que le symbole d'entrée soit le mot-clé "+" et que la mesure de pertinence du mot-clé "+" soit supérieure ou égale à la mesure de pertinence de tous les mots-clés qui n'ont pas encore été traités Si plusieurs mots-clés 11 +", possèdent la même mesure de pertinence, l'un d'eux est choisi arbitrairement La contrainte C O fournit un moyen par lequel l'analyse de mot-clé peut être ordonnée La contrainte C 1 choisit un symbole terminal ou non terminal quelconque qui est à l'ouest du mot-clé "+" La contrainte C 2 choisit un symbole terminal ou non terminal quelconque qui est à l'est du mot-clé "+". En ce qui concerne la règle 3, la partie syntaxique signifie que le non terminal E produit un mot-clé "-" associé à un premier non terminal (E 1) et à un deuxième non terminal (E 2) Il faut noter que cette partie syntaxique n'indique pas une relation spatiale entre les deux non terminaux, mais qu'elle indique seulement que deux expressions doivent associées au mot-clé La partie sémantique signifie que le rectangle limite du non terminal E doit être égal à l'union des rectangle limites du mot-clé "-" et des non terminaux E 1 et E 2 La partie de contrainte fournit les relations spatiales nécessaires Comme pour la règle 2, la contrainte C O exige que le symbole d'entrée soit le mot-clé "-" et que la mesure de pertinence de ce mot- clé "- " soit supérieure ou égale à la mesure de pertinence de tous les mots-clés qui n'ont pas encore été traités Si plusieurs mots-clés "- " possèdent la même mesure de pertinence, l'un d'eux est choisi arbitrairement La contrainte C 1 choisit un symbole terminal ou non terminal quelconque qui est au nord du mot clé "-" La contrainte C 2 choisit un symbole terminal ou non terminal quelconque qui est au sud du mot-clé "_-. La partie syntaxique de la règle 4 signifie que le non terminal El produit le non terminal E ou le non mot-clé nk La partie sémantique signifie que le rectangle limite du non terminal E 1 égal le rectangle limite du non terminal E ou du non mot-clé La partie de contrainte indique que tout symbole satisfait à la contrainte. La règle 5 est identique à la règle 4 sauf que c'est le non terminal E 2 qui est considéré La mise en oeuvre de toutes les règles de production ressortira mieux de la description d'un processus d'Analyseur décrit ci-dessous. * On va maintenant décrire des détails d'implantation du langage utilisé comme exemple. Dans une implantation d'une grammaire contrainte d'attributs, les symboles terminaux représentent l'alphabet du langage L'alphabet est un ensemble de symboles prédéterminés L'implantation inclurait des fonctions d'identification de mots-clés et de non mots- clés, et une fonction d'association d'un mot-clé à une règle de production Par exemple, la fonction permettant de déterminer si un caractère est un symbole mot-clé peut être implantée de la façon suivante Un caractère c est prévu comme paramètre d'entrée de la fonction Puis, la fonction renvoie la valeur VRAIE si c est un mot-clé du langage, elle renvoie la valeur FAUSSE dans le cas contraire Une implantation semblable peut être donnée pour la fonction qui détermine si un symbole est un non mot-clé du langage. Le tableau B illustre les fonctions d'identification de mots-clés, de non mots-clés, et d'association d'un mot- clé à une règle de production dans le langage de programmation C pour le langage donné à titre d'exemple qui est décrit dans la section précédente. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. TABLEAU B Boolean Is Keyw(c) char c; { return ( c =='+' lc=='-'); } Symbol Kind char c; Get Keyw Kind (c) ( switch (c) { case '+': return (addop)' case": return ( divline); default: Debug Str("\p Get Keyw Kind: unknown symbol"); } } Boolen Is Non Keyw(c) char c; ( return ('O' ≤c && c ≤'9 ')II('a' ≤ c && c ≤'z') lI'A' ≤ c && c ≤ 'Z')); } Une première fonction Is KEYW, lignes 1 à 5, reçoit un caractère et détermine si c'est un mot clé défini à l'intérieur du langage Dans cet exemple, l'ensemble de mots-clés est constitué par les symboles +, -. Une deuxième fonction Get Keyw Kind, lignes 6 à 18, évalue un caractère fourni pour déterminer le type de mot-clé dont il s'agit Une telle évaluation est nécessaire pour identifier ultérieurement les règles associées au mot-clé Par exemple, les lignes 10-11 vérifient le cas d'un caractère "+" et associent au caractère "+" une règle de production appelée addop. Chacun des mots-clés est associé à une chaîne de caractères qui identifie une règle de production. Finalement, les lignes 14-15 fournissent un message d'erreur par défaut si un non mot-clé est amené comme entrée. Une troisième fonction Is Non Keyw, lignes 19 à 24, identifie un caractère comme étant un non mot-clé Dans ce cas, l'ensemble de non mots-clés est constitué par les chiffres de " O " à " 9 ", les caractères de "a" à "z", et les caractères de "A" à "Z". Le tableau C illustre la définition d'une règle de production Dans ce cas, la règle de production est associée au mot-clé "+" On suppose ici que le symbole mot-clé "+" a été associé de la manière décrite plus haut à la chaîne de caractères "addop". TABLEAU C 1.rule=New Object(rule Kind,"\psexpression",&r); 2.Add Rule(rule, rulesaddop,sexpression,UNDEFINED, 3 UNDEFINED); 4.symbol=New Object(symb Kind, "\paddop",&r); 5.Add Symbol To Rule(symbol,rule,addop,UNDEFINED,UNDEFINED 6.UNDEFINED,l); 7.symbol=New Object(symb Kind,"\psexpression",&r)' 8 Add Symbolto Rule(symbol, rule,sexpression,c WEST, WEST,0,2); 9.symbol=New Object(symb Kind,"\pterm",&r); 10.Add Symbol To Rule(symbol, rule,term,c EAST,EAST,0,3); Il existe deux fonctions primaires qui sont utilisées dans la définition d'une règle de production; Add Rule et Add Symbolto Rule La fonction Add Rule est le moyen par lequel une règle est ajoutée à un ensemble de règles La fonction Add Rule possède la syntaxique suivante: Add Rule (r, R, k, lhs, ai, a 2) o r est la règle en cours de traitement, R est un ensemble de règles de la grammaire, k est le mot- clé, lhs est le symbole du côté gauche et a, et a 2 sont des effets qui peuvent être effectués lorsque la règle est en concordance. La fonction Add Symibol To Rule est le moyen par lequel un symbole est ajouté à la règle Dans ce cas, un symbole est, soit un mot-clé, soit un non mot-clé, soit un terminal La fonction Add Symbolto Rule possède la syntaxique suivante: Add Symbol To Rule (s, r, n, c, d, q, m) o S est le symbole, r est la règle en cours de traitement, N est le nom de symbole, c est le nom de la fonction contrainte associée au symbole, d est le nom de la procédure d'affichage du symbole, si la règle comprend un mot-clé, q est égal au numéro de symbole du mot-clé et q est égal à -1 si la règle nepossède pas de mot-clé, et m est le numéro de symbole pour le symbole en cours de traitement Il est important de noter qu'il existe typiquement une série de symboles associés à une règle. En se référant au tableau C, en utilisant la notation de grammaire de règles décrite ci-dessus, une règle de la forme suivante est créée: Sexpression -> addop Sexpression Term Il faut noter que le symbole Sexpression à gauche de la règle a été défini par la fonction Add Rule alors que les symboles addop, Sexpression et Term du côté droit de la règle ont été définis par la fonction Add Symbolto Rule. En se référant aux lignes 2 et 3 du tableau C, la fonction Add Rule définit le mot-clé addop à associer à la règle et à un symbole de côté gauche Sexpression. Ici, les notations UNDEFINED indiquent qu'il n'existe aucun effet qui serait effectué en cas de concordance de cette règle. En se référant aux lignes 4 à 6 du tableau C, la fonction Add Symbolto Rule définit un symbole mot-clé addop sur le côté droit de la règle Le symbole mot-clé addop ne présente aucune contrainte spatiale et il lui a été assigné le numéro de symbole 1. En se référant aux lignes 7 et 8 du tableau C, la fonction Add Symbolto Rule définit le symbole Sexpression sur le côté droit de la règle selon une contrainte qui est d'être à l'ouest du numéro de symbole 1, c'est-à- dire du symbole mot-clé addop A ce symbole a été assigné le numéro de symbole 2. En se référant aux lignes 9-10 du tableau C, la fonction Add Symbolto Rule définit le symbole Term sur le côté droit de la règle selon une contrainte qui est d'être à l'est du numéro de symbole 1, c'est-à- dire le symbole mot-clé addop A ce symbole a été assigné le numéro de symbole 3. En ce qui concerne les contraintes spatiales incluses dans les règles de production, des comparaisons sont effectuées sur la base de rectangle limites associés à chaque symbole (selon la définition de la partie sémantique de la règle) Une telle contrainte est illustrée au tableau D. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 21. 22. Boolean int Rect Rect TABLEAU D c EAST (dist, rl, r 2) *dist; *rl; *r 2; int midx, midy; Boolean east; if (Rect Height (*rl) right + rl-> left) >> 1; midy = (rl->top + rl->bottom) >> 1; east = (r 2->top ≤midy) && (midy≤r 2->bottom) && (midx ≤r 2->right); *dist = r 2->right-midx; } else { midx = (r 2->right + r 2->left) >> 1; midy = (r 2->top + r 2-> bottom) >> 1; east = (rl->top ≤midy) && (midy≤rl->bottom) && (rl-> right≤midx); *dist = midx-rl->right; *} return (east) } Le tableau D illustre une implantation en langage C d'un "Est" de contrainte La fonction renvoie deux valeurs: une valeur de Boole indiquant si un deuxième rectangle (c'est-à-dire r 2) se trouve ou non à l'est d'un premier rectangle (c'est-à-dire rl) et la distance orientée vers l'est entre les deux rectangles Si le deuxième rectangle (r 2) n'est pas à l'est du premier rectangle (rl), une distance invalide est renvoyée I 1 faut noter que la coordonnée Y augmente de haut en bas et que la coordonnée X augmente de gauche à droite. Le flux d'opération de la contrainte c EAST est semblable à celui qui est utilisé pour toutes les contraintes de ce langage Le traitement est d'abord basé sur une hypothèse concernant le rectangle dont la hauteur est la plus grande La ligne 8 du tableau D est un exposé conditionnel qui dicte la commande de traitement Si la hauteur de ri est inférieure à celle de r 2, les points médians de ri sont déterminés (lignes 9-10) Une valeur vraie est renvoyée, c'est-à-dire r 2 est à l'est de ri, si la coordonnée Y du point supérieur gauche de r 2 est inférieure ou égale à la coordonnée Y du point médian de ri et que la coordonnée Y du point médian est inférieure ou égale à la coordonnée Y située au point inférieur droit de r 2 et que la coordonnée X du point inférieur droit de r 2 est inférieure ou égale à la coordonnée X du point médian de ri (voir lignes 11-12) Dans le cas contraire, une valeur fausse est renvoyée La distance renvoyée est la valeur obtenue en soustrayant de la coordonnée X du point inférieur droit de r 2 la coordonnée X du point médian de ri (voir ligne 13). Si la hauteur de ri est supérieure ou égale à la hauteur de r 2, le point médian de r 2 est déterminé (lignes 16-17) Une valeur vraie est renvoyée, c'est-à- dire ri est à l'est de r 2, si la coordonnée Y du point supérieur gauche de ri est inférieure ou égale à la coordonnée Y du point médian de r 2 et que la coordonnée Y du point médian est inférieure ou égale à la coordonnée Y du point inférieur droit de ri et que la coordonnée X du point inférieur droit de ri est inférieure ou égale à la coordonnée X du point médian de r 2 (voir lignes 18-19) Dans le cas contraire, une valeur fausse est renvoyée La distance renvoyée est le résultat obtenu en soustrayant de la coordonnée X du point inférieur droit de r 2 la coordonnée X du point de médian de r 2 (voir ligne 20). On va maintenant décrire le procédé d'analyse du mode de réalisation préféré. Le procédé d'analyse du mode de réalisation préféré produit un arbre analysé à partir d'un ensemble de sous-configurations d'entrée et d'une grammaire contrainte d'attributs si les sous-configurations d'entrée constituent une configuration valide selon la définition de la grammaire Si l'entrée ne définit pas une configuration du langage, le procédé d'analyse renvoie un message d'erreur Le procédé du mode de réalisation préféré utilise des techniques de programmation par récurrence Il faut noter que le procédé d'analyse du mode de réalisation préféré utilise l'heuristique pour limiter le processus d'analyse Dans la description du procédé du mode de réalisation préféré, il est fourni un moyen de retour. Un tel moyen de retour serait utilisé dans des situations dans lesquelles une poursuite de l'analyse n'est plus possible après que l'on a tenté d'analyser une règle En utilisant un tel moyen de suite, toute combinaison analysable significative possible peut pourrait être dérivée. Le procédé d'analyse du mode de réalisation préféré est illustré aux Figures 4 a à 4 d En se référant à la Figure 4 a, le procédé du mode de réalisation préféré comprend, comme paramètres d'entrée, un exemple d'une grammaire contrainte d'attributs G, un symbole non terminal L, et un ensemble non vide de symboles d'entrées I, étape 401. L'ensemble I est modifié pendant le traitement du procédé Le procédé d'analyse est implanté sous la forme d'une fonction qui renvoie une valeur "réussite" si les éléments de l'ensemble de symboles d'entrée I peuvent être récrits comme le symbole non terminal L en utilisant la grammaire G Dans le cas contraire, la fonction envoie "défaillance" Pour l'appel initial, le symbole L est le symbole de début S et I est l'ensemble initial de symboles d'entrée (c'est-à-dire les sous- configurations) reçus d'un système de reconnaissance de caractères La notation utilisée pour invoquer la fonction sera Parse (G, L, I) Des invocations par récurrence fourniront typiquement des valeurs différentes de L et I Ainsi, la notation du premier appel de la fonction sera Parse (G, S, 1). Il faut ensuite déterminer si l'ensemble I contient plus d'un élément, étape 402 En se référant maintenant à la Figure 4 b, si l'ensemble I contient un symbole élément, l'un des trois cas suivants se présente En premier lieu, s'il est déterminé que le symbole L est du même type que l'élément de l'ensemble d'entrées I, étape 403 S'ils sont du même type, une valeur de réussite est renvoyé étape 404 Si L n'est pas de la même sorte syntaxique que l'élément de l'ensemble d'entrées I, L doit être un symbole non terminal Il est ensuite déterminé s'il existe une règle de production telle que le symbole non terminal produit l'élément de l'ensemble d'entrées I, étape 405. On y parvient en examinant la partie syntaxique des règles de production afin de localiser l'ensemble d'entrées I comme étant sur le côté droit de la règle et le symbole non terminal comme étant sur le côté gauche de la règle Si aucune règle de production ne produit l'élément, le procédé renvoie une valeur "défaillance", étape 406 Ceci signifie qu'une sous- configuration invalide a été trouvée dans la configuration et que la configuration n'est donc pas valide selon le langage S'il existe bien une telle règle de production, le symbole non terminal est enlevé de l'ensemble I, étape 407 Puis, un symbole intermédiaire non terminal désigné par L est créé, ses valeurs étant calculées en utilisant le règle de production identifiée à l'étape 405, étape 408 Le symbole non terminal L est ensuite ajouté à l'ensemble I, étape 409 Une valeur de "réussite" de l'invocation de la fonction est ensuite renvoyée, étape 410 Il faut noter que les étapes 403 à 410 vérifient la validité des sous-configurations. En se référant de nouveau à la Figure 4 a, s'il existe plus d'un élément dans l'ensemble d'entrées I, il faut déterminer quel symbole de l'ensemble d'entrées I doit être traité Il est déterminé en premier lieu si l'ensemble d'entrées I contient des mots-clés, étape 611 Si tel est le cas, la mesure de pertinence 1 de chaque mot-clé dans l'ensemble d'entrées I est calculée, étape 412 Puis, le mot-clé le plus pertinent, c'est-à-dire le mot-clé dont la valeur de pertinence est la plus élevée est choisi, étape 413. Des règles de production qui contiennent le mot-clé K sur leur côté droit et dont le côté gauche peut être dérivé de L sont collectées dans un ensemble appelé R 1, étape 414 Toutes les règles de production de R 1 sont ensuite marquées comme inutilisées, étape 416. En variante, si l'ensemble I ne contient aucun mot-clé, l'ensemble de règles de production qui ne contiennent aucun mot-clé et dont le côté gauche peut être dérivé de L est placé dans l'ensemble R 1, étape 415 Ici aussi, toutes les règles de production de R 1 seraient marquées comme inutilisées selon l'étape 416. En se référant maintenant à la Figure 4 c, il est ensuite déterminé s'il existe une règle de production inutilisée, étape 417 S'il n'existe aucune règle de production inutilisée, il est renvoyé une valeur de défaillance, étape 418 S'il existe dans R 1 une règle inutilisée, on choisit une règle non utilisée et on la marque comme utilisée, étape 419 Il est ensuite déterminé si la règle choisie comprend un mot-clé, étape 420 Si la règle choisie ne contient pas de mot- clé, la forme de la règle est B Bl B 2 * Bn et les symboles possèdent les contraintes correspondantes C 1 C 2 Cn, étape 421 Dans le cas contraire, la forme de la règle est B K B 2 * Bn et les contraintes correspondantes des symboles sont C 1 C 2 Cn, étape 422. Pour chaque symbole Bl de la règle choisie, on forme un ensemble Il d'éléments de I qui satisfont à la contrainte Ci de la règle identifiée, étape 423 Pour chaque symbole terminal Bu si l'ensemble Ii contient un élément unique et que le type d'élément est égal à Bl on marque la "réussite" de l'accord, sinon on marque la "défaillance" de l'accord, étape 424 a Le résultat de chacune des vérifications de symboles terminaux Bl est déterminé, étape 424 b Si les accords ne sont pas tous des réussites, c'est-à-dire si l'un des accords est marqué de la valeur "défaillance", une vérification concernant une règle inutilisée est effectuée selon l'étape 417 et le procédé continu comme décrit ci- dessus. Si les accords de tous les symboles terminaux de la règle constituent des réussites, un appel par récurrence est ensuite effectué de chaque symbole non terminal Bi, étape 425 a (par exemple Parse G, Bi, Ii). Le résultat de chaque appel est ensuite déterminé, étape 425 b Si tous les appels ne sont pas des réussites, c'est-à-dire si l'un des appels par récurrence renvoie une valeur de "défaillance", il est effectué une vérification concernant une règle inutilisée selon l'étape 417 et le procédé continue comme décrit ci-dessus. En se référant maintenant à la Figure 4 d, si tous les appels par référence renvoient effectivement une "réussite', un nouveau symbole non terminal B est créé à partir du côté gauche de la partie syntaxique de la règle de production utilisée et les valeurs d'attributs sont fournies à partir de la partie sémantique de la règle de production, étape 426 Le nouveau symbole non terminal B est ensuite ajouté à l'ensemble d'entrées I, étape 427 Puis, tous les symboles qui ont été en accord avec la règle sont enlevés de l'ensemble d'entrées I, étape 428 La partie d'effet, s'il en existe, associée à la règle est ensuite exécutée, étape 429 Finalement, un appel par récurrence au moyen de l'ensemble d'entrées modifié I et du symbole L (par exemple Parse G, S, I), étape 430. Afin qu'un appel initial de la fonction d'Analyseur renvoie une valeur de "réussite", toutes les invocations de la fonction d'Analyseur doivent avoir renvoyé une valeur de "réussite" Si une valeur de "défaillance" a été renvoyée à un point quelconque, la valeur de l'appel initial sera "défaillance". Il faut noter que le procédé d'Analyse du mode de réalisation préféré est général par nature C'est-à- dire, qu'il n'existe aucune restriction quant à l'existence de mots-clés dans les règles En outre, il faut noter que l'envoi de messages d'erreurs n'a pas été décrite Il serait pour l'homme de l'art de renvoyer des messages d'erreurs à des points du procédé o une valeur de défaillance est renvoyée. On va décrire de façon plus détaillée le fonctionnement du procédé d'analyse du mode de réalisation en ce qui concerne l'exemple du langage mathématique décrit ci-dessus Considérons l'équation mathématique suivante: 3 + 1 La sortie des processus de reconnaissance de caractères fournirait l'ensemble d'entrées initiales (+, -, 3, 4, 1) Dans un appel initial, le symbole non terminal est le symbole de début S et l'ensemble d'entrées Ainsi, la grammaire G = Exemple d'Expressions Mathématique, L = le symbole de début S et I = (+, -, 3, 4, 1) En utilisant la notation décrite ci-dessus, l'appel initial serait Parse (G, S, 1) Il faut noter que chaque nombre de l'ensemble I est un symbole du terminal (nk) Cependant, dans un but de clarté de l'exposé, on se référera aux nombres au lieu de se référer à leur type. Puisque l'ensemble d'entrées initial comprend plus d'un élément, il est déterminé s'il existe un mot-clé quelconque dans l'ensemble d'entrées I Les mots-clés "+" et c"-" existent dans l'ensemble d'entrées I Des mesures de pertinence de chaque mot clé sont ensuite calculées Les mesures de pertinence respectives sont M(+) = 32 et M(- ) = 60 Ainsi, le mot-clé le plus pertinent est "-" (le symbole de division) Lors de l'examen des règles de production concernant le mot- clé "-", on trouve qu'une seule de ces règles existe La règle de production du mot-clé "-" est donnée ci- dessous Le symbole x de la partie de contrainte de la règle désigne un symbole non terminal ou un symbole terminal alors que le symbole k désigne un symbole mot- clé. E -> -E 1 E 2 A(E) = A(-) U A(E 1) U A(E 2) CO(x) = Eq (x,-) et M(x) > M(k) C 1 (x) = Nord(x,-) C 2 (x) = Sud (x,-) La règle est ensuite placée dans un ensemble R 1, marquée inutilisée, choisie et marquée comme utilisée. Un sous-ensemble de symboles provenant de I, qui satisfait aux contraintes correspondantes est créé pour chacun des symboles non terminaux E 1 et E 2 Ces sous- ensembles sont appelés Il et I 2, respectivement Le sous-ensemble Il = { 3}, que le non mot-clé 3 satisfait à Ci et le sous-ensemble I 2 = { 4} puisque le non mot- clé 4 satisfait à C 2 Des appels par récurrence sont ensuite effectués au moyen des symboles E 1 et E 2 et de leurs sous-ensembles correspondants, c'est-à-dire Parse (G, El, Il) et Parse (G, E 2, I 2). En évaluant l'appel par récurrence Parse (G, E 1, Il), il est déterminé que l'ensemble d'entrées ne contient qu'un élément, c'est-à-dire ( 3). Le symbole non terminal E 1 ne possède pas le même type que l'élément de Il, mais une règle de production quoi produit l'élément est la règle 4 E 1 Elnk (on se rappellera que le nombre 3 est un non mot- clé) Ainsi, l'élément de l'ensemble d'entrées Il peut être remplacé par le symbole non terminal E 1 On notera que la partie sémantique de la règle 4 prévoit que A(E 1) = A( 3). L'élément 3 est enlevé de l'ensemble d'entrées Il tandis que le symbole intermédiaire E 1, utilisé dans l'appel par récurrence est ajouté à l'ensemble Par conséquent, Il = {E 1} Cette invocation de la fonction envoie ensuite une valeur de "réussite". En évaluant l'appel par récurrence Parse (G, E 2, I 2), il est déterminé que l'ensemble d'entrées ne contient qu'un élément, c'est-à-dire ( 4). Le symbole non terminal E 2 ne possède pas le même type que l'élément de I 2, mais une règle de production qui produit l'élément est la règle 5 E 2 Elnk (on se rappellera que le nombre 4 est un non mot- clé) Ainsi, l'ensemble d'entrées I 2 peut être récrit comme le symbole non terminal E 2 On notera que la partie sémantique de la règle 5 prévoit que A(E 2) = A( 4). Ainsi, l'élément 4 est enlevé de l'ensemble d'entrées I 2 alors que le symbole intermédiaire E 2, utilisé dans l'appel par récurrence est ajouté à l'ensemble Par conséquent, I 2 = {E 2} Cette invocation de la fonction renvoie ensuite une valeur "réussite". Puisque les deux fonctions appelées par récurrence ont renvoyé des "réussites", un symbole non terminal E est créé et ajouté à l'ensemble d'entrées I. E provient du côté gauche de la partie syntaxique de la règle 3 En outre, la valeur d'attribut du non terminal E est dérivée de la partie sémantique de la règle. Ainsi, A(E) = A(-)U A( 3) U A( 4) Les symboles accordés dans la règle sont enlevés de l'ensemble d'entrées I, et le symbole non terminal du côté gauche est ajouté de sorte que I = (E,+,l) Effectivement, la sous- configuration a été récrite comme E Il n'existe aucune partie d'effet dans cette règle Un appel par récurrence Parse (G, S, I) est ensuite effectué. Pendant cet appel par récurrence, il existe ici aussi plus d'un élément dans l'ensemble d'entrées; et le mot-clé "+" est le plus pertinent (et seul) mot-clé. Lors de l'examen des règles de production du mot-clé "+", on trouve qu'un seul de ces mots-clés existe La règle de production du mot-clé "+" est donnée ci- dessous Le symbole x de la partie de contrainte de la règle désigne un symbole non terminal ou un symbole terminal, alors que le symbole k désigne un symbole mot-clé. E -> E 1 E 2 A(E) = A(+)U A(E 1) U A(E 2) CO(x) = Eq (x,+) et M(x) 2 M(k) C 1 (x) = Nord(x,+) C 2 (x) = Sud (x,+) La règle est ensuite insérée dans l'ensemble R 1, marquée inutilisée, choisie et marquée comme utilisée. Comme ci-dessus, un ensemble de symboles provenant de I, qui satisfait aux contraintes correspondantes, est créé pour chacun des symboles E 1 et E 2 Ces sous- ensembles sont appelés Il et I 2, respectivement Le sous-ensemble Il = {E} puisque le non terminal E satisfait à C 1 et le sous-ensemble 12 = { 1} puisque le non mot-clé 1 satisfait à C 2 Des appels par récurrence sont ensuite effectués avec les symboles E 1 et E 2 et leurs sous- ensembles correspondants, c'est-à-dire Parse (G, El, Il) et Parse (G, E 2, I 2). En évaluant l'appel par récurrence Parse (G, El, Il), il est déterminé que l'ensemble d'entrées ne contient qu'un élément, c'est-à-dire (E). Le symbole non terminal El ne possède pas le même type que E, mais une règle de production qui produit l'élément est la règle 4: E 1 E Ink Ainsi, l'élément de l'ensemble Il est remplacé par le symbole non terminal E 1 On notera que la partie sémantique de la règle 4 prévoit que A(E 1) = A(E) Ainsi, l'élément E est enlevé de l'ensemble d'entrées Il et le symbole intermédiaire El, utilisé dans l'appel par récurrence, est ajouté à l'ensemble Par conséquent, Il = {El} La fonction renvoie ensuite une valeur de "réussite". En évaluant l'appel par récurrence Parse (G, E 2, I 2), il est déterminé que l'ensemble d'entrées ne contient qu'un élément, c'est-à-dire ( 1). Le symbole non terminal E 2 ne possède pas le même type que 1 mais une règle de production qui produit l'élément est la règle 5 E 2 E Ink (rappelons que le nombre 1 est un non mot-clé) Ainsi, l'ensemble d'entrées I 2 peut être récrit comme le symbole non terminal E 2 On notera que la partie sémantique de règle 5 prévoit que A(E 2) = A( 1) Ainsi, l'élément 1 est enlevé de l'ensemble d'entrées I 2 et il est remplacé par le symbole intermédiaire E 2 utilisé dans l'appel par récurrence Par conséquent, I 2 = {E 2} La fonction appelée par récurrence renvoie ensuite une "réussite". Puisque les deux fonctions appelées par récurrence ont renvoyé une "réussite", un nouveau symbole non terminal E est créé et est ajouté à l'ensemble d'entrées I E provient du côté gauche de la règle syntaxique 2 du mot-clé "+" Les symboles accordés dans la règle, y compris "l'ancien" E, sont enlevés de l'ensemble d'entrée 1, de sorte que I = (E). En outre, la valeur d'attribut du non terminal E est dérivée de la partie sémantique de la règle Ainsi, A(E) = A(l) U A("ancien" E) U A(l) Ici, l'expression E + 1 a été récrite en tant que E La règle ne comprend aucune partie d'effet Un autre appel par récurrence Parse (G, S, I) est ensuite effectué. Dans cet appel par récurrence, il n'existe qu'un élément de l'ensemble d'entrées I, c'est-à-dire E Ce non terminal n'est pas égal à S mais une règle de production qui produit l'élément est la règle 1 S Ejnk Ainsi, l'élément de l'ensemble I est remplacé par le symbole non terminal S On notera que la partie sémantique de la règle 1 prévoit que A(S) = A(E) Cette invocation par récurrence de la fonction renvoie ensuite une valeur de "réussite". Les valeurs de "réussites" renvoyées se propagent ensuite en remontant en retour de sorte que l'invocation initiale fournit une valeur de succès de sorte que l'ensemble d'entrées I est récrit en tant que le symbole de début S et que la configuration est estimée valide. La structure en arbre qui est engendrée comme résultat de l'analyse est illustrée à la Figure 5 A la Figure 5, le symbole de début 501 est le noeud de racine Un symbole non terminal E 502 correspond à l'analyse du mot-clé "+" Le non terminal E 502 est ensuite divisé en non terminaux composants E 1 504, E 2 505 et le mot-clé "+" 503 Les non terminaux 504 et 505 sont encore analysés en un non terminal 506 et un non mot-clé " 1 " 507, respectivement Le non terminaux E 506 est analysés en le mot-clé 11 "-" 508 et des non terminaux E 1 309 et E 2 510 Finalement, le non mot-clé " 3 " 511 correspond au non terminal E 1 509 et le non mot-clé " 4 " 512 correspond au non terminal E 2 510. Un procédé de définition et d'identification de configurations valides d'un système de reconnaissance de configurations a donc été décrit. REVENDICATIONS 1 Procédé de définition et de détermination d'une configuration valide dans un système de reconnaissance d'une configuration valide, ladite configuration ( 201) comprenant une ou plusieurs sous-configu- rations ( 202-207), ladite ou lesdites sous-configurations présentant des relations multidimensionnelles, caractérisé en ce qu'il comprend les étapes consistant à: fournir une grammaire ( 121,G) à un moyen d'analyse ( 122), ladite grammaire comprenant: un ensemble de symboles non terminaux (V); un ensemble de symboles mots-clés (V) un ensemble de symboles non mots-clés (V NK) un moyen de définition d'attribut, ledit moyen de définition d'attribut étant prévu pour définir une liste d'attributs (A) ou l'un quelconque desdits symboles non terminaux, mots-clés ou non mots-clés; un ensemble de règles de production (P), chaque règle de production dudit ensemble de règles de production comprenant une partie syntaxique, une partie sémantique, une partie de contraintes et une partie d'effet; un symbole de début de grammaire (S); un moyen d'application (M) d'un symbole mot-clé, ledit moyen d'application de symbole mot-clé étant prévu pour appliquer à une valeur de nombre réel chacun des symboles dudit ensemble de symboles mots-clés; b) fournir audit moyen d'analyse un ensemble de sous-configurations d'entrées à reconnaître comme configurations valides; c) fournir audit moyen d'analyse ledit symbole de début de grammaire; d) analyser ladite sous-configuration parmi lesdites sous-configurations d'entrée pour déterminer si ledit ensemble de sous-configurations d'entrées peut être récrit, selon ledit ensemble de règles de production, en tant que ledit symbole de début; e) renvoyer une représentation analysée dudit ensemble de sous-configurations d'entrées si ledit ensemble de sous-configurations d'entrées peut être récrit en tant que ledit symbole de début selon ledit ensemble de règles de production; f) renvoyer une information exposant la raison pour laquelle ladite configuration est invalide si ledit ensemble de sous-configurations d'entrées ne peut pas être récrit en tant que ledit symbole de début selon ledit ensemble de règles de production. 2 Procédé selon la revendication 1 caractérisé en ce que lesdites règles de production comprennent en outre: a) un ensemble de règles syntaxiques, chacune desdites règles syntaxiques définissant une production à partir de l'un desdits symboles non terminaux X vers un ou plusieurs desdits symboles identificateurs, des symboles non terminaux ou des symboles mots-clés Y; b) un ensemble de règles sémantiques, chacune desdites règles sémantiques correspondant à une règle syntaxique, lesdites règles sémantiques définissant une relation physique entre X et Y; c) un ensemble de contraintes pour chacune desdites règles syntaxiques, chacune des contraintes dudit ensemble décrivant des règles d'ordonnancement d'analyse et des contraintes spatiales. 3 Procédé selon la revendication 2 caractérisé en ce que ladite étape d'analyse desdits ensembles de sous-configurations d'entrées, destinée à déterminer si ledit ensemble de sous-configurations d'entrées peut être récrit en tant que ledit symbole de début selon ledit ensemble de règles de production, comprend en outre les étapes consistant à: a) identifier un premier sous-ensemble dudit ensemble de sous- configurations d'entrées qui peut être récrit en tant que l'un desdits symboles non-terminaux; et b) déterminer s'il existe une règle de production dans laquelle ledit début de symbole produit, dans ladite partie syntaxique, ledit symbole non terminal identifié à l'étape a); c) renvoyer ladite représentation analysée dudit ensemble de sous- configurations d'entrées, s'il existe une telle règle de production,; et f) renvoyer ladite information exposant la raison pour laquelle ladite configuration est invalide, s'il n'existe pas de telles règles de production. 4 Procédé selon la revendication 3, caractérisé en ce que l'étape d'identification d'un premier sous- ensemble dudit ensemble de sous-configurations d'entrées qui peut être récrit en tant que l'un desdits symboles non terminaux comprend les étapes consistant: a) identifier, dans ledit ensemble de sous- configurations d'entrées, une sous-configuration qui concorde avec l'un desdits mots-clés; b) identifier une règle de production qui correspond audit mot-clé; c) identifier un sous-ensemble desdits symboles qui satisfont à une première contrainte de ladite règle de production, ladite première contrainte possédant un symbole non terminal correspondant N; d) déterminer que ledit sous-ensemble desdits symboles ne contient qu'un seul symbole X; et e) déterminer qu'il existe une règle de production dans laquelle ledit symbole non terminal N produit, dans ladite partie syntaxique, ledit symbole X. 5 Procédé de définition de relations spatiales multidimensionnelles entre symboles dans un système de reconnaissance de configurations valides de symboles, caractérisé en ce qu'il comprend les étapes consistant à: a) fournir un ensemble d'opérateurs spatiaux; b) fournir un ensemble de symboles identificateurs; (c) fournir un ensemble de symboles non terminaux (VN); (d) fournir un ensemble de symboles mots-clés (VK); (e) fournir un ensemble de règles syntaxiques (En), chacune desdites règles syntaxiques définissant une production à partir de l'un desdits symboles non terminaux X vers un ou plusieurs desdits symboles identificateurs, desdits symboles non terminaux ou desdits symboles mots-clés Y; f) fournir un ensemble de règles sémantiques (A(E n)) chacune desdites règles sémantiques correspondant à une règle syntaxique, lesdites règles sémantiques définissant une relation physique entre X et Y; g) fournir un ensemble de contraintes (C n) pour chacune desdites règles syntaxiques, chacun desdits ensembles de contraintes décrivant des règles d'ordonnancement et des contraintes spatiales en utilisant lesdits opérateurs spatiaux. 6 Procédé d'analyse d'un ensemble de sous- configurations d'entrée ( 202-207) pour déterminer des configurations valides desdites sous-configurations d'entrées selon un langage prédéfini, ledit langage utilisant une grammaire (G), ladite grammaire comprenant des symboles terminaux (VT), des symboles non terminaux (VN), un symbole de début (S) et des règles de production (P), caractérisé en ce qu'il comprend les étapes consis- tant à: a) identifier un sous-ensemble dudit ensemble de sousconfigurations d'entrées qui peut être récrit en tant que l'un desdits symboles non terminaux; b) récrire ledit ensemble de sous- configurations d'entrées en tant que ledit symbole non terminal; et c) déterminer s'il existe une règle de production o ledit symbole de début produit ledit symbole non terminal; 7 Procédé selon la revendication 6 dans lequel les- dits symboles non terminaux (VN) comprennent en outre des mots-clés (VK) et des identificateurs, et ladite étape d'identification d'un sous-ensemble desdites sous- configurations d'entrées qui peut être récrit en tant que l'un desdits symboles non terminaux comprend en outre les étapes consistant à: a) déterminer que l'un desdits symboles dudit ensemble de sousconfigurations d'entrées concorde avec l'un desdits mots-clés; b) identifier une règle de production (P) qui correspond audit mot-clé; c) identifier un sous-ensemble desdits symboles qui satisfont à une première contrainte (CN) de ladite règle de production, ladite première contrainte possédant un symbole non terminal correspondant N; d) déterminer que ledit sous-ensemble desdits symboles ne contient qu'un seul symbole X; et e) déterminer qu'il existe une règle de production dans laquelle ledit symbole non terminal N produit, dans ladite partie syntaxique, ledit symbole X,