Brevet FR2673734A1 — publié le 19920911

SYSTEME DE GENERATION AUTOMATIQUE DE PROGRAMME La présente invention concerne un système de génération automatique de programme, et concerne particulièrement un système de génération automatique de programme qui convertit une spécification de programme en un format d'arbre syntaxique et transforme la spécification convertie en un programme cible en utilisant une base de connaissance d'expert. Le processus de programmation par un programmeur peut être considéré comme des étapes pour donner toujours plus de détails concernant la spécification du programme. Certains systèmes de génération automatique de programme comportent un mécanisme détaillant automatiquement, en utilisant une base de connaissance d'expert contenant des connaissances d'expert accumulées, de façon à convertir la spécification, aux étapes détaillées, en spécification plus détaillée pour la génération automatique de programme. Un système conventionnel de génération de programme du type mentionné ci-dessus se caractérise comme suit: i) Le système détermine toutes les paires constituées de la spécification partielle à convertir se trouvant dans la spécification entière et de la connaissance d'expert pour détailler la spécification partielle, détermine, parmi toutes les paires ci-dessus qui sont en concurrence, celles de ces paires, constituées de la spécification partielle et de la connaissance d'expert, qunil faut expertiser, puis réécrit les spécifications partielles appariées avec la connaissance d'expert. 2) A chaque étape détaillante, lorsqu'il obtient, dans la spécification entière, la spécification partielle à convertir, le système traite la spécification entière comme sujet de conversion. 3) Lors de la vérification de forme pour juger de la concordance de la spécification partielle et de la connaissance d'expert, couplées, le système ne juge que les formes concordent que si la spécification partielle et la connaissance d'expert ont la même forme ou s'il existe une forme concordant avec l'une et l'autre formes si lton prend en compte la hiérarchie des formes. 4) Le format de la connaissance d'expert comporte un signe d'égalité, un membre de gauche et un membre de droite. Les structures du membre de gauche et du membre de droite sont des éléments paramétrés du programme. Lorsque la spécification partielle applicable concorde avec le membre de gauche, le système réécrit la spécification partielle en utilisant les données concordantes et la structure du membre de droite. 5) Au cours du processus de génération automatique du programme, le système n'utilise pas la connaissance d'expert contenue dans la base de connaissance d'expert. 6) Au cours du processus de génération automatique du programme, le système ne supprime aucune des connaissances d'expert contenues dans la base de connaissance d'expert. 7) Au cours du processus de génération automatique du programme, le système n'enregistre ni la spécification partielle, ni la connaissance d'expert sélectionnée. Dans un système de génération automatique de programme proposé conventionnellement comme décrit ci-dessus, plusieurs inconvénients se présentent: 1) Le système détermine toujours toutes les paires de la spécification partielle à convertir se trouvant dans la spécification entière ainsi que les connaissances d'expert nécessaires pour détailler une spécification partielle. Ceci signifie que, même s'il suffit d'exécuter une unique opération d'expertise pour la première paire constituée de la spécification partielle applicable et de la connaissance d'expert, en spécifiant l'instruc- tion de rechercher les spécifications partielles et l'instruction de rechercher la connaissance d'expert dans la base de connaissance, le système génère infltilem#nt de nombreuses autres paires applicables. 2) A chaque paire détaillante, le système traite la spécification entière comme sujet de conversion lorsqu'il doit obtenir, dans la spécification entière, la spécification partielle à convertir. Le manque de fonction de division pour séparer les zones à expertiser oblige le système à chercher toujours dans la spécification entière pour trouver une spécification partielle applicable, ce qui prolonge le temps de recherche. 3) Lors de la vérification de forme pour juger de la concordance de la spécification partielle et de la connaissance d'expert, couplées, le système ne juge que les formes concordent que si la spécification partielle et la connaissance d'expert ont le même forme ou s'il existe une forme concordant avec les deux formes, si l'on prend en compte la hiérarchie des formes. Ceci signifie que, lors de vérification des formes pour les variables de la spécification partielle et de la connaissance d'expert, ce qui est une forme en fonction de la hiérarchie des formes, mais sans être au niveau mi animal plus élevé, est jugé inacceptable à ce moment même si cette forme peut être correctement inter prétée lors d'une concordance ultérieure. 4) Le format de la connaissance d'expert comporte un signe d'égalité, un membre de gauche et un membre de droite, et les structures du membre de gauche et du membre de droite sont des éléments paramétrés du programme. Etant donné que le système réécrit la spécification partielle en utilisant les données concordantes et la structure du membre de droite lorsque la spécification partielle applicable concorde avec le membre de gauche, le système ne peut pas procéder à une réécriture lorsqu'il reconnait une différence dans les structures. 5) Etant donné qu'au cours du processus de génération automatique du programme, le système n'utilise pas les connaissances contenues dans la base de connaissance d'expert, il ne peut pas inclure une connaissance d'expert dans les spécifications d'entrée pour le processus ultérieur détaillant l'expertise. 6) Etant donné qu'au cours du processus de génération automatique du programme, le système ne supprime aucune connaissance d'expert dans la base de connaissance d'expert, il est impossible de rendre inapplicable une certaine connaissance d'expert au cours du processus d'expertise, ce qui peut se traduire en une base de connaissance d'expert trop compliquée. 7) Etant donné qu'au cours du processus de génération automatique du programme, le système n'enregistre ni les spécifications partielles ni la connaissance d'expert sélectionnée, il est très difficile de déterminer quels sont les contenus incorrects dans la base de connaissance ou les erreurs dans la spécification d'entrée lorsque le programme, obtenu à la suite du processus d'expertise, n'est pas satisfaisant. Le but de la présente invention est de proposer un système de génération automatique de programme qui évite la génération inutile de paires applicables lors de la génération des paires constituées de la spécification partielle et de la connaissance d'expert et nécessaire pour détailler une par une les specifications partielles. Dans une réalisation préférée de cette invention, pour atteindre ce but, le système de génération automatique de programme qui génère un programme cible par répétition de la conversion de la spécification de programme comporte: un moyen d'entrée de la spécification pour entrer une spécification et pour la convertir en un format d'arbre syntaxique, un moyen de commande d'expertise pour commander la conversion de la spéclfication#a;ns le format arbre syntaxique, conversion obtenue par le moyen d'entrée de la spécification, une base de connaissance d'expert constituée par des connaissances d'expert accumulées, contenant des éléments de programme et une section de relation indiquant la relation entre elles;; ; un moyen de sélection des connaissances d'expert pour sélectionner une connaissance d'expert applicable à la spécification partielle à convertir, lorsqu'un telle connaissance existe, ou bien, lorsqu'aucune connaissance d'expert ne peut être sélectionnée, donner notification de cet effet au moyen de commande d'expertise;; un moyen de vérification d'admissibilité pour vérifier si, oui ou non, la spécification partielle à convertir correspond à la connaissance d'expert qui a été appliquée et a été sélectionnée par le moyen de sélection de connaissance d'expert, moyen de vérification d'admissibilité qui fournit la spécification partielle et la connaissance d'expert qui a été appliquée lorsqu'elles correspondent et, lorsqu'elles ne correspondent pas, donne notification de cet effet au moyen de sélection de connaissance d'expert, un moyen de conversion de spécification pour sélectionner un traitement consistant en la conversion de spécification et basé sur la spécification partielle et sur la connaissance d'expert qui a été appliquée, fournie par le moyen de vérification d'admissibilité, et un moyen de traitement consistant à réécrire la relation, moyen qui est sélectionné par le moyen de conversion de spécification lorsque la section de relation de la connaissance d'expert qui a été appliquée indique de réécrire la relation et moyen qui réécrit la spécification partielle en fonction de la connaissance d'expert qui a été appliquée. Le second but de cette invention est de réduire considérablement le temps de recherche en permettant la division en zones faisant l'objet de l'expertise avant l'expertise et en éliminant donc la nécessité d'effectuer des recherches sur la spécification entière lors de la prise en charge de spécifications partielles. Selon une réalisation préférée, pour atteindre ce but, le système comporte un moyen de division de l'expertise qui est appelé par le moyen de commande de l'expertise, qui juge, si, oui ou non, le noeud formant la racine de l'arbre syntaxique représentant la spécification peut être réécrit en utilisant la base de connaissance d'expert et, si non, divise la spécification en sous-arbres et active à nouveau le moyen de commande d'expertise pour chacun des sous-arbres. Le troisième but de cette invention est de proposer un système de génération automatique de programme capable, lors de la vérification de forme de variables constituées d'une spécification partielle et d'une connaissance d'expert, d'accepter les structures qui auraient été incorrectement rejetées par le procédé conventionnel bien qu'elles puissent être correctement interprétées lors d'une expertise ultérieure, et ceci en vérifiant les formes sur la structure de réseau constituée par les formes obtenues à partir de la hiérarchie des formes. Pour atteindre ce but, selon une réalisation préférée, le système comporte un moyen de traitement des formes expansibles en réseau, moyen qui est appelé par le moyen de vérification d'admissibilité et transpose la forme de la spécification partielle et la forme de l'élément de programme de la connaissance d'expert sur ltespace du réseau constitué par les formes introduites à partir de la hiérarchie des formes, de façon que le moyen puisse juger si, oui ou non, les formes sont concordantes et puisse déterminer la forme des variables. Le quatrième but de cette invention est de proposer un système de génération automatique de programme qui, lorsqu'il reconnait les différence dans la structure de spécification, soit capable de réécrire en introduisant la relation avec une primitive et en autorisant le jugement d'équivalence de la spécification partielle sous forme de primitive. Pour atteindre ce but, selon une réalisation préférée, le système comporte un moyen de traitement consistant à réécrire la spécification en utilisant une primitive, moyen qui est sélectionné par le moyen de conversion de spécification lorsque la section de relation de la connaissance d'expert qui a été appliquée indique la relation avec une primitive et qui réécrit la spécification partielle en utilisant la connaissance relative à la conversion d'une primitive, particulière au système. Le cinquième but de cette invention est de proposer un moyen de génération automatique de programme qui, au cours du processus de génération automatique de programme, puisse traiter la connaissance qui se trouve dans la base de connaissance d'expert et puisse donc rechercher la connaissance d'expert contenue dans la spécification d'entrée pour emploi ultérieur dans le processus détaillant l'expertise. Pour atteindre ce but, selon une réalisation préférée, le système comporte un moyen de traitement par métaprimitive sélectionné par le moyen de conversion de spécification lorsque la section de relation de la connaissance d'expert qui a été appliquée indique une relation avec une métaprimitive et un moyen de recherche de la base de connaissance, qui est appelé par le moyen de traitement par métaprimitive et recherche le contenu de la base de connaissance d'expert relatif à la spécification. Le sixième but de cette invention est de proposer un système de génération automatique de programme capable d'obtenir des données partielles à partir de celles contenues dans la spécification d'entrée pour emploi ultérieur dans des processus détaillant l'expertise et, au cours du processus d'expertise, de rendre inapplicable une certaine connaissance de façon à empêcher la base de connais sance d'expert de devenir trop compliquée, en ajoutant de nouvelles connaissances dans la base de connaissance d'expert et en supprimant certaines connaissances dans cette base, au cours des processus de génération automatique de programme. Pour atteindre ce but, selon une réalisation préférée, le système comporte un moyen de traitement par métaprimitive sélectionné par ledit moyen de conversion de spécification lorsque la section de relation de la connaissance d'expert qui a été appliquée indique une relation avec une môtaprimitive ainsi qu'un moyen de changement de la base de connaissance, appelé par le moyen de traitement par métaprimitive, pour ajouter à la base de connaissance d'expert la connaissance d'expert décrite dans la spécification ou pour retrancher de la base de connaissance d'expert, la connaissance d'expert concordant avec les éléments de programme décrits dans la spécification. Un septième but de cette invention est de proposer un système de génération automatique de programme qui enregistre la spécification partielle et la connaissance d'expert sélectionnées au cours du processus de génération automatique de programme de façon à permettre de détecter un contenu incorrect de la base de connaissance ou des erreurs dans la spécification d'entrée. Pour atteindre ces buts, selon une réalisation préférée, le système comporte un moyen d'enregistrement de dérivation de programme, qui est appel4 par le moyen de conversion de spécification et enregistre un groupe constitué de la spécification partielle, de la connaissance d'expert qui a été appliquée et de la spécification partielle après conversion et un moyen de faire rapport du processus d'expertise qui se réfère à la dérivation de programme générée par le moyen d'enregistrement de dérivation et la notifie au processus d'expertise. Selon une autre réalisation préférée, le système comporte un moyen de division de l'expertise, qui est appelé par le moyen de commande de l'expertise, juge si, oui ou non, le noeud formant la racine de l'arbre syntaxique représentant la spécification peut se réécrire en utilisant la base de connaissance d'expert, divise la spécification en sous-arbres lorsqu'il ne peut pas se réécrire et active à nouveau le moyen de commande d'expertise pour chaque sousarbre et un moyen de traitement des formes expansibles en réseau, qui est appelé par le moyen de vérification d' admissibilité, transpose la forme de spécification partielle et la forme de l'élément de programme de la connaissance d'expert sur l'espace de réseau comportant les formes obtenues à partir de la hiérarchie des formes de façon que le système puisse juger si, oui ou non les formes concordent et puisse déterminer la forme des variables. Selon encore une autre réalisation préférée, le système comporte un moyen de traitement des formes expansibles en réseau ainsi qu'un moyen de traitement consistant à réécrire la spécification en utilisant une primitive. Le premier moyen, appelé par le moyen de vérification d'admissibilité, transpose la forme de la spécification partielle et la forme de ltélément de programme de connaissance d'expert sur l'espace du réseau constitué des formes introduites à partir de la hiérarchie des formes, pour pouvoir juger si, oui ou non, les formes sont concordantes et pour pouvoir déterminer la forme des variables.Le second moyen, sélectionné par le moyen de conversion de spécification lorsque la section de relation de la connaissance d'expert qui a été appliquée indique "relation avec primitive" réécrit la spécification partielle en utilisant la connaissance relative à la conversion en primitive, particulière au système. En variante le système comporte un un moyen de division de l'expertise qui est appelé par le moyen de commande de l'expertise, juge si, oui ou non, le noeud formant la racine de l'arbre syntaxique représentant la spécification peut se réécrire en utilisant la base de connaissance d'expert, divise la spécification en sous-arbres lorsqu'il ne peut pas se réécrire et active à nouveau le moyen de commande d'expertise pour chacun des sous-arbres; un moyen de division de l'expertise qui est appelé par le moyen de commande de l'expertise, juge si, oui ou non, le noeud formant la racine de l'arbre syntaxique représentant la spécification peut se réécrire en utilisant la base de connaissance d'expert, divise la spécification en sous-arbres lorsqu'il ne peut pas se réécrire et active à nouveau le moyen de commande d'expertise pour chacun des sous-arbres; et un moyen de traitement consistant à réécrire la spécification en utilisant une primitive, moyen qui est sélectionné par le moyen de conversion de spécification lorsque la section de relation de la connaissance d'expert qui a été appliqué indique "relation avec primitive" et qui réécrit la spécification partielle en utilisant la connaissance, relative à la conversion d'une primitive, particulière du système. Selon encore une autre réalisation préférée de cette invention, le système de génération automatique de programme quirôpète la conversion de spécifi- cation de programme pour générer un programme cible comporte un moyen d'entrée de la spécification pour entrer la spécification et pour la convertir en un forant d'arbre syntaxique, un moyen de commande d'expertise pour commander la conversion de la spécification dans le format d'arbre syntaxique, conversion obtenue par le moyen ci-dessus d'entrée de la spécification, une base de connaissance d'expert constituée par les connaissances d'expert accumulées contenant des éléments de programme et une section de relation pour représenter la relation mutuelle entre eux;; un moyen de division de l'expertise qui est appelé par le moyen de commande de l'expertise, juge si, oui ou non, le noeud formant la racine de l'arbre syntaxique représentant la spécification peut se réécrire en utilisant la base de connaissance d'ex -pert, divise la spécification en sous-arbres lorsqu'il ne peut pas se réécrire et active à nouveau le moyen de commande d'expertise pour chacun des sous-arbres; un moyen de sélection de connaissance d'expert, pour sélectionner, dans la base de connaissance d'expert, la connaissance d'expert appliquée à la spécification partielle à convertir lorsque cette sélection est possible;; un moyen de vérification d'admissibilité pour vérifier si, ou non, la spécification partielle à convertir concorde avec la connaissance d'expert qui a été appliquée et qui a été sélectionnée par le moyen de sélection de connaissance d'expert et moyen qui si elles concordent, fournit la spécification partielle et la connaissance d'expert qui a été appliquée; un moyen de traitement des formes expansibles en réseau, qui est appelé par le moyen de vérification d'admissibilité, transpose la forme de spécification partielle et la forme de ltélément de programme de la connaissance d'expert sur ltespace de réseau constitué des formes obtenues à partir de la hiérarchie des formes de façon que le système puisse juger si, oui ou non, elles concordent et puisse déterminer la forme des variables;; un moyen de conversion de spécification pour sélectionner un traitement consistant en la conversion de la spécification et basé sur la spécification partielle et sur la connaissance d'expert qui a été appliquée, fournie par le moyen de vérification d'admissibilité, un moyen de traitement consistant à réécrire la relation, moyen qui est sélectionné par le moyen de conversion de la spécification lorsque la relation de la connaissance d'expert qui a été appliquée indique de réécrire la relation et moyen qui réécrit la spécification partielle en fonction de la connaissance d'expert qui a été appliquée;; un moyen de traitement consistant à réécrire la spécification en utilisant une primitive, moyen qui est sélectionné par le moyen de conversion de spécification lorsque la section de relation de la connaissance d'expert qui a été appliquée indique "relation avec une primitive" et qui réécrit la spécification partielle en utilisant la connaissance, relative à la conversion d'une primitive, particulière au système; un moyen de traitement par métaprimitive sélec tionné par le moyen de conversion de spécification lorsque la section de relation de la connaissance d'expert qui a été appliquée indique la relation avec une môtaprimitive; un moyen de recherche dans la base de connaissance, qui est appelé par le moyen de traitement par métaprive et recherche le contenu de la base de connaissance d'expert relatif à la spécification; ; un moyen de changement de la base de connaissance, qui est appelé par le moyen de traitement par métaprimitive et ajoute, à la base de connaissance d'expert, la connaissance d'expert décrite dans la spécification, ou bien retranche , de la base de connaissance d'expert, la connaissance d'expert concordant avec les éléments de programme décrite dans la spécification; un moyen d'enregistrement de dérivation de programme, qui est appelé par le moyen de conversion de spécification et enregistre un groupe constitué de la spécification partielle, de la connaissance d'expert qui a été appliquée et de la spécification partielle après conversion; et un moyen de faire rapport du processus d'expertise pour se référer à la dérivation de programme générée par le moyen d'enregistrement de programme et pour faire rapport du processus d'expertise. D'autres buts, caractéristiques et effets de la présente invention apparaîtront clairement dans la description détaillée qui suit. La figure 1 est un diagramme donnant la totalité de la configuration d'un système de génération automatique de programme conforme à une réalisation de cette invention; la figure 2 est un diagramme donnant un exemple de syntaxe définie en utilisant la forme de Backus Naur (BNF); la figure 3 est un diagramme représentant un exemple dans lequel une suite de symboles décrite par la syntaxe définie dans BNF est convertie en format d'arbre; la figure 4 est un ordinogramme illustrant le fonctionnement du moyen 102 de commande d'expertise; la figure 5 est un ordinogramme décrivant le fonctionnement d'un moyen 103 de division de 1' expertise; la figure 6 est un ordinogramme expliquant le fonctionnement du moyen 105 de sélection d'une connaissance d'expertise et du moyen 104 de demande de données d'expertise;; la figure 7 est un ordinogramme expliquant le fonctionnement d'un moyen 107 de vérification d'admissibilité et d'un moyen 106 de demande de données de vérification; la figure 8 est un ordinogramme illustrant le fonctionnement d'un moyen 107 de vérification de l'admissibilité et d'une routine de mise en concordance, qui est une sous-routine; la figure 9 est un ordinogramme illustrant le fonctionnement d'un moyen 108 de traitement des formes expansibles en réseau; la figure 10 est un diagramme illustrant la relation entre l'arbre d'une structure et un arbre au format foncteur; la figure 11 est un diagramme donnant un exemple de trieurs et de hiérarchie de tri; la figure 12 est un diagramme donnant un exemple de hiérarchie de tri; la figure 13 est un diagramme représentant une structure de réseau générée à partir de la hiérarchie de tri;; la figure 14 est un diagramme représentant les sous-ensembles de l'ensemble moteur correspondant à la hiérarchie de tri; la figure 15 est un diagramme représentant les sous-ensembles de 1' ensemble moteur correspondant à la hiérarchie de tri de la figure 11; la figure 16 est un ordinogramme illustrant le fonctionnement de la procédure d'obtention de la forme de structure, qui est une sous-routine du moyen 108 de traitement des formes extensibles en réseau; la figure 17 est un ordinogramme illustrant le fonctionnement de la procédure d'obtention de la forme de structure résultant de l'intersection, qui est une sous-routine du moyen 108 de traitement des formes expansibles en réseau; la figure 18 est un ordinogramme illustrant le fonctionnement du moyen 109 de conversion de spécification;; la figure 19 est un ordinogramme illustrant le fonctionnement du moyen 110 de traitement consistant à réécrire la relation; la figure 39 est un ordinogramme illustrant le fonctionnement du traitement par paire unifiée qui est une sous-routine du moyen de traitement consistant à réécrire la relation; la figure 21 est un ordinogramme illustrant le fonctionnement du moyen 111 de traitement consistant à réécrire la spécification en utilisant une primitive; la figure 22 est un ordinogramme illustrant le fonctionnement du moyen 112 de traitement de métaprimitive; la figure 23 est un ordinogramme illustrant le fonctionnement du moyen 113 de recherche de la base de connaissance; et la figure 24 est un ordinogramme illustrant le fonctionnement du moyen 114 de changement de la base de connaissance. En se reportant aux figures 1 à 5, on décrit maintenant une réalisation préférée de la présente invention. La figure 1 représente la totalité de la configuration d'un système de génération automatique de programme conforme à une réalisation de la présents invention. Sur la figure 1, un moyen 101 d'entrée de spéci fication est un moyen qui permet d'entrer une spécification de programme 117 et qui convertit également la spécification 117 dans le format d'arbre syntaxique. Un moyen 102 de commande d'expertise est un moyen de commander la conversion de spécification dans le format d'arbre syntaxique, conversion obtenue par le moyen 101 d'entrée de spécification. Ce moyen répète la conversion jusqu'a ce qu'il devienne impossible de convertir davantage la spécification dans le format d'arbre syntaxique et fournit, sous forme de programme 118 résultant de la conversion, la spécification qui ne peut pas davantage êzre convertie. Un moyen 103 de fractionnement de l'expertise est un moyen appelé par le moyen 102 de commande de l'expertise. Il juge si, oui ou non, le noeud formant la racine de l'arbre syntaxique représentant la spécification peut se réécrire en utilisant la base 119 de connaissance d'expert(décrite plus loin). Si ce noeud ne peut pas se réécrire, le moyen 103 divise la spécification en sous-arbres et le moyen 102 de commande d'expertise est à nouveau activé pour chacun des sous-arbres. Une base 119 de connaissance d'expert est constituée de connaissances d'expert accumulées 120 contenant des éléments de programme 122 et une section de relation 121, qui est la connaissance d'expert indiquant la relation mutuelle entre les éléments de programme 122. Lorsque la connaissance d'expert 120 applicable à la spécification partielle à convertir peut être sélectionnée dans la base 119 de connaissance d'expert, un moyen 105 de sélection de connaissance d'expert sélectionne celle des connaissances d'expert 120 qui peuvent s'appliquer et l'envoie à un moyen 107 de vérification d'admissibilité. Lorsqu'aucune connaissance d'expert n'a pu être sélectionnée, le moyen 105 de sélection de connaissance d'expert donne notification à cet effet au moyen 102 de commande d'expertise en utilisant un moyen 104 de demande de données pour expertise. Le moyen 107 de vérification d'admissibilité vérifie, si oui ou non, la spécification partielle concorde avec la connaissance d'expert qui a été appliquée 120. Le moyen 107 de vérification d'admis sibilité envoie la spécification partielle et la connaissance d'expert qui a été appliquée 120 au moyen 109 de conversion de la spécification lorsqu'elles concordent, ou bien donne notification de non concordance au moyen 105 de sélection de connaissance d'expert en utilisant le moyen 106 de demande de données pour vérification, lorsqu'elles ne concordent pas. Un moyen 108 de traitement des formes expansibles en réseau est un moyen appelé par le moyen 107 de vérification d'admissibilité pour vérifier la concordance des formes. Il transpose la forme de la spécification partielle et la forme de l'élément de programme 122 de la connaissance d'expert 120 sur l'espace du réseau constitué des formes introduites à partir de la hiérarchie des formes, de sorte que ce moyen peut juger si, oui ou non, les formes sont concordantes et peut déterminer les formes après concordance, si elles concordent. Un moyen 109 de conversion de spécification est un moyen qui permet de sélectionner un traitement de conversion de spécification sur la base de la spécification partielle et de la connaissance d'expert appliquée 120. Un moyen 110 de traitement consistant à réécrire la relation est un moyen sélectionné par le moyen 109 de conversion de spécification lorsque la section de relation 121 de la connaissance d'expert appliquée 109 indique "réécrire la relation" et il réécrit la spécification partielle en fonction de la connaissance d'expert appliquée. Un moyen 111 de traitement consistant à réécrire la spécification en utilisant une primitive est un moyen sélectionné par le moyen 109 de conversion de spécification lorsque la section de relation 121 de la connaissance d'expert appliquée 120 indique "relation avec une primitive" et il réécrit la spécification partielle en utilisant la connaissance, relative à la conversion en primitive, particulière au système. Un moyen 112 de traitement par métaprimitive est un moyen sélectionné par le moyen 109 de conversion de spécification lorsque la section de relation 121 de la connaissance d'expert appliquée 120 indique "relation avec une môtaprimitive". Un moyen 113 de recherche de la base de connaissance est un moyen qui est appelé par le moyen 112 de traitement par métaprimitive et qui recherche dans la base 119 de connaissance d'expert, complètement ou partiellement relativement à la spécification 117. Un moyen 114 de changement de base de connaissance est un moyen appelé par le moyen 112 de traitement par môtaprimitive. Il ajoute à la base 119 de connaissance d'expert la connaissance d'expert décrite dans la spécification 117 ou bien il retranche de la base 119 de connaissance d'expert la connaissance d'expert 120 qui concorde avec les éléments de programme décrits dans la spécification 117. Un moyen 115 d'enregistrement de dérivation est un moyen qui est appelé par le moyen 109 de conversion de spécification et qui enregistre, en tant que données historiques, un ensemble constitué de la spécification partielle, de la connaissance d'expert appliquée 120 et de la spécification partielle après conversion selon la dérivation de programme 123. Un moyen 116 de faire rapport du processus d'expertise est un moyen qui permet de se référer à la dérivation de programme 123 générée par le moyen 115 d'enregistrement de dérivation et qui fournit le rapport 124 du processus d'expertise. On explique ci-dessous le fonctionnement du système de cette réalisation présentant la configuration mentionnée ci-dessus. Lorsqu'un utilisateur prépare la spécification de programme 117 et la donne au système de génération automatique de programme conformément à cette réalisation, le moyen 101 d'entrée de spécification entre la spécification 117, la convertit dans le format d'arbre syntaxique puis la donne au moyen 102 de commande d'expertise. Le moyen 102 de commande d'expertise appelle le moyen 103 de division de l'expertise ou bien prend d'autres mesures pour commander la conversion de la spécification dans le format d'arbre syntaxique. Il répète la conversion jusqu'à ce qu'il devienne impossible de convertir davantage la spécification. La spécification qu'il n'est plus possible de convertir est fournie sous forme de programme 118 résultant de la conversion. Le moyen 103 de division de l'expertise est appelé par le moyen 102 de commande de l'expertise et il juge si, oui ou non, le noeud formant la racine de l'arbre syntaxique représentant la spécification peut se réécrire en utilisant la base 119 de connaissance d'expert. Si cette réécriture n'est pas possible, ce moyen divise la spécification en sous-arbres et active à nouveau le moyen 102 de commande de l'expertise pour chacun des sous-arbres. Si le noeud formant racine peut se réécrire, le moyen 103 de division de l'exercice active le moyen 105 de sélection des connaissances d'expert par l'inter médiaire du moyen 102 de commande d'expertise. Le moyen 105 de sélection des connaissances d'expert sélectionne, dans la base 119 de connaissances d'expert, la connaissance d'expert 120 appliquée à la spécification partielle à convertir et l'envoie au moyen 107 de vérification d'admissi bilité. S'il n'y a aucune connaissance d'expert 120 qui puisse être sélectionnée, le moyen 105 de sélection de connaissance d'expert donne notification à cet effet au moyen 102 de commande d'expertise en utilisant le moyen 104 de demande de données pour expertise. Cette notification fait connaître au moyen 102 de commande d'expertise que la spécification devient inconvertible. Le moyen 107 de vérification d'admissibilité reçoit la spécification partielle et la connaissance d'expert appliquée 120 en provenance du moyen 105 de sélection de connaissance d'expert et il les vérifie pour voir si elles sont concordantes. Dans ce but, le moyen 107 de vérification d'admissi bilité appelle le moyen 108 de traitement des formes expansibles en réseau si cela est nécessaire pour vérifier si les formes concordent ou non. Le moyen de vérification d'admissibilité doit transposer la forme de la spécification partielle et la forme de ltélément de programme 122 de la connaissance d'expert 120 sur l'espace de réseau constitué par les formes obtenues à partir de la hiérarchie des formes de façon que le moyen puisse juger si les formes concordent ou non. Si la forme de la spécification partielle concorde avec la forme de ltélémentde programme 122 provenant de la connaissance d'expert 120, alors, après concordance, le système détermine la forme et vérifie la concordance sur la base du résultat.Si la spécification partielle et la connaissance d'expert appliquée 120 concordent, le moyen 107 de vérification d'admissibilité envoie la spécification partielle et la connaissance d'expert appliquée 120 au moyen 109 de conversion de la spécification. Si elles ne concordent pas, le moyen de vérification d'admissibilité donne notification à cet effet au moyen 105 de sélection de connaissance d'expert en utilisant le moyen 106 de demande de données pour vérification. Lors de la réception de cette notification, le moyen 105 de sélection de connaissance d'expert tente à nouveau de sélectionner, dans la base 119 de connaissances d'expert, une connaissance d'expert 120 applicable à la spécification partielle à convertir. Lorsqu'il reçoit la spécification partielle et la connaissance d'expert appliquée 120 en provenance du moyen 107 de vérification d'admissibilité, le moyen 109 de conversion de la spécification sélectionne un traitement de conversion de spécification basé sur elles. En d'autres termes, si la connaissance d'expert 120 qui a été appliquée présente la section de relation 121 indiquant "réécrire la relation", le moyen sélectionne le moyen 110 de traitement consistant à réécrire la relation pour réécrire la spécification partielle. Si la connaissance d'expert appliquée présente la section de relation 121 indiquant "relation avec une primitive", le moyen sélectionne le moyen 111 de traitement consistant à réécrire la spécificatisn en utilisant une primitive pour réécrire la spécification partielle en utilisant la connaissance de conversion en primitive particulière à ce système.Si la section de relation 121 de la connaissance d'expert appliquée 120 indique "relation avec une m4taprîmîtive", c'est le moyen 112 de traitement par métaprimitive qui est sélectionné. Lorsque le moyen 112 de traitement par métaprimitive est sélectionné, il appelle le moyen 113 de recherche dans la base de connaissance ou bien le moyen 114 de changement de base de connaissance. Le moyen 113 de recherche dans la base de connaissance, appelé, recherche dans la base 119 de connaissance d'expert, complètement ou partiellement, et le moyen 114 de changement de la base de connaissance ajoute à la base 119 de connaissance d'expert la connaissance d'expert décrite dans la spécification, ou bien retranche de la base de connaissance d'expert la connaissance d'expert 120 qui concorde avec les éléments de programme décrits dans la spécification. Par ailleurs, le moyen 109 de conversion de spécification, après chaque conversion de spécification, appelle le moyen 115 d'enregistrement de dérivation de programme pour que ce moyen enregistre, dans la dérivation de programme 123, un ensemble constitué de la spécification partielle, de la connaissance d'expert appliquée 120 et de la spécification partielle après conversion. Tel que décrit ci-dessus, le programme cible 118 est généré par conversion répétée de la spécification de programme 117 à l'aide de la base 119 de connaissance d'expert. Après génération, le moyen 116 de faire rapport du processus d'expertise se réfère à la dérivation de programme 123 et fournit le rapport 124 concernant le processus d'expertise. En se référant maintenant aux figures 2 à 24, on va décrire en détail le fonctionnement des différentes parties du système de génération automatique de programme représenté sur la figure 1. Dans cette réalisation, la syntaxe du langage décrit dans la spécification 117 est définie au moyen d'une grammaire de type hors-contexte. En outre, le langage exprimant la spécification 117 et le programme 118 finalement fourni sont d'une part définis par une syntaxe permettant de décrire des variables représentant la plage de valeur des éléments du programme et d'autre part par une syntaxe permettant de décrire les termes relatifs à une expression abstraite des éléments de programme pour cette réalisation. Un terme est ici un format dans lequel un nom de foncteur est suivi par certains termes mis entre parenthèses: nom de foncteur (term, ). Un nom de foncteur est un identificateur. La grammaire de type hors contexte peut se décrire sous la forme de Backus-Naur. La figure 2 représente un exemple de syntaxe défini sous la forme BNF. La description sous forme de langage x = y + z peut être considérée comme la description du terme ayant le nom de foncteur = assign, ctest-à-dire assign ("x", add ("y", "z")). Le terme peut être converti en un format ayant le nom de foncteur "assign" comme noeud et un arc allant du noeud au descendant peut être converti dans le format d'arbre syntaxique. Par exemple, la description du terme assign ("x" ("y", "z")) peut être convertie en un arbre syntaxique comme représenté sur la figure 3. Par ce procédé, toute spécification 117 décrite dans le langage de description de la spécification peut être convertie dans le format d'arbre syntaxique. Dans cette réalisation, le moyen 101 d'entrée de la spécification entre la spécification 117 décrite en langage de description de spécification et la convertit dans le format d'arbre syntaxique confor mément à la procédure indiquée ci-dessus. La figure 4 est un ordinogramme représentant le fonctionnement du moyen 102 de commande d'expertise. Le moyen 102 de commande d'expertise commande la totalité du système de cette réalisation. Le moyen 102 de commande d'expertise envoie la spécification, convertie dans le format d'arbre syntaxique par le moyen 101 d'entrée de la spécification, au moyen 103 de division de l'expertise, qui est considéré comme un moyen de traitement interne du moyen de commande d'expertise (pas 401). Puis, au pas 402, le résultat du traitement effectué au moyen 103 de division d'expertise sert pour juger si la conversion a été faite ou non. Si au pas 402 le système apprend que la conversion a été faite, alors le processus du pas 401 se répète pour poursuivre la conversion en envoyant la spécification convertie au moyen 103 de division de l T expertise. Si au pas 402 le système apprend que la conversion n'a pas été faite, alors c'est la spécification obtenue au moment où les données pour expertise sont demandées par le moyen 104 de demande de données pour expertise qui constitue le résultat final. Au pas 403, cette spécification est émise en tant que programme 118. La figure 5 est un ordinogramme pour illustrer le fonctionnement du moyen 103 de division de l'expertise. Le moyen 103 de division de l'expertise vérifie d'abord si, oui ou non, la spécification, prise en tant qutobjet de llexpertise, est convertible, et ceci en utilisant la base 119 de connaissance d'expertise à laquelle il accède. Dans ce but, au pas 501, le moyen de division de l'expertise vérifie s'il y aurait une connaissance d'expert 120 qui serait restée non vérifiée dans la base 119 des connaissances d'expert.Si l'une ou l'autre des connaissances expert 120 est restée non vérifiée, l'une de ces connaissances d'expert 120 est prélevée au pas 502 et le système vérifie si la spécification, prise en tant qu'objet de l'expertise, peut être convertie en utilisant la connaissance d'expert 120, au pas 503. S'il y a possibilité de conversion, le moyen 105 de sélection de connaissance d'expert est activé pour la spécification en tant qu'objet de l'expertise, au pas 504. Si aucune connaissance d'expert 120 ne subsiste au pas 501, alors c'est que cette spécification elle-même, en tant qu'objet de conversion, ne peut pas être convertie relativement à chacune des connaissances d'expert 120 qui se trouvent dans la base 119 de connaissances d'expert. Dans un tel cas, cette spécification peut être enlevée des objets de l'expertise, et l'expertise ne doit s'effectuer que pour les arbres descendants, qui sont des spécifications partielles de la spécification. Dans ce but, le moyen 102 de commande de llexpertise est activé à nouveau pour les arbres descendants Les arbres descendants sont ici les sous-arbres (spécification partielle) représentant term 1, term 2, . . . . . term n lorsque la spécification, en tant qu'objet de l'expertise, se trouve au format foncteur 1 (term 1, term2 term n). La figure 6 est un ordinogramme pour désigner le fonctionnement du moyen 105 de sélection de connaissance expert et du moyen 104 de demande de données pour expertise. Le moyen 105 de sélection de connaissance d'expert reçoit, en provenance du moyen 102 de commande d'expertise, la spécification à expertiser et accède à nouveau à la base 119 de connaissances d'expert qui doit être appliquée a la spécification (pas 601). Puis, au pas 602, le système vérifie si, oui ou non, il y a, dans la base 119 de connaissances d'expert, une connaissance d'expert 120 qui n'aurait pas encore été appliquée à la spécification à expertiser. S'il y a une telle connaissance d'expert à appliquer, la connaissance d'expert 120 est recherchée au pas 603.La paire constituée de la connaissance d'expert 120 et de la spécification à expertiser est envoyée au moyen 107 de vérification d'admissibilité aux fins de vérification de concordance et la réponse est renvoyée (pas 604). Au pas 605, le système vérifie si le moyen 107 de vérification d'admissibilité a utilisé le moyen 106 de demande de données pour vérification pour obtenir une réponse ou non. Sinon, la spécification convertie, renvoyée par le moyen 107 de vérification d'admissibilité, est traitée en tant que valeur renvoyée et la commande du programme renvoie au moyen 102 de commande d'expertise. Si le moyen 107 de véri fication dd'admissibilité a utilisé le moyen 106 de demande de données pour vérification, ltopôration se poursuit au pas 602 pour obtenir la connaissance d'expertise suivante. S'il n'y a plus aucune connaissance d'expert 120 qui puisse être appliquée au pas 602, l'opôration passe au pas 606. Au pas 606 les arbres descendants (spécifications partielles) de la spécification à convertir sont vérifiés pour voir s'il y a des arbres auxquels le moyen 105 de sélection de connaissance d'expert nta pas encore été appliquée. S'il existe une spécification partielle à laquelle le moyen 105 de sélection de connaissance d'expert n'a pas encore été appliquée, cette spécification partielle est recherchée (pas 607), et le moyen 105 de sélection de connaissance d'expert lui-même est activé au pas 608.Les arbres descendants, ou spécification: partielles, signifient ici term 1, term 2, .... term n dans la spécification à expertiser au format foncteur 1 (term1, term2, ...., term n), par exemple. Ensuite ce résultat est évalué au pas 609 et, s'il survient une demande de données de la part du moyen 106 de demande de données pour vérification, l'opôration retourne au pas 606. S'il n'y a pas de demande de données, la spécification après conversion, obtenue en tant que résultat du pas 608, est renvoyée et la procédure s'achève. Par ailleurs, si aucune spécification ne subsiste au pas 606, le moyen 104 de demande de données pour expertise est activé au pas 610. Le moyen 105 de sélection de connaissance d'expert peut être obtenu par un appel de fonction de la part du moyen 102 de commande d'expertise. Dans ce cas, le moyen 104 de demande de données pour expertise peut être appelé par renvoi d'une valeur de fonction incluant une valeur spéciale pour indiquer la demande de données. La figure 7 est un ordinogramme pour illustrer le fonctionnement du moyen 107 de vérification d'admissibilité et du moyen 106 de demande de données pour vérification. Au pas 701, le moyen 107 de vérification d'admissibilité reçoit la spécification et la connaisance d'expert 120 en provenance du moyen 105 de sélection de connaissance d'expert et recherche le premier élément de programme 122 dans la connaissance d'expert 120. Ensuite, au pas 702, la spécification reçue et l'élément de programme 122 recherché sont entrés dans une routine de recherche de concordance qui est une sous-routine du moyen 107 de vérification d'admissibilité. Puis, au pas 703, le résultat de l'examen de concordance est évalué et l'ôvaluation se poursuit au pas 704 si l'examen de concordance a été positif.Si le résultat de l'examen de concordance n'a pas été positif, alors le traitement prévu au pas 705 s'exécute. Au pas 704, le moyen 109 de conversion de spécification est activé et la paire unifiée, résultant de l'examen de concordance, ctest-à-dire la spécification et la connaissance d'expert 120 lui sont envoyées. Au pas 705, le moyen 106 de demande de données pour vérification est activé et demande au moyen 105 de sélection de connaissance d'expert de fournir les données d'entrée suivantes. Le moyen 107 de vérification d'admissibilité peut être activé par appel de fonction de la part du moyen 105 de sélection de connaissance d'expert. Dans ce cas, le moyen 106 de demande de données pour vérification renvoie "NUL", ce qui est une valeur spéciale qui est la valeur renvoyée à la demande de données pour vérification. La figure 8 est un ordinogramme pour illustrer ltopération de la routine d'examen de concordance qui est une sous-routine du moyen 107 de vérification d'admissibilité (pas 702 sur la figure 7). La routine d'examen de concordance, au pas 801, traite la spécification et ltélément de programme 122 entrés en tant que deux structures a et b. Au pas 802, les deux structures a et b sont jugées égales si les deux sont identiques en tant que constante. Si elles sont égales, une paire unifiée vide est générée au pas 811 et renvoyée au pas 815. Si les deux structures ne sont pas jugées égales au pas 802, le système juge, au pas 803, si la structure a est une variable ou non.Si la structure a est une variable, le moyen 108 de traitement des formes expansibles en réseau est appelé pour vérifier si les structures a et b ont une forme en concordance (pas 812). Le résultat de la vérification effectuée au pas 812 est jugé au pas 813. Si les formes ne concordent pas, la notification de non concordance est renvoyée au pas 810. Si les formes concordent, une paire constituée d'une variable a et d'une structure b (paire unifée) est créée au pas 814. Puis la paire unifiée créée au pas 814 est renvoyée au pas 815. Si, au pas 803, le système apprend que la structure a n'est pas une variable, il juge, au pas 804, si la structure b est une variable ou non. Si la structure b est une variable, le moyen 108 de traitement des formes expansibles en réseau est activé pour vérifier si les formes des structures b et a sont concordantes au pas 812. Le résultat de la vérification effectuée au pas 812 est jugé au pas 813. Si les formes ne sont pas concordantes, une notification de non concordance est renvoyée au pas 810. Si les formes sont concordantes, une paire constituée d'une variable b et d'une structure a (paire unifiée) est créée au pas 814. Ensuite, la paire unifiée créée au pas 814 est renvoyée au pas 815. Si, au pas 804, le système apprend que la structure b n'est pas une variable, il juge si la structure a et la structure b ont des formes en coincidence ou non en utilisant au pas 805 le moyen 108 de traitement des formes expansibles en réseau. Puis, le résultat de la vérification effectuée au pas 805 est étudié au pas 806 pour voir si les formes sont en coincidence ou non. Si elles ne sont pas en coincidence, la notification de non coincidence est renvoyée (pas 810). Si la structure a présente un format comprenant un foncteur a suivi de (child aî, child a2, .... child aj) et si la structure b présente un format comprenant un foncteur b suivi de (child bî, child b2, ..., child bk), j = k si leurs formes sont en coincidence. Au pas 807, si les formes sont en coincidence, la routine d'examen de coincidence elle-même est à nouveau activée pour toutes les paires correspondantes de descendants dans les structures a et b. Ici, tous les descendants correspondants signifient la structure am et la structure bm, avec 1 - m La figure 9 est un diagramme pour illustrer le fonctionnement du moyen 108 de traitement des formes expansibles en réseau. Avant tout, au pas 910, le moyen 108 de traitement des formes expansibles en réseau obtient la forme de structure de la structure a, qui est l'une des deux structures a et b, par la procédure d'obtention de la forme de structure qui est une sous-routine du moyen de traitement des formes expansibles en réseau. Ensuite, au pas 902, le moyen 108 de traitement des formes expansibles en réseau obtient la forme de structure de la structure b, qui est l'autre des deux structures a et b, par la procédure d'obtention de forme de structure, qui est une sous-routine du moyen de traitement des formes expansibles en réseau.Au pas 903, une forme de structure qui constitue une intersection des formes de structures des structure a et b obtenues aux pas 901 et 902 est obtenue par la procédure d'obtention de la forme de structure résultant de l'intersection qui est une sous-routine du moyen 108 de traitement des formes expansibles en réseau. Au pas 904, le système juge si la forme de structure résultant de l'intersection, obtenue au pas 903, est vide ou non. Si la forme de structure résultant de l'intersection n'est pas vide, la structure a et la structure b sont considérées comme en coincidence et cette forme de structure résultant de l'intersection est renvoyée au pas 905. Si la forme de structure résultant de l'intersection est vide, le système considère que les formes de structure a et de structure b ne sont pas en coincidence et la notification de non coincidence de forme est renvoyée au pas 906. La figure 16 est un ordinogramme qui illustre l'opôration réalisée par la procédure d'obtention de forme de structure, qui est une sous-routine du moyen 108 de traitement des formes expansibles en réseau. Avant de décrire l'opération représentée sur l'ordinogramme de la figure 16, on décrit la structure de données utilisée dans le moyen 108 de traitement des formes expansibles en réseau et sa signification. Le moyen 108 de traitement des formes expansibles en réseau vérifie si les types de structure sont en coincidence ou non. Le terme "structure" signifie ici la structure de la spécification (spécification partielle) ou d'un élément de programme 122 tel que mentionné pour le moyen 107 de vérification d'admissibilité. La spécification (spécification partielle) et ltélément de programme 122 sont structurés comme indiqué sur la figure 10. C'est une structure d'arbre dans le format "nom de foncteur (term )" qui peut se placer en fonction du nom de foncteur dans la structure. Les noms utilisés pour la classification des foncteurs sont dénommés sorts/classes. De façon générale, une relation d'ordre partielle s'établit parmi les classes, ce qui se traduit par la formation d'une hiérarchie de classes. La figure 11 représente un exemple de classes et de hiérarchies de classes. Un élément de programme 1101, une phrase 1102, une expression 1103, une phrase conditionnelle 1104, une assignation 1105, une expression d'addition 06, et une expression de soustraction 1107 sont des classes. Entre les classes reliées par une flèche existe une relation d'ordre. Par exemple le foncteur "IF" de la structure "IF (x == y, x = x + 1 x = x + 1 x = x + 2)" est classé dans les phrases conditionnelles 1104. Lorsque deux structures tombent dans le même classe, ou lorsque la classe dans laquelle l'une ou l'autre des structures est classée est en relation d'inclusion transitive avec l'autre classe dans laquelle l'autre structure est classée, du point de vue de la relation d'ordre, les deux structures sont considérées comme étant en coincidence. Par exemple, si une structure est classée comme expression d'addition 1106 et que l'autre structure est classée comme expression 1103, il s'établit une relation d'ordre entre l'expression d'addition 1106 et l'expression 1103 qui sont toutes les deux des classes et elles sont en relation d'inclusion transitive du point de vue de la relation d'ordre. Par conséquent, la structure classée comme expression d'addition 1106 et la structure classée comme expression 1103 sont en coincidence au point de vue de leurs formes. Toutefois, lorque les deux structures sont des variables, il y a certains cas dans lesquels les formes sont considérées comme en coincidence bien que les deux structures ne tombent pas dans la même classe et que ni l'une ni l'autre des classes soit en relation d'inclusion transitive si l'on considère la relation d'ordre entre la classe dans laquelle l'une des structures est classée et autre classe dans laquelle l'autre structure est classée. Supposons que les deux variables soient classées comme phrase 1102 et comme expression 1103, respectivement.La phrase 1102 et l'expression 1103 ne sont pas de la même classe et elles ne sont pas en relation d'inclusion transitive du point de vue de la relation d'ordre (la relation d'ordre n'est pas fixée). Toutefois, après examen de coincidence des variables, elles peuvent être considérées comme en coincidence avec la phrase conditionnelle 1104 ou avec l'assignation 1105. De ce fait la phrase conditionnelle 1104 et ltassîgnation 1105 sont en relation d'inclusion transitive avec la phrase 1102 et l'expression il 03, respectivement, du point de vue de la relation d'ordre. Par conséquent, dans cette invention, la hiérarchie de classe représentée sur la figure il est étendue à un réseau de hiérarchies de classe pour la vérification de la mise en coincidence de formes. Si l'on se réfère à un groupe (un ensemble) incluant toutes les classes sous le nom de "Sorts", alors il existe un ensemble ordonné partiel constitué par l'ensemble moteur P(Sorts) des classes et par la relation d'inclusion C pour l'ensemble P(Sorts). Cet ensemble ordonné partiel s'exprime dans cette réalisation sous la forme POW~SORTS #P(Sorts),C# Par exemple, si une hiérarchie de classe comprenant trois classes a, b et c données sur la figure 12 est Sorts, l'ensemble POW SORTS tP(Sorts),a ] est comme représenté sur la figure 13. Dans la hiérarchie de classes de la figure ii, on peut considérer la hiérarchie POW~SORTS t P(Sorts),## correspondant à la figure 13. Une telle structure hiérarchique se dénomme généralement un réseau. A un élément arbitraire s de Sorts, on peut faire correspondre un ensemble s'exprimant sous la forme lower(s) - Cx I| x E Sorts, x S s} un ensemble de lower(s) ainsi généré se dénomme Lowers dans cette réalisation. En bref, Lowers = Cx I x - lower(s), S E Sorts) Les éléments de l'ensemble Lowers sont en relation d'ordre partielle en fonction d'une inclusion. Cette hiérarchie définie par la relation d'ordre partielle conserve la hiérarchie de classe d'origine définie par Sorts. Si la hiérarchie de classe donnée sur la figure 12 est Sorts, son ensemble Lowers est comme représenté sur la figure 14. La structure de la hiérarchie de classe Sorts est une correspondance un à un avec la structure donnée par Lowers. En outre, l'ensemble Lowers reprôsente' sur la figure 14 est un sous-ensemble de l'ensemble moteur P(Sorts) des classes représentées sur la figure 13. Tous les éléments de l'ensemble Lowers sont des éléments de l'ensemble P(Sorts) et la relation d'ordre des éléments de Lowers est conservée pour P(Sorts). Par conséquent, la coincidence de forme concernant la hiérarchie de classe Sorts peut également s'appliquer à la coincidence de forme concernant l'ensemble moteur P(Sorts) de Sorts. Par conséquent, dans cette réalisation, les formes de structure utilisées avec le moyen 108 de traitement des formes expansibles en réseau, décrites en détail sur la figure 9, sont considérées comme des éléments de l'ensemble moteur P(Sorts) de Sorts, qui est la hiérarchie de classes. Sur la figure 16, la procédure d'obtention de la forme de structure, qui est une sous-routine du moyen 108 de traitement des formes expansibles en réseau juge si la structure d'entrée est une variable ou non. Si la structure est une variable, la forme de structure s'obtient au pas 1604. Dans cette réalisation, une structure telle qutune variable doit avoir une forme de structure comme attribut de la variable. Au pas 1604, en obtenant l'attribut représentant la forme de structure de la structure, qui est une variable, on obtient la forme de structure de la variable. Si la structure n'est pas une variable, la classe à laquelle la structure appartient est basée sur le nom de foncteur et la définition du nom de foncteur au pas 1602.Au pas 1603, en utilisant les noms de classe obtenus au pas 1602, on obtient la forme de structure en utilisant la fonction Lower pour obtenir l'ensemble Lowers, à partir de l'ensemble Sorts. Cette fonction Lower pour obtenir l'ensemble Lowers à partir de l'ensemble Sorts peut se définir comme suit: Lower(s) = Cx |x x E Sorts, x s s) La procédure d'obtention de la forme de structure renvoie la forme de structure déterminée au pas 1603 ou au pas 1604. La figure 17 est un ordinogramme pour illuster l'opération de la procédure d'obtention de la forme de structure résultant de l'intersection, procédure qui est une sous-routine du moyen 108 de traitement des formes expansibles en réseau. Comme décrit ci-dessus, une forme de structure est un élément de l'ensemble moteur P(Sorts) de la hiérarchie de classe Sorts. Parmi les sortes de structure, on peut définir l t opération correspondant à l'intersection des ensembles. Au pas 1701 , l'intersection de deux formes de structure se fait et la forme de structure obtenue est traiée en tant que valeur renvoyée de la procédure d'obtention de la forme de structure résultant de l'intersection. Si cette valeur renvoyée est un ensemble vide, les deux formes de structure sont jugées comme non coincidentes, au pas 904. La figure 18 est un ordinogrammme pour illustrer l'opôration du moyen 109 de conversion de la spéci fication. Ce moyen 109 de conversion de la spécifi fication entre la spécification partielle, la connaissance d'expert appliquée 120 et la paire unifiée en provenance du moyen 107 de vérification de l'admissibilité. Au pas 1801, on obtient d'abord l'indication de relation contenue dans la section de relation 121 de la connaissance d'expert appliquée 120. Puis, au pas 1802, le système juge si l'indication de relation est "réécrire la relation" ou non. Si l'indication de relation est de réécrire la relation, le moyen de traitement 110 consistant à réécrire la relation est activé au pas 1803 de sorte que la spécification partielle entrée est convertie.Si l'indication de relation n'est pas "réécrire la relation", le système juge si l'indication de relation est "primitive" ou non au pas 1804. Si elle est "primitive", le moyen de traitement 111 consistant à réécrire la spécifi cation en utilisant une primitive est activé au pas 1805 pour conversion de la spécification partielle entrée. Si l'indication de relation n'est pas "primitive", le système juge, au pas 1806, Si l'indication de relation est "métaprimitive". Si l'indication de relation est "métaprimitive", le moyen 112 de traitement par métaprimitive est activé au pas 1807 de sorte que la spécification partielle entrée est convertie.Si l'indication de relation n'est pas "môtaprimitive", l'indication de relation est traitée comme fonction désignée par l'utilisateur et la spécification partielle, la connaissance d'expert appliquée 120 et la paire unitifée sont, au pas 1809, envoyées à la fonction de conversion. Ensuite, au pas 1810, le moyen 115 d'enregistrement de dérivation de programme est activé pour traiter la spécification partielle, la connaissance d'expert appliquée 120, la paire unifiée, les données pour conversion et la spécification partielle après conversion sous forme d'arguments. Finalement, après conversion, la spécification partielle est renvoyée au moyen 107 de vérification d'admissibilité pour mettre fin à la procédure. La figure 19 est un ordinogramme pour illustrer l'opôration du moyen 110 de traitement consistant à réécrire la relation. Le moyen 110 de traitement consistant à réécrire la relation reçoit la spécification partielle à convertir, la connaissance d'expert appliquée 120 et la paire unifiée. Premièrement, au pas 1901, le sous-arbre correspondant à la spécification partielle reçue dans la spécification d'entrée 117 est remplacé par "houle", qui est une constante spéciale. Au pas 1902, la spécification d'entrée 117 et la paire unifiée reçue sont fournies à la procédure de traitement par paire unifiée pour remplacer par la paire unifiée les variables fournies d spécifications d'entrée. Au pas 1903, l'indication de relation est recherchée dans la section de relation 121 de la connaissance d'expert reçue 120.Au pas 1904, le système juge si l'indication de relation est "eq" ou non. Dans cette réalisation, "eq" est donné comme indication de relation pour représenter la relation de réécriture. La connaissance d'expert présentant la section de relation 121 contenant l'indication de relation, "eq" a deux éléments de programme 122. Lorsque l'indication de relation est "eq", c'est le second élément de programme 122 de la connaissance d'expert reçue 120 qui est prélevé au pas 1905. Alors, au pas 1907, le second élément de programme 122 et la paire unifiée reçue sont fournis à la procédure de traitement par paire unifiée pour y remplacer par la paire unifiée les variables données dans la spécification d'entrée. Lorsque 1 t indication de relation n'est pas eq, la spécification partielle reçue et la paire unifiée reçue sont fournies à la procédure de traitement par paire unifiée au pas 1906 pour y remplacer, par la paire unifiée, les variables fournies dans les spécifications d'entrées. Au pas 1908, la constante "hole" dans la spécification d'entrée 117 créée au pas 1901 est remplacée par la structure après traitement paire paire unifiée, au pas 1907 ou 1906. Ensuite, au pas 1908, la spécification d'entrée après conversion est renvoyée ce qui met fin à la procédure. La figure 20 est un ordinogramme pour illustrer l'opération du traitement par paire unifiée, qui est une sous-routine du moyen de traitement 110 consistant à réécrire la relation. Premièrement, au pas 2001, le système juge si la structure reçue est une variable ou non. Si c'est une variable, une paire correspondant à la variable est prélevée dans les paires unifiées reçues au pas 2002. Par exemple, si la paire unifiée est variable X, structure A > , c variable Y, structure B 9, la paire correspondant à la variable Y est structure B > . Il n'y a pas de paire correspondant à la variable Z. Au pas 2003, le système vérifie si une paire correspondante a été ou non trouvée au pas 2002. Si une paire correspondante existe, la variable est remplacée par la structure de la de la paire correspondante au pas 2004.Par exemple, si la structure reçue est la variable X et si la paire unifiée reçue est , variable Y, structure B oy, la structure A est renvoyée au lieu de la variable X. S'il n'y a pas de paire correspondante, la variable reçue est renvoyée comme telle. Par exemple, la structure reçue est la variable Z et la paire unifiée est variable Y, structure B > > ,la variable Z est la valeur renvoyée. Si la structure reçue n'est pas une variable, la structure a le format "nom de foncteur (child structure, , child structure m). Dans ce cas toutes les structures de descendant/ child structures sont, au pas 2005 soumises au traitement par paire unifiée. Supposons que le traitement par paire unifiée de la structure A se traduise par "Unif (structure A)". Au pas 2005, on obtient et on renvoie "Functor name (Unif (child structure 1), ..., Unif (Child structure m))". La figure 21 est un ordinogramme pour illustrer l'opôration du moyen de traitement 111 consistant à réécrire la spécification en utilisant une primi tive. Le moyen de traitement 111 consistant à réécrire la spécification en utilisant une primitive réécrit la spécification partielle en utilisant la connaissance de conversion par la primitive, particulière au système lorsque la connaissance d'expert appliquée 120 a une section de relation 121 indiquant "relation avec primitive". Dans cette réalisation, "equal" est donné comme connaissance de conversion par la primitive propre au système. Premièrement, au pas 2001, on obtient un foncteur pour la structure reçue. Puis le système juge si le nom du foncteur est "equal", ou non, au pas 2002. Sinon, la structure reçue est renvoyée comme telle au pas 2103. Si c'est "e"equal", le système juge si les structures descendantes de la structure reçue sont équivalentes ou non, au pas 2104 et le résultat est vérifié au pas 2105. Si elles sont équivalentes, la structure "TRUE ()" est renvoyée au pas 2106. Si elles ne sont pas équivalentes, la structure "FALSE ()" est renvoyée au pas 2107. Ce moyen de traitement 111 consistant à réécrire la spécification en utilisant une primitive permet de décrire la connaissance d'expert 120 comme suit: Rel.eq IF (TRUE, X, Y) - > X. Rel.eq IF (FALSE, X, Y) - > Y. Rel. prim equal (X, Y) - > . Rel. eq flot (TRUE) - > FALSE. Rel. eq flot (FALSE) - > TRUE. Rel. eq if (X==Y)Z; - > IF (equal (X, Y), Z,). Par conséquent, la relation d'équivalence de structures peut être traitée en tant que connaissance d'expert 120. La figure 22 est un ordinogramme pour illustrer l'opération du moyen 112 de traitement par métaprimitive. Dans cette réalisation, "knowledge/connaissance", 11remove/enlever" et "setkb/base de connais naissance" sont préparées en tant que métaprimitives. Au pas 2201 , on obtient le nom de foncteur de la structure reçue. Puis, au pas 2202, le système juge si le nom de foncteur est "kno wledge" ou non. Si le nom de foncteur est "knowledge", f alors le moyen 113 de recherche dans la base de connaissances est activé au pas 2203. Si le nom de foncteur n'est pas "knowledge'; le système juge si le nom de foncteur est "remove" ou non, au pas 2204. Si le nom de foncteur est "remove" le moyen 114 de changement de la base de connaissances est activé en tant que "remove" au pas 2205. Si le nom de foncteur n'est pas "remove", le système juge si le nom de foncteur est "setkb", ou non. Si le nom de foncteur est "setkb", le moyen 114 de changement de la base de connaissances est activé en tant que"setkb" au pas 2207.Si le nom de foncteur n'est pas "setkb", la structure est renvoyée comme telle au pas 2208. La figure 23 est un ordinogramme pour illustrer 1 ' opération du moyen 113 de recherche dans la base de connaissances. La structure reçue par le moyen 113 de recherche dans la base de connaissance est "knowledge (child structure ) . Au as 2301, la structure descendante de la structure reçue est recherchée. Ensuite, au pas 2302 est prélevée une connaissance d ' expertised#expertîse 120 ayant la même structure que la structure descendante recherchée ci-dessus en tant que premier élément de programme 122 (connaissance correspondante). Ensuite, au pas 2303, le système juge si une connaissance d'expert correspondante 120 a été trouvée au pas ci-dessus ou non. Si une connaissance d'expert correspondante 120 a été trouvée, un foncteur correspondant à l'indication de relation est généré par la section de relation 121 de la connaissance d'expert prélevée 120, au pas 2304. Une structure comportant ce nom de foncteur et tous les éléments de programme 122 de la connaissance d'expert 120 est créée. Au pas 2305, une structure créée au pas 2304 est renvoyée au moyen 112 de traitement par métaprimitive, en tant que résultat du moyen 113 de recherche dans la base de connaissance. Si aucune connaissance d'expert correspondante 120 nta été trouvée, la structure reçue au pas 2306 est renvoyée comme telle au moyen 112 de traitement par métaprimitive. La figure 24 est un ordinogramme pour illustrer ltopération du moyen 114 de changement de la base de connaissances. Au pas 2401, le système juge si l'opération a été appelée par le moyen 112 de traitement par métaprimitive sous la forme "remove" ou non. Si elle a été appelée sous la forme "remove",, la structure reçue a le format "remove (partial structure)". Cette structure partielle est prélevée dans la structure au pas 2402. Ensuite, au pas 2403, toute connaissance d'expert 120 dont l'élément de programme 122 est en correspondance avec la structure partielle prélevée en tant que premier élément de programme 122 est, au pas 2403, enlevée de la base 119 de connaissance d'expert. Ensuite, au pas 2404, une structure vide est renvoyée.Si ltopération n'a pas été appelée sous la forme "remove", le système juge, au pas 2405, si elle a été appelée par le moyen 112 de traitement par métaprimitive sous la forme "setkb". Si elle a été appelée sous la forme "setkb", alors la structure reçue a le format "setkb (partial structure)". Cette structure partielle est prélevée dans la structure au pas 2406. Au pas 2407, le nom de foncteur de la structure partielle ainsi prélevée est converti en une indication de relation correspondante et la connaissance d'expert 120 est générée sur la base de cette indication de relation et de la structure descendante de la structure partielle. Ensuite, au pas 2408, la connaissance d'expert générée 120 est enregistrée dans la base de connaissance d'expert 119. Ensuite, au pas 2404, une structure vide est renvoyée. Si l'opération n'a été appelée ni sous la forme "remove" ni sous forme "stekb", alors la structure reçue est renvoyée comme telle au pas 2409. On va maintenant décrire le moyen 115 d'enregistrement de dérivation de programme et le moyen 116 de faire rapport du processus d'expertise. Le moyen 115 d'enregistrement de dérivation de programme est appelé par le moyen 109 de conversion de spécification et il enregistre un groupe constitue' de la spécification partielle, de la connaissance d'expert appliquée 120, de la paire unifiée, du type de conversion utilisé par le moyen 109 de conversion de spécification, et de la spécification partielle après conversion correspondant à la dérivation de programme 123. Le moyen 116 de faire rapport du processus d'expertise peut être activé après achèvement du processus de conversion de spécification. Il se réfère à la dérivation de progamme 123 générée par le moyen 115 d'enregistrement de dérivation de programme et il fournit le rapport 124 du processus d'expertise en fonction du type de conversion pour montrer la progression du processus d'expertise. Avec un système de génération automatique de programme de la présente invention tel que décrit ci-dessus, on peut obtenir les effets suivants: 1) La génération de paires constituées d'une spécification partielle et de la connaissance d'expert pour détailler une par une les spécifications partielles évite une génération excessive de paires applicables. 2) Le moyen de division de l'expertise permet au système de diviser la zone faisant l'objet de l'expertise avant cette expertise. Ceci signifie que le système ne doit plus rechercher la totalité de la spécification lorsqu'il recherche les spécifications partielles, ce qui se traduit par une réduction considérable du temps de recherche. 3) Lors de la vérification de forme pour les variables faites de la spécification partielle et de la connaissance d'expert, le moyen de traitement des formes expansibles en réseau permet un jugement correct. La vérification de forme sur la structure de réseau constituée des formes obtenues à partir de la hiérarchie des formes permet une acceptation correcte des paires qui auraient été déraisonnablement jugées comme n'étant pas en correspondance par le procédé conventionnel, alors qu'elles peuvent être considérées comme en correspondance lors d'un examen de correspondance ultérieur. 4) Le moyen de traitement consistant à réécrire la spécification en utilisant une primitive permet l'introduction d'une relation avec une primitive et un jugement d'équivalence pour les spécifications partielles sous forme de primitive. Ceci permet un réécriture avec reconnaissance de la différence dans les structures des spécifications. 5) La possibilité de traiter la connaissance qui se trouve dans la base de connaissance d'expert au cours du processus de génération automatique de programme permet de rechercher la connaissance d'expert contenue dans la spécification d'entrée pour emploi ultérieur dans le processus détaillant l'expertise. 6) Une nouvelle connaissance peut être ajoutée à la base de connaissance d'expert et une connaissance d'expert peut en être retranchée, au cours du processus de génération automatique de programme. Cette possibilité peut être utilisée pour obtenir des données partielles en provenance de la spécification d'entrée pour emploi ultérieur dans le processus détaillant l'expertise et pour éviter que la base de connaissance d'expert ne devienne trop compliquée, en supprimant certaines connaissances d'expert au cours du processus d'expertise. 7) Le moyen d'enregistrement de dérivation de programme et le moyen de faire rapport du processus d'expertise permettent d'enregistrer la spécification partielle et la connaissance d'expert sélectionnées au cours du processus de génération automatique de programme. Ceci permet de détecter un contenu incorrect de la base de connaissance et des erreurs dans la spécification d'entrée lorsque le programme résultant n'est pas satisfaisant. Bien entendu de nombreuses modifications et variantes de la présente invention sont possibles. L'intention est de couvrir dans les revendications jointes toutes les modification dans la mesure où elles tombent dans l'esprit et l'objet vrais de l'invention. REVENDICATIONS 1. Système de génération automatique d'un programme pour générer un programme cible par répétition de la conversion d'une spécification de programme, système caractérisé par le fait qu'il comporte: un moyen (101) d'entrée de la spécification pour entrer une spécification (117) et pour la convertir en un format d'arbre syntaxique, un moyen (102) de commande d'expertise pour commander la conversion de la spécification dans le format d'arbre syntaxique, conversion obtenue par ledit moyen (101) d'entrée de la spécification, une base (119) de connaissance d'expert constituée par des connaissances d'expert (120) accumulées, contenant des éléments de programme (122) et une section de relation (121) indiquant la relation entre elles;; un moyen (105) de sélection des connaissances d'expert pour sélectionner, dans ladite base (119) de connaissances d'expert, une connaissance d'expert (120) applicable à la spécification partielle à convertir, lorsqu'une telle connaissance existe, ou bien, lorsqu'aucune connaissance d'expert ne peut être sélectionnée, donner notification de cet effet audit moyen (32) de commande d'expertise;; un moyen (107) de vérification d'admissibilité pour vérifier si, oui ou non, la spécification partielle à convertir correspond à la connaissance d'expert (120) qui a été appliquée et a été sélec tionnée par ledit moyen (105) de sélection de connaissance d'expert, moyen de vérification d'admissibilité qui fournit la spécification partielle et la connaissance d'expert qui a été appliquée lorsqu'elles correspondent et, lorsqu'elles ne correspondent pas, donne notification de cet effet audit moyen (105) de sélection de connaissance d'expert, un moyen (109) de conversion de spécification pour sélectionner un traitement consistant en la conversion de spécification et basé sur la spécification partielle et sur la connaissance d'expert (120) qui a été appliquée, fournie par ledit moyen (107) de vérification d'admissibilité, et un moyen (110) de traitement consistant à réé- crire la relation, moyen qui est sélectionné par ledit moyen (109) de conversion de spécification lorsque la section de relation de la connaissance d'expert (120) qui a été appliquée indique de réécrire la relation et moyen qui réécrit la spécification partielle en fonction de ladite connaissance d'expert qui a été appliquée. 2. Système de génération automatique d'un programme selon la revendication 1, caractérisé par le fait qu'il comporte un moyen (103) de division de l'expertise, qui est appelé par ledit moyen (32) de commande de l'expertise, juge si, oui ou non, le noeud formant la racine de l'arbre syntaxique représentant la spécification peut se réécrire en utilisant ladite base (119) de connaissance d'expert, divise la spécification en sous-arbres lorsqu'il ne peut pas se réécrire et active à nouveau ledit moyen (102) de commande d'expertise pour chacun des sous-arbres. 3. Système de génération automatique d'un programme selon la revendication 1 , caractérisé en ce qu'il comporte un moyen (108) de traitement des formes expansibles en réseau, qui est appelé par ledit moyen (107) de vérification d'admissibilité, transpose la forme de la spécification partielle et la forme de ltélément de programme (122) de la connaissance d'expert (120) sur ltespace du réseau obtenu à partir de la hiérarchie des formes, pour pouvoir juger de leur concordance et déterminer la forme des variables. 4. Système de génération automatique d'un programme selon la revendication 1, caractérisé en ce qu'il comporte un moyen (111) de traitement consistant à réécrire la spécification en utilisant une primitive, moyen qui est sélectionné par ledit moyen (109) de conversion de spécification lorsque la section de relation (121) de la connaissance d'expert qui a été appliquée indique "relation avec une primitive" et qui réécrit la spécification partielle en utilisant la connaissance, relative à la conversion d'une primitive, particulière au système. 5. Système de génération automatique d'un programme selon la revendication 1 , caractérisé en ce qu'il comporte un moyen (112) de traitement par métaprimitive sélectionné par ledit moyen (109) de conversion de spécification lorsque la section de relation (121) de la connaissance d'expert (120) qui a été appliquée indique une relation avec une métaprimitive et un moyen (123) de recherche de la base de connaissance, qui est appelé par ledit moyen (112) de traitement par métaprimitive et recherche le contenu de ladite base (119) de connaissance d'expert relatif à ladite spécification. 6. Système de génération automatique d'un programme selon la revendication 1, caractérisé par le fait qu'il comporte un moyen (112) de traitement par métaprimitive sélectionné par ledit moyen (109) de conversion de spécification lorsque la section de relation (121) de la connaissance d'expert (120) qui a été appliquée indique une relation avec une métaprimitive et un moyen (114) de changement de la base de connaissance, qui est appelé par ledit moyen (112) de traitement par métaprimitive et ajoute, à ladite base de connaissance d'expert, la connaissance d'expert (119) décrite dans ladite spécification (117), ou bien retranche, de ladite base (119) de connaissance d'expert, la connaissance d'expert (120) concordant avec les éléments de programme décrits dans ladite spécification (117). 7. Système de génération automatique de programme selon la revendication 1, caractérisé en ce qu'il comporte un moyen (115) d'enregistrement de dérivation de programme, qui est appelé par ledit moyen (109) de conversion de spécification et enregistre un groupe constitué de la spécification partielle, de la connaissance d'expert (120) qui a été appliquée et de la spécification partielle après conversion et un moyen (116) de faire rapport du processus d'expertise pour se référer à la dérivation de programme générée par ledit moyen (115) d'enregistrement de dérivation de programme et pour faire rapport du processus d'expertise. 8. Système de génération automatique d'un programme selon la revendication 1, caractérisé en ce qu'il comporte un moyen (103) de division de l'expertise, qui est appelé par ledit moyen (32) de commande de ltex- pertise, juge si, oui ou non, le noeud formant la racine de l'arbre syntaxique représentant la spécification peut se réécrire en utilisant ladite base (119) de connaissance d'expert, divise la spécifi cation en sous-arbres lorsqu'il ne peut pas se réécrire et active à nouveau ledit moyen (102) de commande d'expertise pour chacun des sous-arbres, et un moyen (108) de traitement des formes expansibles en réseau, qui est appelé par ledit moyen (107) de vérification d'admissibilité, transpose la forme de la spécification partielle et la forme de l'élément de programme (122) de la connaissance d'expert (120) sur l'espace du réseau constitue des formes obtenues à partir de la hiérarchie des formes de façon que le système puisse juger si, oui ou non elles concordent et puisse déterminer la forme des variables. 9. Système de génération automatique de programme selon la revendication 1 caractérisé en ce qu'il comporte un moyen (108) de traitement des formes expansibles en réseau, qui est appelé par ledit moyen (10?) de vérification d'admissîbilîte', transpose la forme de la spécification partielle et la forme de l'élément de programme (122) de la connaissance d'expert (120) sur l'espace de réseau constitué des formes obtenues à partir de la hiérarchie des formes de façon que le système puisse juger si, oui ou non, elles concordent et puisse déterminer la forme des variables et un moyen (111) de traitement consistant à réécrire la spécification en utilisant une primitive, moyen qui est sélectionné par ledit moyen (109) de conversion de spécification lorsque la section de relation (121) de la connaissance d'expert qui a été appliquée indique "relation avec une primitive" et qui réécrit la spécification partielle en utilisant la connaissance, relative à la conversion primitive, particulière au système. 10. Système de génération automatique d'un programme selon la revendication 1 , caractérisé en ce qu'il comporte un moyen (103) de division de l'expertise qui est appelé par ledit moyen (32) de commande de l'expertise, juge Si, oui ou non, le noeud formant la racine de l'arbre syntaxique représentant la spécification peut se réécrire en utilisant ladite base (119) de connaissance d'expert, divise la spé- cification en sous-arbres lorsqu'il ne peut pas se réécrire et active à nouveau ledit moyen (102) de commande d'expertise pour chacun des sous-arbres;; un moyen (103) de division de l'expertise qui est appelé par ledit moyen (32) de commande de l'expertise, juge Si, oui ou non, le noeud formant la racine de l'arbre syntaxique représentant la spécification peut se réécrire en utilisant ladite base (119) de connaissance d'expert, divise la spé- cification en sous-arbres lorsqu'il ne peut pas se réécrire et active à nouveau ledit moyen (102) de commande d'expertise pour chacun des sous-arbres;;et un moyen (111) de traitement consistant à réé- crire la spécification en utilisant une primitive, moyen qui est sélectionné par ledit moyen (109) de conversion de spécification lorsque la section de relation (121) de la connaissance d'expert qui a été appliquée indique "relation avec une primitive" et qui réécrit la spécification partielle en utilisant la connaissance, relative à la conversion d'une primitive, particulière au système. 11. Système de génération automatique d'un programme pour générer un programme cible par répétition de la conversion d'une spécification de programme, système caractérisé par le fait qu'il comporte: un moyen (101) d'entrée de la spécification pour entrer la spécification (117) et pour la convertir en un format d'arbre syntaxique, un moyen (102) de commande d'expertise pour commander la conversion de la spécification dans le format d'arbre syntaxique, conversion obtenue par ledit moyen (101) d'entrée de la spécification, une base (119) de connaissance d'expert consti tuée par les connaissance d'expert accumulée (120) contenant des éléments de programme (122) et une section de relation (121) pour représenter la relation mutuelle entre eux;; un moyen (103) de division de l'expertise qui est appelé par ledit moyen (32) de commande de ltex- pertise, juge si, oui ou non, le noeud formant la racine de l'arbre syntaxique représentant la spécification peut se réécrire en utilisant ladite base (119) de connaissance d'expert, divise la spécification en sous-arbres lorsqu'il ne peut pas se réécrire et active à nouveau ledit moyen (102) de commande d'expertise pour chacun des sous-arbres; un moyen (105) de sélection de connaissance d'expert pour sélectionner, dans ladite base (119) de connaissance d'expert, la connaissance d'expert appliquée à la spécification partielle à convertir, lorsque cette connaissance existe;; un moyen (107) de vérification d'admissibilité pour vérifier si, oui ou non, la spécification partielle à convertir concorde avec la connaissance d'expert (120) qui a été appliquée et qui a été sélectionnée par ledit moyen (105) de sélection de connaissance d'expert et moyen qui, si elles concordent, fournit la spécification partielle et la connaissance d'expert qui a été appliqué; un moyen (108) de traitement des formes expansibles en réseau, qui est appelé par ledit moyen (107) de vérification d'admissibilité, transpose la forme de la spécification partielle et la forme de l'élément de programme (122) de la connaissance d'expert (120) sur l'espace du réseau constitué des formes obtenues à partir de la hiérarchie des formes de façon que le système puisse juger si, oui ou non, elles concordent et puisse déterminer la forme des variables;; un moyen (109) de conversion de spécification pour sélectionner un traitement consistant en la conversion de spécification et basé sur la spécification partielle et sur la connaissance d'expert (120) qui a été appliquée, fournie par ledit moyen (107) de vérification d'admissibilité, un moyen (110) de traitement consistant à réé- crire la relation, moyen qui est sélectionné par ledit moyen (109) de conversion de spécification lorsque la section de relation de la connaissance d'expert (120) qui a été appliquée indique de réécrire la relation et moyen qui réécrit la spécification partielle en fonction de ladite connaissance d'expert qui a été appliquée;; un moyen (111) de traitement consistant à réécrire la spécification en utilisant une primitive, moyen qui est sélectionné par ledit moyen (109) de conversion de spécification lorsque la section de relation (121) de la connaissance d'expert qui a été appliquée indique "relation avec une primitive" et qui réécrit la spécification partielle en utilisant la connaissance, relative à la conversion d'une primitive, particulière au système; un moyen (112) de traitement par môtaprimitîve sélectionné par ledit moyen (109) de conversion de spécification lorsque la section de relation (121) de la connaissance d'expert (120) qui a été appliquée indique une relation avec une métaprimitive;; un moyen (123) de recherche dans la base de connaissance, qui est appelé par ledit moyen (112) de traitement par métaprimitixe et recherche le contenu de ladite base (119) de connaissance d'expert relatif à ladite spécification; un moyen (114) de changement de la base de con naissance, qui est appelé par ledit moyen (112) de traitement par métaprimitive et ajoute, à ladite base de connaissance d'expert, la connaissance d'expert (119) décrite dans ladite spécification (117), ou bien retranche, de ladite base (119) de connaissance d'expert, la connaissance d'expert (120) concordant avec les éléments de programme décrits dans ladite spécification (117); ; un moyen (115) d'enregistrement de dérivation de programme, qui est appelé par ledit moyen (109) de conversion de spécificatimet enregistre un groupe constitué de la spécification partielle, de la connaissance d'expert (120) qui a été appliquée et de la spécification partielle après conversion; et un moyen de faire rapport du processus d'expertise pour se référer à la dérivation de programme générée par ledit moyen (115) d'enregistrement de dérivation de programme et pour faire rapport du processus d'expertise.