FR2578990A1 - Methode de traitement des calculs - Google Patents

Methode de traitement des calculs Download PDF

Info

Publication number
FR2578990A1
FR2578990A1 FR8601907A FR8601907A FR2578990A1 FR 2578990 A1 FR2578990 A1 FR 2578990A1 FR 8601907 A FR8601907 A FR 8601907A FR 8601907 A FR8601907 A FR 8601907A FR 2578990 A1 FR2578990 A1 FR 2578990A1
Authority
FR
France
Prior art keywords
queue
execution
predicate
queuing
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR8601907A
Other languages
English (en)
Other versions
FR2578990B1 (fr
Inventor
Takeshi Chusho
Hirohide Haga
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of FR2578990A1 publication Critical patent/FR2578990A1/fr
Application granted granted Critical
Publication of FR2578990B1 publication Critical patent/FR2578990B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/313Logic programming, e.g. PROLOG programming language
    • G06F8/3135Unification or backtracking

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

UNE MACHINE A LANGAGE DE PROGRAMMATION LOGIQUE ENTRAINE LE RETABLISSEMENT D'UN EFFET SECONDAIRE QUAND UN RETOUR EN ARRIERE EST EXECUTE APRES L'EXECUTION D'UN PREDICAT ACCOMPAGNE D'UN EFFET SECONDAIRE. LA MACHINE FONCTIONNE EN REMPLACEMENT D'UNE INDICATION D'EXECUTION D'UN PREDICAT ACCOMPAGNE D'UN EFFET SECONDAIRE, POUR GARDER LEDIT PREDICAT DANS UNE FILE D'ATTENTE, SORTIR LE PREDICAT DE LA FILE D'ATTENTE AU MOMENT DU RETOUR EN ARRIERE ET EXECUTER LES PREDICATS DE LA FILE D'ATTENTE, DANS LAQUELLE UNE FORMULE ATOMIQUE PARTICULIERE EST MISE EN FILE D'ATTENTE DANS UNE FILE D'ATTENTE D'EXECUTION DIFFEREE, LA FORMULE ATOMIQUE MISE EN FILE D'ATTENTE EST SORTIE DE LA FILE D'ATTENTE ET EXECUTEE, ET L'OPERATION DE MISE EN FILE D'ATTENTE EST ANNULEE.

Description

METHODE DE TRAITEMENT DES CALCULS
La prése,-e invention concerne un procédé d'exécu-
tion de calculs, et en particulier, un procédé d'exécution de calculs dans lequel une exécution de calculs associée à un effet secondaire d'un programme est retardée aussi longtemps que possible de façon qu'une telle exécution soit
facile à annuler.
Dans le procédé classique d'exécution de calculs uti-
lisant un langage de programmation logique, par exemple Prolog, il a été prévu une fonction de retour en arrière comme décrit dans le texte "Programming in Prolog" de Wo
F. Clocksin et C.S. Mellish, en particulier dans le para-
graphe 6.4, à savoir quand l'exécution de toutes les clau-
ses d'un sous-objectif rencontré sur la voie d'un objectif final s'est révélée défectueuse, le processus est ramené en arrière pour exécuter des clauses qui n'ont pas été exécutées pour le sous-programme précédent. Cependant, on n'a pas encore considéré jusqu'à quel point au moment ou un retour en arrière se produit après l'exécution d'un traitement d'entrée/sortie ou une manipulation de base de données, un effet secondaire résultant de l'exécution, tel qu'une action de modification d'une fonction de programme, par exemple, par suite d'une opération d'écriture effectuée
dans une mémoire globale devait être éliminé.
C'est donc un objet de la présente invention de pro-
poser un procédé d'exécution de calculs ayant une fonction pour retarder une exécution réelle de prédicat incorporé accompagné d'un effet secondaire jusqu'à un moment o un retour en arrière ne peut plus se produire, en minimisant ainsi la détérioration d'une fonction
d'inférence utilisant un retour en arrière spécifi-
quement caractéristique du langage de programma-
tion logique (machine) tel que Prolog, provoqué par l'utilisation du prédicat incorporé accompagné d'un - 2 - effet secondaire non restaurable & l'apparition du retour en arrière. Dans ce but, la présente invention propose un procédé de calcul dans une machine orientée vers le langage comprenant une unité incorporée de prédicats et une unité de traitement des informations comprenant les pas de prévision d'une file d'attente d'exécution différée; mettant en file d'attente une formule atomique spécifiquedans la file d'attente d'exécution différée; sortant de file d'attente et exécutant la formule atomique mise en file d'attente; et annulant l'opération de mise en file d'attente
lorsque le retour en arrière intervient.
La présente invention est détaillée dans la
description détaillée qui va suivre considérée en
liaison avec le dessin annexé dans]equel: la figure 1 est un schéma illustrant un exemple de programme Prolog de l'art antérieur; la figure 2 est un schéma d'une configuration de système illustrant un mode de réalisation d'une machine Prolog de l'art antérieur; la figure 3 est un schéma illustrant le format général d'un ensemble de clauses ayant le même nom de clause dans leur partie entête à l'intérieur d'un programme Prolog; la figure 4 est un schéma illustrant un organigramme de traitement dans lequel une formule atomique d'une clause du Prolog est calculée selon le procédé de l'art antérieur tel qu'il est représenté sur la figure 2; la figure 5 est un schéma illustrant un exemple de programme Prolog utilisant une fonction de la présente invention; et la figure 6 est un schéma de configuration de système illustrant un mode de réalisation de la présente
invention.
- 3 - On va maintenant décrire des modes de réalisation de la présente invention en se référant au dessin annexé. La figure 1 est un schezma représentant un exemple simple de programe PLrolog eans lequel leS règles de syntaxes sent oonf au Prolog DEC10o Dans ce programme, un mot "envoyer" est supposr être un prédicat accompagné d'un effet secondaire, qui est un objet & traiter selon la présente invention. D'une façon générale, un prédicat accompagné d'un effet secondaire peut être connu d'avance, par suite de la nécessité de stocker la variable d'état correspondante dans une mémoire globale pendant une longue période de temps, par
exemple.
La figure 2 est un schéma illustrant un exemple de système de traitementselon l'art antérieur pour le traitement d'un programme Prolog. Unterminal entrée/sortie 1 est adapté pour une opération d'entrée par l'opérateur et pour la visualisation de données délivrées par le système et est commandée par une unité de traitement en entrée /sortie 2. L'exécution du programme est en fait effectuée par une unité de calcul 3, qui échange des informations avec une unité de programme 4 contrôlant des programmes rédigés par l'utilisateur et avec une unité de prédicats incorporée
5 commandant des programmes prépares du côté système.
La figure 3 est un schéma illustrant un format général d'un ensemble de clauses ayant chacune le même nom de prédicat, p dans cet exemple, du côté gauche de " -", plus précisément, dans la partie entête de chaque
clause à l'intérieur d'un programme Prolog.
La figure 4 est un organigramme d'un traitement dans le cas o un seul élément, par exemple qkl sélectionné parmi la liste des formules atomiques placées du côté droit de ":-" de chaque clause représentée sur la figure 3 est exécuté par le système -4- de traitement de la figure 2. La portion traitement sera désignée ci-dessous par SG. La portion SG comprend deux types d'entrées à savoir, une formule atomique à soumettre à un calcul et des informations indiquant laquelle parmi lejeu des clauses ayant le même prédicat dans sa partie entête est le premier article à exécuter (figure 3). Cette dernière correspond à k sur la figure 4 et une valeur modifiée pendant un traitement est renvoyée & la place de k à la fin du traitement. Cette portion SG est exécutée de façon récurrente dans le bloc
21 de la figure 4.
En se référant maintenant à la figure 4, on va décrire un organigramme de traitement dans un cas o le programme de la figure 1 est exécuté en employant le
système de traitement d'exécution de la figure 2.
Supposons ici ?-p(b) en entrée. L'unité de calcul 3 placee a SG
commence alors l'exécution de la portion SG/(p(b), 0).
La première ligne de la figure i est effectuée avec k=l.
Il en résulte d'abord X=b, puis le premier article q(Y) du côté droit de la première ligne est exécuté, ce qui conduit au résultat Y=a. Ensuite, le second article r(Y) de la même ligne est traité pour atteindre le résultat de Z=a; puis, envoyer (a, c) accompagné d'un effet latéral est exécuté. Quand une tentative est faite pour exécuter S (X, Y), l'exécution de S(b, a) échoue, ce qui provoque donc un retouren arrière. Dans le bloc 23, la valeur de L est décrémentée d'une unité. Le traitement de retour au pas 21 est répété jusqu'& ce que la valeur de 1 passe de 3 & 1. Quand une tentative est faite pour exécuter à nouveau q(Y) dans cet état, la ligne 3 de la figure 1 est exécutée par suite de t(1) =l ce qui conduit à Y=b. Ensuite, r(Y) est exécuté à nouveau, envoyer (b, c) est effectué et l'exécution de S(X, Y) est réussie, ce gui termine le traitement. Dans cet exemple, il existe un problème tel qu'à l'apparition du retour en arrière, l'effet secondaire dû au fait d'envoyer (a, c) déj& exécuté n'a pas été annuleo La figure 5 est un schéma dun prograimse mis en oeuvre en perfectionnant le programme de la figure 1, dans lequel son; incorporés des prédicats intégrés, une mise en file d'attente et un retrait de fle d'attente, selon la présente invention, en supprimant ainsi le problème exposé ci-desus.S La figure 6 est un schéma de configuration illustrant un mode de réalisation de la présente invention dans lequel une file d'ex&cution différée 6 est ajoutée au système classique de la figure 2. Le procédé d'utilisation de la file dexécution diffrée 6 va maintenant est décrit ci-dessous comme traitement
supplémentaire de l 'organigramme de traitement de la tech-
nique selon l'art antérieur représenté sur la figure 4.
(1) Immédiatement avant l'exécution du bloc 20, le nom de prédicat d'une formule atomique qk, à exécuter en suivant est vérifié pour déterminer s'il est ou non mis en file d'attente. Si tel est le cas, l'argument est mis en file d'attente dans la file d'attente d'exécution
différée 6.
(2) Immédiatement après l'exécution du bloc 20, le est vérifié pour déterminer s'il est ou non sorti de file d'attente. Si tel est le cas (sortie de file d'attente), les formules atomiques placées dans la file d'attente d'exécution différée 6 sont sorties de la file d'attente et exécutées dans
l'ordre de leur mise en file d'attente.
(3) Quand un traitement de retour en arrière est lancé dans le bloc 23, la formule atomique mise en file d'attente dans la file d'attente d'exécution différée 6 par la mise en file d'attente sujette à annulation
d'exécution est retirée.
En conséquence, si le programme de la figure 5 est
257899C
- 6 - exécuté dans la configuration du système de la figure 6, l'instruction envoyée (a, c) n'est pas effectuée immédiatement à la première exécution de r(Y). Par contre, l'instruction envoyée (a, c) est d'abord enregistrée dans la file d'attente d'exécution différée 6 et puis retirée par le' traitement de retour en arrière provoqué par un défaut d'exécution de s(X, Y). A la seconde exécution de r(Y), l'opération envoyée (b, c) est mise en file d'attente; et lorsque la sortie de lo file d'attente est exécutée, l'opération envoyée (b, c) est sortie de la file d'attente d'exécution différée 6
et effectuée.
La méthode d'exécution des calculs décrite ci-dessus peut conduire au même effet que l'annulation qui doit être effectuée après une exécution d'un
prédicat accompagné d'un effet secondaire.
Les termes "mise en file d'attente" et "sortie de file d'attente" tels qu'ils viennent d'être décrits peuvent être effectivement utilisés comme des macro-instructions superviseurs du système
d'exploitation traitant de tels prédicats.
Selon la présente invention, le traitement des calculs des portions d'un programme accompagné d'un effet secondaire peut être différé par mise en file d'attente des portions du programme dans la file d'attente d'exécution différée, et par conséquent, l'annulation du traitement d'annulation d'un effet secondaire n'est plus nécessaire quand un retour en arrière est exécuté dans une programmation logique en langage machine, ce qui facilite l'utilisation de la fonction d'inférence avec des opérations de retour en arrière caractérisant la programmation logique en langage machine; de plus, les traitements qui ne sont pas nécessaires sont éliminés, d'o une augmentation du
rendement du traitement.
- 7 - De plus, la présente invention propose un système qui résout simultanément deux problèmes contradictoires tels que l'effet secondaire et le retour en arrière qui sont susceptibles de se produire dans un système réalisé en combinant le langage de programmation logique de l'art antérieur avec un langage orienté objet, ce qui
conduit & une nouvelle architecture d'ordinateur.

Claims (5)

REVENDICATIONS
1. Procédé d'exécution de calculs d'une machine orientée vers le langage comprenant une unité incorporée de prédicats et une unité de traitement des informations ainsi qu'une file d'attente d'exécution différée, comprenant les pas suivants: mise en file d'attente d'une formule atomique particulière dans une file d'attente d'exécution différée; sortie de file d'attente et exécution de la formule atomique mise en file d'attente dans ladite file d'attente d'exécution différée; et
annulation de l'opération mise en file d'attente.
2. Procédé d'exécution de calculs selon la revendication 1, dans laquelle ladite formule atomique particulière est un prédicat accompagné d'un effet secondaire qui ne peut pas facilement être ramené à son
état initial lorsqu'un retour en arrière se produit.
3. Procédé d'exécution de calculs selon la revendication 2, comprenant en outre un pas de retardement de l'exécution de la formule atomique particulière jusqu'à un moment o le retour en arrière
ne peut plus se produire.
4. Procédé d'exécution de calculs selon la revendication 3, dans laquelle ledit moment comprend le moment o un objectif donné est atteint et o une commande de sortie de file d'attente est explicitement
indiquée dans un programme.
5. Système d'exécution de calculs dans une machine orientée vers le langage en utilisant un langage de programmation logique et un langage orienté vers les objets, comprenant une unité (2) de traitement des entrées/sorties, une unité (5) incorporée de prédicats pour la gestion ou un programme system, une unité (4) de programme pour gérer un programme utilisateur,
257899 C
-9- une unité (3) de traitement des informations óouplée avec lesdites unités pour exécuter un programme, comprenant: des moyens de file d'attente d'exéoution différée (6) couplés avec ladite unité de traitement des informations pour assurer une exécution retardée à un prédicat donne ayant un effet secondaire qui est difficile à ramener & son état initial lorsquIun retour en arrière est exécuté ou déclench; des moyens de mise en file d'attente pour déterminer si le nom d'un prédicat exécuté est mis en file d'attente et mettre en file d'attente sa formule atomique d'argument dans lesdits moyens (6) de file d'attente d'exécution différée 1orsquîil s'agit de mise en file d'attente, avant l'exécution dudit prédicat p des moyens de sortie de file d'attente pour déterminer si le nom dudit prédicat est sorti de file d'attente et sortir de la file d'attente et ex4cuter les formules atomiques mises en file d'attente dans lesdits moyens de file d'attente d'exécution différée quand il s'agit de sortie de file d'attente dans l'ordre de leur mise en file d'attente avant l'exécution dudit prédicat; et des moyens d'annulation de miSe en file d'attente pour supprimer une formule atomique mise en file d'attente dans lesdits moyens de file d'attente d'exécution différée par une mise en file d'attente soumise à annulation d'exécution au début d'un
traitement de retour en arrière.
FR8601907A 1985-03-15 1986-02-12 Methode de traitement des calculs Expired - Lifetime FR2578990B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60050425A JPS61210432A (ja) 1985-03-15 1985-03-15 計算処理方式

Publications (2)

Publication Number Publication Date
FR2578990A1 true FR2578990A1 (fr) 1986-09-19
FR2578990B1 FR2578990B1 (fr) 1991-10-11

Family

ID=12858510

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8601907A Expired - Lifetime FR2578990B1 (fr) 1985-03-15 1986-02-12 Methode de traitement des calculs

Country Status (3)

Country Link
JP (1) JPS61210432A (fr)
FR (1) FR2578990B1 (fr)
GB (1) GB2173614B (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0246422A2 (fr) * 1986-05-17 1987-11-25 Dr. Johannes Heidenhain GmbH Dispositif pour obtenir les contours d'une pièce à usiner

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0097239A2 (fr) * 1982-06-21 1984-01-04 International Business Machines Corporation Méthode et appareil pour ramener l'information dans un système calculateur

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2060225B (en) * 1979-09-29 1983-05-25 Plessey Co Ltd Multi-programming data processing system process suspension
US4734848A (en) * 1984-07-17 1988-03-29 Hitachi, Ltd. Combination reduction processing method and apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0097239A2 (fr) * 1982-06-21 1984-01-04 International Business Machines Corporation Méthode et appareil pour ramener l'information dans un système calculateur

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
INFORMATION PROCESSING 83, PROCEEDINGS OF THE IFIP 9TH WORLD COMPUTER CONGRESS, Paris, 19-23 septembre 1983, pages 627-635, North-Holland, Amsterdam, NL; B. D\M\LKI et al.: "Prolog in practice" *
PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON FIFTH GENERATION COMPUTER SYSTEMS 1984, Tokyo, 6-9 novembre 1984, pages 542-550, North-Holland, Amsterdam, NL; N. TAMURA et al.: "Sequential prolog machine pek" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0246422A2 (fr) * 1986-05-17 1987-11-25 Dr. Johannes Heidenhain GmbH Dispositif pour obtenir les contours d'une pièce à usiner
EP0246422A3 (en) * 1986-05-17 1989-10-18 Dr. Johannes Heidenhain Gmbh Apparatus for determining the contours of a work piece

Also Published As

Publication number Publication date
GB8603266D0 (en) 1986-03-19
GB2173614B (en) 1988-12-21
JPS61210432A (ja) 1986-09-18
FR2578990B1 (fr) 1991-10-11
GB2173614A (en) 1986-10-15

Similar Documents

Publication Publication Date Title
US5819249A (en) Tax coding expert system
US5784613A (en) Exception support mechanism for a threads-based operating system
US6993753B2 (en) Compiler for parallel computer
FR2821186A1 (fr) Dispositif d'extraction d'informations d'un texte a base de connaissances
US20060294058A1 (en) System and method for an asynchronous queue in a database management system
FR2824160A1 (fr) Conteneur generique configurable de facon dynamique
US20050278318A1 (en) Iterative development with prioritized build
US20060015324A1 (en) Method and apparatus for natural language generation
KR20170081239A (ko) 영향 분석
US20080104581A1 (en) Computer Method and Apparatus for Merging Software Configurations when a Change Set Spans Multiple Artifacts
FR2688611A1 (fr) Utilisation d'un langage dont le typage porte sur le contenu des variables et permettant de manipuler des constructions complexes.
EP0637798B1 (fr) Procédé d'analyse d'interblocage dans un système d'exploitation
US20090198703A1 (en) Intelligent data storage system
JPH05204988A (ja) サーバデータベースのアクセス方法
BE1008621A3 (fr) Procedure et procede de communication entre machines et procede generalise de preparation de programmes afferents.
WO2011056273A1 (fr) Systemes et procedes pour detecter une fuite de ressources
FR2798204A1 (fr) Points d'interruption classes et methode de debogage des programmes informatiques
EP0804771A1 (fr) Interface administrateur pour base de donnees dans un environnement informatique distribue
FR2800482A1 (fr) Procede de traitement des instructions dans un processeur et processeur le mettant en oeuvre
US6405210B1 (en) Data processing systems
US5946492A (en) Compiler that reduces call stack size through identification of stackless variables
US8433729B2 (en) Method and system for automatically generating a communication interface
EP2984588A2 (fr) Ordonnancement de réseau lexical pour désambiguïsation automatique
FR2578990A1 (fr) Methode de traitement des calculs
US8898625B2 (en) Optimized storage of function variables

Legal Events

Date Code Title Description
ST Notification of lapse