FR2533721A1 - COMPUTER SYSTEM WITH REAL-TIME COMPILATION - Google Patents

COMPUTER SYSTEM WITH REAL-TIME COMPILATION Download PDF

Info

Publication number
FR2533721A1
FR2533721A1 FR8315244A FR8315244A FR2533721A1 FR 2533721 A1 FR2533721 A1 FR 2533721A1 FR 8315244 A FR8315244 A FR 8315244A FR 8315244 A FR8315244 A FR 8315244A FR 2533721 A1 FR2533721 A1 FR 2533721A1
Authority
FR
France
Prior art keywords
compiler
original
code
editor
location
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.)
Withdrawn
Application number
FR8315244A
Other languages
French (fr)
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of FR2533721A1 publication Critical patent/FR2533721A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4825Interrupt from clock, e.g. time of day
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/48Incremental compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Abstract

L'INVENTION CONCERNE UN SYSTEME D'ORDINATEUR ASSURANT LA COMPILATION EN TEMPS REEL D'UN PROGRAMME D'ORIGINE EN LANGAGE EVOLUE AU MOMENT OU IL EST ENTRE OU REVISE AU PUPITRE. A CETTE FIN, L'ORDINATEUR COMPORTE UN PROGRAMME COMPILATEUR, UN PROGRAMME EDITEUR ET UNE MEMOIRE-TAMPON DE CODE D'ORIGINE. UN CARACTERE DE MARQUE DE PAUSE EST ENREGISTRE AU DEBUT DE LA MEMOIRE-TAMPON ET EMPECHE LE COMPILATEUR D'AVANCER AU-DELA. LORSQUE DES CARACTERES SONT ENTRES AU CLAVIER, L'EDITEUR PREND LA COMMANDE DU SYSTEME ET ENREGISTRE CES CARACTERES DANS LA MEMOIRE-TAMPON JUSQU'A CE QU'UN RETOUR DU CHARIOT SOIT ENTRE. A CE MOMENT, IL REMPLACE LA MARQUE DE PAUSE PAR UN ESPACEMENT ET ENREGISTRE UNE NOUVELLE MARQUE DE PAUSE DANS L'EMPLACEMENT ADJACENT AU RETOUR DU CHARIOT. LE COMPILATEUR PEUT ALORS EFFECTUER L'ANALYSE LEXICALE, SYNTACTIQUE ET SEMANTIQUE DE LA LIGNE QUI VIENT D'ETRE ECRITE, JUSQU'A LA NOUVELLE MARQUE DE PAUSE.THE INVENTION RELATES TO A COMPUTER SYSTEM ENSURING THE COMPILATION IN REAL TIME OF AN ORIGINAL PROGRAM IN LANGUAGE EVOLVED AT THE TIME IT IS ENTERED OR REVISED AT THE DESK. FOR THIS PURPOSE, THE COMPUTER INCLUDES A COMPILER PROGRAM, AN EDITOR PROGRAM AND AN ORIGINAL CODE BUFFER MEMORY. A PAUSE MARK CHARACTER IS RECORDED AT THE BEGINNING OF THE BUFFER MEMORY AND PREVENTS THE COMPILER FROM MOVING BEYOND. WHEN CHARACTERS ARE ENTERED AT THE KEYBOARD, THE EDITOR TAKES CONTROL OF THE SYSTEM AND SAVES THESE CHARACTERS INTO BUFFER MEMORY UNTIL A CART FEEDBACK IS ENTERED. AT THIS TIME, IT REPLACES THE PAUSE MARK WITH A SPACING AND SAVES A NEW PAUSE MARK IN THE LOCATION ADJACENT TO THE RETURN OF THE TROLLEY. THE COMPILER CAN THEN CARRY OUT THE LEXICAL, SYNTACTIC AND SEMANTIC ANALYSIS OF THE LINE WHICH JUST BEEN WRITTEN, UNTIL THE NEW BRAND OF PAUSE.

Description

La présente invention se rapporte aux systèmes d'ordina-The present invention relates to computer systems.

teur et plus particulièrement à-une nouvelle architecture d'ordinateur qui assure la compilation en temps réel d'un programme d'origine évolué en même temps que le programme est entré ou révisé au pupitre par le programmeur. Etant donné que les hommes écrivent les programmes en  and more particularly to a new computer architecture which ensures the compilation in real time of an original program evolved at the same time as the program is entered or revised at the desk by the programmer. Since men write programs in

un langage de programmation et que les ordinateurs n'exé-  a programming language and that computers do not

cutent que le langage machine, il est fréquemment nécessaire d'effectuer la traduction d'un langage dans l'autre Lorsque le langage de programmation est "évolué", c'est-à-dire abstrait dans le sens qu'il ne manipule pas explicitement  cutent than machine language, it is frequently necessary to translate from one language to another When the programming language is "advanced", that is to say abstract in the sense that it does not handle explicitly

les registres et autres matériels de l'ordinateur, la traduc-  registers and other computer hardware, translation

tion du programme original est exécuté par un autre programme appelé un "compilateur" Le programma original est appelé un "code d'origine" et la traduction du-programme résultante est  tion of the original program is executed by another program called a "compiler" The original programma is called a "source code" and the resulting translation of the program is

appelée le "code résultant".called the "resulting code".

En plus de la traduction, le compilateur doit également effectuer des analyses lexicales, syntactiques et sémantiques du code d'origine L'analyse lexicale est effectuée par un  In addition to translation, the compiler must also perform lexical, syntactic and semantic analyzes of the original code. Lexical analysis is performed by a

"explorateur" et c'est le processus de formation d'une sé-  "explorer" and this is the process of forming a se-

quence de multiplets de code d'origine en symboles ou signes,  quence of bytes of original code in symbols or signs,

quelque peu à la manière de la formation d'une séquence de.  somewhat like the formation of a sequence of.

caractères en mots anglais Ces symboles sont ensuite soumis à l'analyse syntactique par un analyseur syntactique appelé  characters in English words These symbols are then subjected to syntactic analysis by a syntactic analyzer called

un "perser" qui détermine si ils sont agencés dans une rela-  a "perser" which determines if they are arranged in a rela-

tion qui est conforme aux règles grammaticales rigides du langage de programmation L'analyse sémantique détermine si les symboles sont conformes à des règles supplémentaires qui ne peuvent pas être commodément exprimées par la grammaire  tion that conforms to the rigid grammatical rules of the programming language Semantic analysis determines whether symbols conform to additional rules that cannot be conveniently expressed by grammar

du langage.of language.

Ces analyses sont très semblables à une analyse syntac-  These analyzes are very similar to a syntactic analysis.

tique des mots d'une phrase anglaise Si la séquence de sym-  tick of words in an English sentence If the sym-

boles viole une règle syntactique ou sémantique, on dit  boles violates a syntactic or semantic rule, we say

qu'une "erreur" a été commise et le compilateur doit en in-  that an "error" has been committed and the compiler must find out

former le programmeur en émettant un "message d'erreur" vi-  train the programmer by issuing an "error message"

sible. Après traduction, le code résultant est habituellement "enchaîné" et "chargé", processsus au cours duquel il est joint à d'autres modules en code résultant pour former un programme en code machine com Dlet qui peut être exécuté car  sible. After translation, the resulting code is usually "chained" and "loaded", a process in which it is joined with other modules in resulting code to form a program in machine code com Dlet which can be executed because

la machine.the machine.

Au cours de ces dernières années, le fort accroissement des coûts du logiciel, le manque de programmeurs spécialisés,  In recent years, the sharp increase in software costs, the lack of specialized programmers,

l'expansion rapide du marché des ordinateurs, l'adoption géné-  the rapidly expanding computer market, widespread adoption

ralisée des micro-ordinateurs et la sous-utilisation d'une grande partie du matériel disponible par suite d'un manque de logiciel ont contraint à l'adoption de langages évoluéset à l'entreprise d'efforts concertés pour rendre leur emploi  widespread use of microcomputers and the under-utilization of a large part of the available hardware due to a lack of software have forced the adoption of advanced languages and the undertaking of concerted efforts to make their use

plus efficace.more efficient.

Cependant, la programmation dans un langage évolué est encore un processsus lent, fastidieux et inefficace Par exemple, même dans les conditions optimales d'un pupitre interactif, un langage compilé nécessite l'exécution d'une séquence d'étapes répétées qui comprennent le chargement de l'éditeur, l'écriture ou la révision du code d'origine, le chargement du compilateur, l'exécution du compilateur, le chargement de l'éditeur de liens, l'exécution de l'éditeur de liens, le passage en machine du programme et la répétition  However, programming in an advanced language is still a slow, tedious and ineffective process. For example, even under the optimal conditions of an interactive console, a compiled language requires the execution of a sequence of repeated steps which include loading of the editor, writing or revising the original code, loading the compiler, running the compiler, loading the link editor, running the link editor, switching to program and repeat machine

de la séquence lorsqu'une erreur est indiquée pendant la com-  of the sequence when an error is indicated during the comp

pilation du code d'origine ou l'exécui:ion du code résultant.  breaking the original code or executing it: the resulting code.

Pendant une grande partie du temps, le programmeur est obli-  For a large part of the time, the programmer is obli-

gé d'attendre l'achèvement des étapes de chargement ou d'exé-  ge to wait for the completion of loading or execution steps

cution et ce temps d'attente constitue un gaspillage tout en  cution and this waiting time is a waste while

étant fastidieux Il en résulte que le processus de program-  being tedious As a result, the programming process

mation est lent et onéreux Il est généralement admis que la production du programmeur professionnel moyen n'est que de cinq à dix lignes de code d'origine mis au point par jour (Doc n' 4) Les mentions entre-parenthèses se réfèrent à la  Mation is slow and expensive It is generally accepted that the production of the average professional programmer is only five to ten lines of original code developed per day (Doc n '4) The mentions in parentheses refer to the

bibliographie donnée à la fin de cette description.  bibliography given at the end of this description.

L'utilisation généralisée récente des micro-ordinateurs domestiques a fortement accru la difficulté du problème de  The recent widespread use of home microcomputers has greatly increased the difficulty of the problem of

programmation La plupart des utilisateurs qui écrivent actu-  programming Most users who currently write

ellement des programmes pour de tels ordinateurs n'ont pas reçu un enseignement professionnel de programmeur et sont peu disposés à perdre le temps, à effectuer les efforts et endurer l'ennui et la frustration inhérents à la mécaniqaue de la programmatior dans un langage compilé avec les svstèmes  Programs for such computers have not received professional programmer training and are reluctant to waste time, effort and endure the boredom and frustration inherent in the mechanics of programming in a language compiled with the systems

de micro-ordinateur actuels (Doc N O 9).  of current microcomputers (Doc N O 9).

Au lieu de cela, la maj 6 rité des programmeurs d'ordina-  Instead, the majority of computer programmers

teurs domestiques utilisent des interprètes de BASIC Ces  domestic workers use BASIC interpreters These

derniers sont généralement syntactiquement pauvres, ineffi-  the latter are generally syntactically poor, ineffective

caces pour révéler les erreurs, incapables d'utiliser des variables locales, incapables de transmettre des paramètres aux sous-routines, incapables d'appeler des sous-routines par leur nom, incapables de lier des modules de bibliothèque, et  caces to reveal errors, unable to use local variables, unable to pass parameters to subroutines, unable to call subroutines by name, unable to link library modules, and

ils manquent à la fois de structures de données et de struc-  they lack both data structures and struc-

tures de commande de flux de données de sorte qu'ils rendent extrêmement difficile d'écrire un programme exempt d'erreur pour des applications quelconques à l'exception des plus simples Le BASIC est, par conséquent, considéré comme étant un très mauvais moyen pour enseigner une bonne technique de  data flow control tures so that it makes it extremely difficult to write an error-free program for any but the simplest applications BASIC is therefore considered to be a very poor means of teach good technique of

programmation (Doc n 1) Ces interprètes de BASIC sont éga-  programming (Doc n 1) These BASIC interpreters are also

lement si lents d'exécution qu'ils sont également désavanta-  so slow in execution that they are also disadvantaged

geux, voire inutilisables pour de nombreuses applications.  gaseous or even unusable for many applications.

Néanmoins, la mécanique de la compilation avec les sys-  However, the mechanics of compiling with sys-

tèmes de micro-ordinateurs actuels est si malcommode que les interprètes de BASIC prédominent dans le domaine des micro-ordinateurs et dégradent considérablement le processus  of modern microcomputers is so inconvenient that BASIC interpreters predominate in the field of microcomputers and considerably degrade the process

de programmation.programming.

De nombreuses tentatives ont été effectuées en vue de  Many attempts have been made to

réduire les inconvénients de l'utilisation classique des com-  reduce the disadvantages of conventional use of

pilateurs Une telle méthode est le compilateur dit-"incré-  pilators One such method is the so-called "incremental" compiler

mentiel" (Doc n 5, 6, 7, 10, 11)o Lorsque chaque ligne de code d'origine est entrée au pupitre, elle est analysée afin de déterminer si elle est conforme aux règles de syntaxe d'une grammairelocale restreinte,dans laquelle la ligne est traitée isolément sans tenir compte du contexte de l'ensemble du programme Si la ligne est exempte d'erreur sous cet angle  "(Doc # 5, 6, 7, 10, 11) o When each line of original code is entered at the desk, it is analyzed to determine if it conforms to the syntax rules of a restricted local grammar, in which the line is treated in isolation without taking into account the context of the whole program If the line is free of error from this angle

limité, le programmeur est libre d'entrer la ligne suivante.  limited, the programmer is free to enter the next line.

Sinon, un message d'erreur est affiché et l'erreur doit être corrigée avant que de nouvelles lignes soient entrées Après que l'ensemble du programmne a été entré, le programme est soumis à de nouvelles analyses syntactiques et sémantiques en ce qui concerne les règles fonction du contexte après quoi la génération du code résultant et l'exécution peuvent être effectuées. Le compilateur incrementiel présente certains avantages lorsqu'il est utilisé avec les langages qui comportent peu de limitations fonction du contexte, tels que le BASIC Pour les langages structurés modernes, tels que l'Algol, le Pascal le PL/1, le C et l'Ada, l'analyse locale lir tée qui peut être effectuée après l'entrée de chaque ligne n'est qu'une partie relativement petite de l'analyse totale requise et  Otherwise, an error message is displayed and the error must be corrected before new lines are entered. After the whole program has been entered, the program is subjected to new syntactic and semantic analyzes with regard to the context-dependent rules after which the resulting code generation and execution can be performed. The incremental compiler has certain advantages when used with languages which have few context-dependent limitations, such as BASIC For modern structured languages, such as Algol, Pascal PL / 1, C and l 'Ada, the read local analysis that can be performed after entering each line is only a relatively small part of the total analysis required and

ne justifie pas le temps système correspondant.  does not justify the corresponding overhead.

Une autre méthode bien connue de la technique antérieure a été appelée " recompilation répétée" (Doc n 2) Dans cette solution, les analyses syntactiques et sémantiques effectuées après l'entrée de chaque ligne comprennent toutes les règles fonction du contexte et prennent'en considération la totalité du programme partiel entré jusqu'à ce point Par conséquent,  Another well-known method of the prior art has been called "repeated recompilation" (Doc n 2) In this solution, the syntactic and semantic analyzes carried out after the entry of each line include all the context-dependent rules and take into consideration the entire partial program entered up to this point Therefore,

lors de la révision même d'un unique multiplet du code d'ori-  even when a single multiplet of the original code is revised

gine entré, la totalité du programme d'origine doit être re-  gine entered, the entire original program must be re-

compilée à partir du début Etant donné que cette recompi-.  compiled from the beginning Since this recompi-.

lation doit être achevée avant que de nouvelles lignes  lation must be completed before new lines

puissent être entrées,le temps-système important de cette mé-  can be entered, the important system time of this

rhode empêche son emploi sauf pour les programmes les plus courts.  rhode prevents its use except for the shortest programs.

Dans un effort effectué en vue d'éviter le temps-sys-  In an effort to avoid time-sys-

tème de la recompilation complète un certain nombre de mé-  teme of recompilation completes a number of meta

thodes de recompilation partielle ont été imaginées (Doc.  partial recompilation methods have been devised (Doc.

3 n 1, 3, 8) Ces méthodes ont généralement nécessité l'em-  3 n 1, 3, 8) These methods generally required the use of

ploi d'une structure de données complexe pour le code d'o-  use of a complex data structure for the code of-

rigine et/ou d'un éditeur complexe qui sont tels qu'un pro-  rigine and / or a complex editor that are such a pro-

grammeur ayant suffisamment de compétences dans la méthode  grammer with sufficient method skills

particulière peut effectuer un changement dans le code d'o-  particular can make a change in the code of-

rigine de manière qu'il soit seulement nécessaire d'effec-  rigin so that it is only necessary to perform

tuer une recompilation de la partie modifiée du code d'ori-  kill a recompilation of the modified part of the original code

gine Ces solutions nécessitent l'emploi d'une quantité exces-  gine These solutions require the use of an excess quantity

sive de mémoire d'ordinateur et/ou des compétences hautement  computer memory and / or highly skilled

spécialisées du programmeur.of the programmer.

Ces méthodes de la technique antérieure, n'ont eu aucune  These prior art methods have had no

application pratique sauf en tant que curiosités experimen-  practical application except as curiosities experimen-

tales en recherche pure Les compilateurs disponibles dans le commerce nécessitent encore les séquences répétées des étapes de chargement, édition, chargement, compilation, chargement,  tales in pure search The commercially available compilers still require the repeated sequences of the loading, editing, loading, compilation, loading,

liaison et passage machine, comme décrit ci-dessus.  connection and machine passage, as described above.

L'architecture idéale pour la fonction de programmation devrait présenter les caractéristiques ci-après: la compilation devrait être effectuée en temps réel  The ideal architecture for the programming function should have the following characteristics: compilation should be performed in real time

lorsque le code d'origine est entré ou révisé par le program-  when the original code is entered or revised by the program-

meur; le système devrait être capable d'utiliser un langage moderne structuré en blocs ayant une syntaxe puissante, tel que l'Algol, le C, le Pascal ou le PL/1; il ne devrait pas y avoir d'attente pour les accès aux disques pendant l'écriture, l révision ou la compilation du programme sauf dans la mesure nécessaire pour l'entrée initiale ou la sauvegarde des fichiers de code d'origine; un message d'erreur devrait être affiché pratiquement instantanément après qu'une erreur de syntaxe a été entrée au pupitre; la correction des erreurs de code d'origine devrait  dies; the system should be able to use modern block-structured language with powerful syntax, such as Algol, C, Pascal or PL / 1; there should be no waiting for access to the discs while writing, reviewing or compiling the program except to the extent necessary for the initial entry or saving of the original code files; an error message should be displayed almost instantly after a syntax error has been entered at the desk; correction of original code errors should

être rapide et facile sans rechargement de l'éditeur du fi-  be quick and easy without reloading the file editor

chier de code d'origine ni du compilateur; la compilation devrait être finie presqu'instantanément après l'entrée de la dernière ligne d'un programme d'origine sans erreur;  shit original code or compiler; compilation should be completed almost immediately after entering the last line of an original program without error;

la compilation devrait être complète en ce sens qu'au-  compilation should be complete in the sense that

cune autre analyse syntactique ou sémanr -:ique ne devrait être nécessaire et que l'absence d'un message d'erreur devrait  no other syntactic or semantic analysis should be necessary and that the absence of an error message should

garantir que le programme ne contient pas d'erreur syntac-  ensure that the program does not contain syntax errors

tique ni sémantique;tick or semantic;

le programmeur devrait être capable d'arrêter à tout mo-  the programmer should be able to stop at any time

ment l'exécution du code résultant, d'examiner les valeurs de toutes les variables et de poursuivre l'exécution, tout cela sans nécessiter l'insertion préalable d'instructicns d'écriture, de points de rupture ou autre code de miseau point dans le programme d'origine; et l'architecture ne devrait pas imposer des conditions supplémentaires quelconques relatives à l'em loi d'une syn-  ment the execution of the resulting code, to examine the values of all the variables and to continue the execution, all this without requiring the prior insertion of writing instructions, break points or other focus code in the original program; and architecture should not impose any additional conditions relating to the law of a syn-

taxe de langage propre particulière, d'une mécanique d'édi-  tax of particular peculiar language, of an editing mechanic

teur complexe ni exiger une spécialisation particulière du  complex or demand special specialization of the

programmeur dans la méthode.programmer in the method.

L'exposé ci-après est une description résumée d'un  The following is a summary description of a

mode de réalisation préféré de l'invention.  preferred embodiment of the invention.

Le programmeur appelle le système comrplateur-éditeur en temps réel en tapant son nom de fichier de commande sur le clavier du pupitre Le fichier de commande contenant la  The programmer calls the integrator-editor system in real time by typing his command file name on the keyboard of the console The command file containing the

partie de logiciel du système est alors chargé dans la mé-  part of the system software is then loaded into the

moire à partir d'un disque La mémoire-tampon de code d'o-  moire from disk o-code buffer

rigine, une région de la mémoire qui doit contenir le code d'origine,est initialisée de sorte que le premier multiplet qu'elle met en mémoire est un code prédéterminé qui sera  rigine, a region of memory which must contain the original code, is initialized so that the first byte it stores in memory is a predetermined code which will be

appelé une "Marque de Pause" L'exécution du compilateur com-  called a "Pause Mark" Running the compiler com-

mence alors par la lecture de la "Marque de Pause" en tant que caractère qui se trouve dans le premier emplacement de la mémoire-tampon Lorsque le compilateur lit la "Marque de Pause",il entre de manière répétée dans une boucle infinie lisant le même emplacement jusqu'à ce que le contenu de cet  then begins by reading the "Pause Mark" as a character found in the first location of the buffer When the compiler reads the "Pause Mark", it repeatedly enters an infinite loop reading the same location until the contents of this

emplacement soit changé par l'éditeur en un blanc (espace-  location be changed by the editor to a blank (space-

ment). Lorsque le programmeur frappe une touche sur le clavier  is lying). When the programmer hits a key on the keyboard

du pupitre, le processeur central exécute la séquence d'in-  of the console, the central processor executes the sequence of in-

terruption suivante, décritepourun micro-processeur 8080  next terruption, described for an 8080 microprocessor

ou Z 80 Après achèvement de l'instruction en cours d'exécu-  or Z 80 After completion of the instruction being executed

tion, le processeur entre dans le mode d'interruption et communique son nouvel état au système en émettant un signal  tion, the processor enters the interrupt mode and communicates its new state to the system by emitting a signal

d'accusé-réception d'interruption.  acknowledgment of interruption.

A réception de ce signal,le matériel d'interruption  Upon receipt of this signal, the interrupt equipment

transmet une instruction RST sur le bus de données Le pro-  transmits an RST instruction on the data bus The pro-

cesseur exécute alors l'instruction RST qui est un appel d'un multiplet à un emplacementchoisi dans la partie basse de la mémoire o est mise en mémoire une instruction de saut ("vecteur") à la routine de service des interruptions qui  stopper then executes the RST instruction which is a call to a byte at a location chosen in the lower part of the memory where a jump instruction ("vector") is stored in the interrupt service routine which

comprend l 'éditeur.includes the editor.

La routine de service des'interruptions sauvegarde tout d'abord le pointeur de pile et les autres registres de l'uni-  The interrupt service routine firstly backs up the stack pointer and other registers of the unit.

té de traitement Si la touche frappée correspond à un carac-  processing tee If the key hit corresponds to a character

tère alphanumérique ou autre caractère qui n'est pas un carac-  alphanumeric or other character that is not a character

tère de commande, ce caractère est placé dans le second empla-  control character, this character is placed in the second place

cement de la mémoire-tampon de code d'origine immédiatement après la Marque de Pause Le pointeur de la mémoire-tampon est alors avancé à l'emplacement suivant, les registresde  cement the original code buffer immediately after the Pause Mark The buffer pointer is then advanced to the next location, the registers

l'unité sont restaurés, l'unité de traitement est mise l'é-  the unit are restored, the processing unit is switched on

tat interruptible et' l'instruction RET (retour) est exécutée  interruptible status and 'RET (return) instruction is executed

pour retourner la commande au compilateur.  to return the command to the compiler.

Le compilateur continue à exécuter sa boucle infinie dans laquelle il lit de manière répétée le caractère de Marque de Pause contenu dans le premier empladement de la mémoire-tampon de code d'origine Cette séquence est répétée lorsque le programmeur frappe de nouvelles touches sur le  The compiler continues to execute its infinite loop in which it repeatedly reads the Pause Mark character contained in the first string of the original code buffer This sequence is repeated when the programmer hits new keys on the

clavier,les caractères successifs étant entrés dans des em-  keyboard, successive characters being entered in em-

placements successifs de la mémoire-tampon de code d'origine à mesure que le pointeur de la mémoire-tampon avance Cette séquence se poursuit jusqu'à ce qu'une touche correspondant  successive placements of the original code buffer as the buffer pointer advances This sequence continues until a corresponding key

à un caractère de commande soit frappée.  to a command character be struck.

Si ce caractère de commande est un retour du chariot,  If this command character is a carriage return,

le code correspondant ( 13) est introduit dans la mémoire-  the corresponding code (13) is entered in the memory-

tampon, le pointeur de la mémoire-tampon est avancé, le code de Marque de Pause est alors introduit dans l'emplacement de la mémoire-tampon adjacent au code de retour du chariot et le code de Marque de Pause initial contenu dans le premier emplacement est remplacé par le code ( 32) représentant un espace blanc L'emplacement de la farque de Pause a ainsi  buffer, the buffer pointer is advanced, the Pause Mark code is then entered in the buffer location adjacent to the carriage return code and the initial Pause Mark code contained in the first location is replaced by the code (32) representing a white space The location of the Pause farque has thus

été déplacé de son point initial et mis à la fin de la pre-  been moved from its original point and put at the end of the first

mière ligne de code d'origine.1st line of original code.

Après retour au compilateur à partirade la routine de service des interruptions,le pointeur du compilateur accède au premier emplacement de la mémoire-tampon et lit le code représentant un espacement au lieu de la Maraue de Pause Le  After returning to the compiler from the interrupt service routine, the compiler pointer goes to the first location in the buffer and reads the code representing a spacing instead of the Pause Mare

compilateur fait alors avancer son pointeur de manière répéti-  compiler then advances its pointer repeatedly

tive à l'emplacement de mémoire suivante et effectue ses ana-  tive to the next memory location and performs its ana-

lyses lexicales, syntactiques et sémantiques sur la premiere ligne de code d'origine contenue dans la mémoire-tampon Le compilateur peut soit afficher un message d'erreur soit émettre un code résuitant compilé, selon le cas, jusqu'à ce que le pointeur du compilateur atteigne la nouvelle Marque de Pause introduite à la fin de la première ligne du code  Lexical, syntactic and semantic lyses on the first line of original code contained in the buffer The compiler can either display an error message or issue a compiled summarized code, as the case may be, until the pointer to the compiler reaches the new Pause Mark introduced at the end of the first line of the code

d'origine.of origin.

Lorsqu'il atteint la nouvelle Marque de Pause, le compi-  When it reaches the new Break Mark, the

lateur entre à nouveau dans une boucle infinie sans faire avancer son pointeur jusqu'à ce que l'éditeur déplace la Marque de Pause jusqu'à la fin de la ligne suivante à la suite de quoi le compilateur est libre de compiler cette  again enters an infinite loop without advancing its pointer until the editor moves the Pause Mark to the end of the next line after which the compiler is free to compile this

ligne suivante de code d'origine.next line of original code.

Il est possible d'entrer des caractères de commande  Command characters can be entered

autres qu'un retour du chariot en frappant les touches ap-  other than a carriage return by hitting the keys

propriées pour effectuer les fonctions d'édition classiques d'un éditeur d'écran Par exemple, on peut corriger les  properties for performing the classic editing functions of a screen editor For example, you can correct

erreurs dans la ligne en cours de code d'origine en dépla-  errors in the line in progress with the original code being moved

çant le curseur en arrière Ceci n'a pas d'effet sur le com-  erasing the cursor backwards This has no effect on the com-

pilateur qui ne peut pas avancer au-delà de la Marque de  pilator who cannot advance beyond the Mark of

Pause située à la fin de la ligne précédente.  Pause located at the end of the previous line.

Cependant, si, en frappant la touche de commande appro-  However, if by hitting the appropriate command key

priée on provoque le déplacement du curseur vers le haut d'une ou de plusieurs lignes jusqu'à un emplacement situé avant la Marque de Pause, ceci met en fonction un Indicateur  requested we cause the cursor to move up one or more lines to a location before the Pause Mark, this activates an Indicator

de Recompilation de façon à entrer un mode de recompilation.  Recompilation in order to enter a recompilation mode.

Dans ce cas, à la suite du retour de la commande au compila-  In this case, following the return of the order to the compilation

teur, ce dernier est ré-initialisé de façon qu'il puisse re-  the latter is re-initialized so that it can re-

compiler le code d'origine à partir du tout début de la mé-  compile the original code from the very beginning of the

moire-tampon d'origine Les révisions ou insertions de  original buffer moire Revisions or insertions of

texte d'origine suivantes ont pour effet que l'éditeur dé-  The following original text results in the editor de-

place la Marque de Pause jusqu'à un emplacement de mise à jour adjacent à l'extrémité de la ligne qui précède la ligne  places the Pause Mark to an update location adjacent to the end of the line before the line

la plus récemment révisée.most recently revised.

-33721-33721

Lorsque le compilateur trouve une erreur de syntaxe dans  When the compiler finds a syntax error in

le code d'origine, il affiche un message d'erreur Le pro-  the original code, it displays an error message The pro-

grammeur peut alors réviser le programme d 'origine pour corri-  grammer can then revise the original program to correct

ger l'erreur Après retour de l'éditeur, le compilateur est ré-initialisé pour recompiler le code d'origine. Le code d'origine entré et le code résultant émis sont, de préférence, mis en mémoire dans la mémoire centrale de  Manage the error After returning from the editor, the compiler is re-initialized to recompile the original code. The original code entered and the resulting code sent are preferably stored in the central memory of

sorte que des accès à des disques n'entravent pas d'une ma-  so that accesses to disks do not hinder

nière excessive les processus d'édition et de compilation.  excessive editing and compilation processes.

Si la mémoire-tampon de code d'origine ou de code résultant  If the original code or resulting code buffer

est pleine, son contenu peut être mis en mémoire dans un fi-  is full, its contents can be stored in a file

chier sur disque de la manière classique utilisée dans les éditeurs et les processeurs de mots tels que le CP/M ED etle Wordstar L'emploi de systèmes de mémoire à sélection de bancs ou la venue sur le marché des microprocesseurs à 16 bits avec leurs plus grands espaces de mémoire évitera la  shit on disk in the classic way used in editors and word processors such as CP / M ED and Wordstar The use of memory selection systems or the arrival on the market of 16-bit microprocessors with their advantages large memory spaces will avoid the

nécessité d'un stockage sur disque jusqu'à ce que la compi-  need for disk storage until the compi-

lation soit finie D'autres caractéristiques de l'invention apparaitront  lation be finished Other features of the invention will appear

à la lecture de la description qui va suivre et à l'examen  on reading the description which follows and examining

des dessins annexés dans lequels:of the attached drawings in which:

la Fig 1 est un schéma synoptique qui représente les.  Fig 1 is a block diagram which represents the.

relations er-re les éléments principaux du matériel qui cons-  relationships between the main elements of the material which

titue un mode de réalisation préféré du système d'ordinateur selon la présente invention; la Fig 2 est un schéma qui représente la logique et les circuits d'interruption du matériel du système; la Fig 3 est un organigramme représentant la séquence générale des opérations; la Fig 4 est un organigramme représentant la séquence des opérations du compilateur; la Fig 5 est un organigramme représentant la séquence des opérations de l'éditeur; et la Fig 6 est un organigramme représentant la séquence  titue a preferred embodiment of the computer system according to the present invention; Fig 2 is a diagram showing the logic and hardware interrupt circuits of the system; Fig 3 is a flowchart showing the general sequence of operations; Fig 4 is a flowchart showing the sequence of operations of the compiler; Fig 5 is a flowchart showing the sequence of editor operations; and Fig 6 is a flowchart showing the sequence

des opérations des routines de caractère de commande de l'é-  operations of the control character routines of the e-

diteur.editor.

On donnera ci-après une description détaillée d'un mode  A detailed description of a mode will be given below

de réalisation préféré de l'invention Les détails décrits sont simplement illustratifs de l'une des nombreuses formes  preferred embodiment of the invention The details described are merely illustrative of one of the many forms

sous lesquelles l'invention peut être mise en oeuvre L'in-  under which the invention can be implemented The

vention et la nouveauté ne résident ni dans le matériel ni dans le logiciel considérés séparément mais plutôt dans une  vention and the novelty do not reside in the hardware or in the software considered separately but rather in a

combinaison des deux.combination of the two.

Sur la Fig 1 à laauelle on se référera tout d'abord,  In Fig 1 with the arrow we will first refer,

on a représenté les principaux éléments matériels aui consti-  the main material elements have been represented

tuent l'ensemble du système d'un mode de réalisation préféré de la présente invention Chaque élément sera désigné par  kill the entire system of a preferred embodiment of the present invention Each element will be designated by

l'inscription écrite dans le rectangle respectif du dessin.  the inscription written in the respective rectangle of the drawing.

Le PUPITRE A TUBE CATHODIQUE se réfère à un terminal appro-  The CATHODIC TUBE DESK refers to an appropriate terminal

prié quelconque comportant un clavier pour l'entrée du code d'origine qui doit être compilé et également pour l'entrée  any required including a keyboard for entering the original code to be compiled and also for entering

de commandes de révision servant à changer le code Le ter-  of revision commands used to change the code Le ter-

minal comporte également un affichage vidéo pour permettre  minal also includes a video display to allow

l'emploi d'un éditeur d'écran Le clavier est, de préfé-  using a screen editor The keyboard is preferably

rence, solidaire de l'affichage vidéo pour former un pupitre unitaire ayant une liaison série RS-232-C avec le reste du  rence, integral with the video display to form a unitary console having an RS-232-C serial link with the rest of the

système.system.

Cette liaison série est connectée au POINT D'ACCES  This serial link is connected to the ACCESS POINT

D'ENTREE qui est, de préférence, constitué par un ERAS (émet-  INPUT which is preferably made up of an ERAS (

teur-récepteur asynchrone universel) tel que, par exemple le 1602, le AY5-1013 ou le TMS 5501 Chaque frappe de touche sur le clavier du pupitre à tube cathodique a pour effet la transmission en série à i'ERAS d'un train de bits constituant  universal asynchronous receiver-receiver) such as, for example the 1602, the AY5-1013 or the TMS 5501 Each keystroke on the keyboard of the cathode ray tube console results in the serial transmission to the ERAS of a train of constituent bits

le multiplet du code ASCII correspondant à la touche frappée.  the byte of the ASCII code corresponding to the key hit.

L'ERAS reforme les bits en ce multiplet qui est ensuite trans-  ERAS reformats the bits into this byte which is then trans-

mis en parallèle sur le bus de données à l'accumulateur de l'unité de traitement (UDT) L'ERAS forme également un point d'accès de sortie L'exécution d'une commande de SORTIE par l'unité de traitement a pour effet la transmission sur le bus de données d'un multiplet de l'accumulateur à l'ERAS aui peut ensuite transmettre le multiplet en série au PUPITRE A  paralleled on the data bus to the processing unit accumulator (UDT) ERAS also forms an output access point The execution of an OUTPUT command by the processing unit is effect the transmission on the data bus of a byte from the accumulator to the ERAS aui can then transmit the byte in series to the DESK A

TUBE CATHODIQUE pour affichage sur l'écran vidéo.  CATHODIC TUBE for display on the video screen.

Dans le mode de fonctionnement habituel d'un micro-  In the usual operating mode of a micro-

ordinateur classique, l'état du point d'accès d'entrée est contrôlé de manière répétée par l'unité de traitement dans une boucle d'appel sélectif jusqu'à ce que l'état du point d'accès d'entrée indique qu'un multiplet de données a été renu et est disponible dans le registre de données reçues D de i'ERA So La présente invention utilise à la place de ce  conventional computer, the state of the entry access point is repeatedly checked by the processing unit in a selective call loop until the state of the entry access point indicates that a byte of data has been kept and is available in the register of data received D of i'ERA So The present invention uses instead of this

mode, un mode d'interruption du fonctionnement au moyen du-  mode, a mode of interruption of operation by means of-

quel l'unité de traitement exécute normalement le compila-  which processing unit normally performs the compilation

teur jusqu'à ceque l'ERAS reçoive un multiplet du PUPITRE A TUBE CATHODIQUE Le compilateur est mis en mémoire dans une zone de la mémoire principale désignée COMPILATEUR sur  tor until ERAS receives a byte from the CATHODIC TUBE DESK The compiler is stored in an area of the main memory designated COMPILER on

la Fig 1.Fig 1.

La ligne de données disponibles del'ERAS est alors por-  The line of data available from ERAS is then

tée à un haut niveau et ceci actionne à son tour le CONTRO-  high level and this in turn activates the CONTRO-

LEUR D'INTERUPTION pour provoquer l'exécution,par l'unité de traitement, de l'éditeur Ce dernier est mis en mémoire dans une zone de la mémoire principale désignée EDITEUR sur  THEIR INTERUPTION to cause the execution, by the processing unit, of the editor The latter is stored in an area of the main memory designated EDITOR on

le dessin Après entrée du caractère reçu dans la MEMOIRE-  the drawing After entering the character received in MEMORY-

TAMPON DE CODE D'ORIGINE formée dans la mémoire principale  ORIGINAL CODE BUFFER formed in main memory

ou après achèvement d'une commande d'édition, une instruc-  or after completion of an editing order, an instruction

tion de retour (RET) est exécutée par llunité de traitement pour provoquer sa reprise de l'exécution du compilateur à  return (RET) is executed by the processing unit to cause it to resume execution of the compiler at

partir du point o elle a été interrompue.  from the point where it was interrupted.

Lorsque le COMPILATEUR est exécuté, il effectue, de  When the COMPILER is executed, it performs,

préférence, des analyses lexicales, syntactiques et séman-  preferably lexical, syntactic and semantic analyzes

tiques du code d'origine du programme mis en mémoire dans la MEMOIRETAMPON DE CODE D'ORIGINE Dans un mode de réalisation préféré, le COMPILATEUR émet également un code résultant et  ticks of the original code of the program stored in the ORIGINAL CODE BUFFER MEMORY In a preferred embodiment, the COMPILATOR also issues a resulting code and

le met en mémoire dans la Ml EMOIRE-TAMPON DE CODE RESULTANT.  puts it in memory in the Ml EMOIRE-PAMPON OF RESULTING CODE.

Après achèvement de l'entrée et de la compilation du pro-  After completion of entry and compilation of the

gramme en code d'origine, la commande del'unité de traitement-  gram in original code, ordering the processing unit-

peut être transmise à l'INTERPRETE pour exécution du code résultant si ce dernier se présente sous la forme d'un code  may be transmitted to the INTERPRETER for execution of the resulting code if the latter is in the form of a code

intermédiaire L'option peut être offerte au programmeur de -  intermediate The option can be offered to the programmer from -

sauvegarder le code d'origine et/ou le code résultant dans une mémoire secondaire,telle qu'un support sur disque ou sur bande Au lieu d'engendrer un code intermédiaire ("code p"), le COMPILATEUR peut être du type qui émet des codes machine exécutables Le COMPILATEUR peut ne nécessiter qu'un seul passage du code d'origine à la manière du cor mpilateur Pascal  save the original code and / or the resulting code in a secondary memory, such as a disk or tape medium. Instead of generating an intermediate code ("p code"), the COMPILATOR can be of the type which transmits executable machine codes The COMPILER may require only one pass of the original code in the manner of the Pascal cor mpiler

descendant récursif usuel Si le COMPILATEUR nécessite plu-  usual recursive descendant If the COMPILATOR requires more

sieurs passages, le premier passage devrait, de préférence, effectuer l'analyse syntactique de façon à révéler toutes  If there are several passages, the first passage should preferably perform the syntactic analysis so as to reveal all

les erreurs Se syntaxe.errors get syntax.

Le sys-%me d'interruption permet au programmeur d'arre-  The interrupt system allows the programmer to stop

ter l'exécuzion du programme en code machine a un moment don-  ter execution of the program in machine code at a given time

né quelconque, d'examiner les valeurs des variabies,puis de poursuivre l'exécution Aucun matériel supplémentaire n'es-z nécessaire pour cette fonction supplémentaire et le logiciel  born any, examine the values of the variabies, then continue execution No additional hardware is required for this additional function and software

supplémentaire nécessaire est très peu important.  extra required is very unimportant.

Sur la Fig 2 à laquelle on se référera maintenant, on a représenté les circuits et les éléments du matériel qui  In Fig 2 to which we will now refer, the circuits and the elements of the material which are shown

interviennent directement dans l'opération d'interruption.  intervene directly in the interruption operation.

Lorsqu'on frappe une touche du PUPITRE A TUBE CATHODIQUE,un train d'impulsions constituant le multiplet correspondant à  When a key on the CATHODIC TUBE is hit, a train of pulses constituting the multiplet corresponding to

la touche frappée est transmis par le point d'accès de sor-  the key pressed is transmitted by the exit access point

tie série S du RS-232-C Une porte convertisseuse C 1 conver-  tie S series of RS-232-C A converting door C 1 conver-

tit le train d'impulsions des niveaux RS-232-C aux niveaux  tit the pulse train from RS-232-C levels to levels

TTL (logique à transistor-transistor) pour répondre aux condi-  TTL (transistor-transistor logic) to meet the conditions

tions du point d'accès d'entrée EN de i'ERAS Ce dernier transforme le train d'impulsions successives en un multiplet de huit bits {octet) qui est mis en mémoire dans le registre des données reçues de l'ERAS Ce dernier émet alors un signal de données disponibles sur une broche DAV, signal qui est  The access point EN of the ERAS This transforms the train of successive pulses into a byte of eight bits (byte) which is stored in the register of data received from the ERAS The latter emits then a data signal available on a DAV pin, signal which is

transmis par une porte G 1 à une entrée d'interruptions à vec-  transmitted by a door G 1 to a vector interrupt input

teurs VI du CODEUR DE PRIORITE.tors VI of the PRIORITY ENCODER.

Bien qu'on n'ait représenté qu'une broche d'entrée VI de  Although only a VI input pin of

ce codeur, il est bien entendu que cette microplaquette com-  this encoder, it is understood that this chip includes

porte d'autres broches d'entrée d'interruptions à vecteurs auxquelles d'autres dispositifs interrupteurs peuvent être connectés.  carries other vector interrupt input pins to which other switch devices can be connected.

Le CODEUR DE PRIORITE arbitre les demandes d'interru D-  The PRIORITY ENCODER arbitrates requests to interrupt D-

tion concurrentes appliquées à ses entrées et détermine  competing tion applied to its inputs and determines

qu'elle est la demande qui a la priorité la plus élevée.  that it is the request which has the highest priority.

L'entrée EI de mise en fonction du CODEUR DE P Ri ORITE est  The EI input to activate the P Ri ORITE ENCODER is

* mise à-la masse, comme représenté.* grounding, as shown.

Si l'on admet que la demande d'interruption du PUPITRE et de l'ERAS est reconnue prioritaire, le CODEUR transmet  If it is accepted that the request to interrupt the DESK and the ERAS is recognized as priority, the ENCODER transmits

alors un code de trois bits A 0, A 1, A 2 aux entrées respec-  then a three-bit code A 0, A 1, A 2 at the respective inputs

tives du REGISTRE DE VECTEUR D'INTERRUPTION Les cinq autres entrées de ce registre sont maintenues à l'état positif par une source de tension +V de sorte que le multiplet résultant appliqué à cette microplaquette de registre constitue une instruction d'appel RST Le signal produit sur la broche de sortie GS du CODEUR DE PRIORITE est transmis par une porte G 2 à l'entrée d'activation de verrouillage LE du REGISTRE DE VECTEUR D'INTERRUPTION pour provoquer la mise en mémoire  INTERRUPTION VECTOR REGISTER tives The other five entries in this register are kept positive by a voltage source + V so that the resulting byte applied to this register chip constitutes an RST call instruction The signal product on the output pin GS of the PRIORITY ENCODER is transmitted by a door G 2 to the lock activation input LE of the INTERRUPTION VECTOR REGISTER to cause storage

par ce dernier de l'instruction d'appel RST dans ses bas-  by the latter of the RST call instruction in its bas-

cules bistables internes.internal bistable cules.

L'activation de la broche de sortie GS du CODEUR DE  Activation of the output pin GS of the ENCODER

PRIORITE transmet également un signal d'interruption par-  PRIORITY also transmits an interrupt signal by

l'intermédiaire d'une porte ET A 1 à la broche de demande d'interruption INT* de l'unité de traitement ZSO Si l'on suppose que l'interruption du processeur est autorisée, après achèvement de l'instruction-en cours, les broches IORQ* et M 1 * d'état de l'unité de traitement sont rendues actives et leurs signaux sont transmis par des portes G 3,  via an AND gate A 1 to the interrupt request pin INT * of the ZSO processing unit If it is assumed that the interruption of the processor is authorized, after completion of the instruction-in progress , the status pins IORQ * and M 1 * of the processing unit are made active and their signals are transmitted by gates G 3,

G 4 à une porte A 2 pour fo'rmer le signal INTA (AR d'interrup-  G 4 at a gate A 2 to form the INTA signal (AR interrupt-

tion) Ce dernier signal est inversé par une porte G 5 et ap-  tion) This last signal is inverted by a gate G 5 and ap-

pliqué à la broche OE d'activation de la sortie du REGISTRE DE VECTEURD'INTERRUPTION à la suite de quoi l'instruction d'appel RST appliquée aux entrées de ce registre est chargée  folded to the OE pin for activating the output of the INTERRUPTION VECTOR REGISTER after which the RST call instruction applied to the inputs of this register is loaded

sur le BUS DE DONNEES.on the DATA BUS.

L'instruction RST est alors entrée dans l'unité du trai tement Z 80 qui l'exécute,ce qui a pour effet qu'elle refoule le contenu du compteur de programme dans la pile et qu'elle effectue un saut à un emplacement prédéterminé de la partie basse de la mémoire Cet emplacement contient un "vecteur"  The RST instruction is then entered in the processing unit Z 80 which executes it, which has the effect that it drives back the content of the program counter in the stack and that it jumps to a predetermined location of the lower part of the memory This location contains a "vector"

ou instruction de saut (JMP) de trois multiplets à une rou-  or jump instruction (JMP) from three bytes to one wheel

tine de service des interruptions Cette dernière contient l'éditeur ainsi qu'une sous-routine pour mettre en mémoire  tine of service of interruptions This last contains the editor as well as a subroutine to put in memory

le contenu des registres de l'unité de traitement La com-  the contents of the registers of the processing unit

ande de l'unité de traitement est alors conservée par l'édi-  ande of the processing unit is then kept by the editor

teur jusqu'à ce qu'un caractère ait été entré dans la mémoire-  until a character has been entered into memory-

tampon de code d'origine ou qu'une opération d'édition ait  original code buffer or an edit operation has

été achevée.been completed.

L'éditeur comporte une instruction d'entrée qui, lors- qu'elle est exécutée, a pour effet que l'unité de traitement  The editor includes an input instruction which, when executed, has the effect that the processing unit

place l'adresse du point d'accès de l'ERAS sur le BUS D'A-  places the address of the ERAS access point on the BUS D'A-

DRESSE Cette adresse est vérifiée par le COMPARATEUR et si  DRESS This address is verified by the COMPARATOR and if

elle correspond à celle du point d'accès, la broche de sor-  it corresponds to that of the access point, the output pin

tie EOUT est rendue active pour le signaler au DECODEUR Ce  tie EOUT is made active to signal it to DECODER This

dernier est commandé par d'autes signaux de commande et d'é-  the latter is controlled by other control and

tat (non représentés) de la manière classique de façon à transmettre un signal RDE* à l'entrée correspondante RDE de l'ERAS Le multiplet contenu dans le registre des données reçues (non représenté) de l'ERAS est alors appliqué sur le BUS DE DONNEES et transmis à l'accumulateur qui fait partie  tat (not shown) in the conventional way so as to transmit an RDE * signal to the corresponding RDE input of the ERAS The byte contained in the register of received data (not shown) of the ERAS is then applied to the BUS DATA and transmitted to the accumulator which is part

de l'unité de traitement.of the processing unit.

Dans le mode de réalisation préféré de l'invention re-  In the preferred embodiment of the invention

présenté sur la Fig 2, les circuits intégrés utilisés  presented in Fig 2, the integrated circuits used

peuvent être les suivants.may be as follows.

ERAS: 1602ERAS: 1602

CODEUR DE PRIORITE: 74 L 5148PRIORITY ENCODER: 74 L 5148

REGISTRE DE VECTEUR D'INTERRUPTICN: 74 L 5373  INTERRUPTICN VECTOR REGISTER: 74 L 5373

DECODEUR: 74 L 5155DECODER: 74 L 5155

COMPARATEUR: 25 L 52521COMPARATOR: 25 L 52521

C 1: 1489C 1: 1489

C 2: 1488C 2: 1488

Sur la Fig 3 à laquelle on se référera maintenant,  In Fig 3 to which we will now refer,

on a représenté la séquence générale des opérations du sys-  the general sequence of system operations has been shown

tome Le COMPILATEUR détient normalement a commande de l'unité de traitement et est soit dans une boucle infinie  tome The COMPILATOR normally holds control of the processing unit and is either in an infinite loop

après avoir atteint une Marque de Pause dans la mémoire-tam-  after reaching a Pause Mark in the memory-tam-

pon de code d'origine soit en train d'analyser le code d'o-  pon of original code is analyzing the code from-

rigine qui se trouve dans la mémoire-tampon.  which is in the buffer.

Lorsqu'il se produit une FRAPPE DE TOUCHE sur le termi-  When there is a KEY STRIKE on the termi-

nal, ceci provoque une INTERRUPTION à la suite de quoi l'or-  nal, this causes an INTERRUPTION as a result of which the-

dinateur est envoyé à la routine de service des interruptions.  computer is sent to the interrupt service routine.

Cette dernière comporte une sous-routine pour exécuter l'o-  The latter includes a subroutine to execute the

pération SAUVEGARDER LES REGISTRES indiquée sur le dessin.  operation SAVE THE REGISTERS indicated on the drawing.

L'EDITEUR est alors exécuté par l'unité de traitement.  The EDITOR is then executed by the processing unit.

Si la FRAPPE DE TOUCHE correspond à un caractère de commande, une procédure d'édition, telle qu'un déplacement du curseur, un défilement de l'image, sur l'écran, une suppression de caractère ou une suppression de ligne, est effectuée Si la FRAPPE DE TOUCEHE correspond à un caractère alphanumérique ou autre caractère de code d'oricine valide, ce dernier est entré dans la mémoire-tampon de code d'origine et affiché sur l'écran vidéo et le curseur d'écran est avancé à la position  If the KEY STRIKE corresponds to a command character, an editing procedure, such as moving the cursor, scrolling the image, on the screen, deleting a character or deleting a line, is performed If the KEYKEY matches an alphanumeric or other valid origin code character, the original enter code buffer is displayed on the video screen and the screen cursor is advanced to the position

de caractère suivante.next character.

La routine de service des interruptions effectue alors  The interrupt service routine then performs

un saut à sa sous-routine pour effectuer sa procédure RESTAU-  a jump to its subroutine to perform its RESTAU-

RER LES REGISTRES au moyen de laquelle les registres de l'u-  RER THE REGISTERS by means of which the registers of the

nité de traitement sont remis à leurs valeurs d'origine qu'ils  treatment nity are returned to their original values they

avaient au moment de l'interruption.  had at the time of the interruption.

L'instruction AUTORISER LESINTERRUPTIONS (El) est alors  The instruction AUTHORIZE INTERRUPTIONS (El) is then

exécutée par l'unité de traitement de façon que cette aer-  executed by the processing unit so that this aer-

nière puisse répondre à l'interruption suivante Enfin, l'ins-  can respond to the next interruption Finally, the ins-

truction RET est exécutée de façon que l'ordinateur puisse  RET truction is executed so that the computer can

RETOURNER AU COMPILATEUR Le compilateur reprend alors l'exé-  RETURN TO THE COMPILER The compiler then resumes the exe

cution au point o elle avait été interrompue.  cution to the point where it was interrupted.

Sur la Fig 4 à laquelle on se référera maintenant, on a représenté la séquence des opérations du compilateur Après  In Fig 4 to which we will now refer, the sequence of operations of the compiler has been shown.

initialisation, le compilateur effectue tout d'abord sa fonc-  initialization, the compiler first performs its function

tion LIRE CARACTERE au moyen de laquelle le multiplet contenu  tion READ CHARACTER by means of which the byte contained

dans le premier emplacement de la mémoire-tampon du code d'o-  in the first location of the o-code buffer

rigine est lu.rigine is read.

Si ce multiplet est le code prédéterminé désigné Marque de Pause, le pointeur du compilateur n'avance pas et le compilateur entre dans unc boucle infinie dans laquelle il-continue de lire le idême emplacement jusqu'à ce que le contenu soit changé en un blanc par l'éditeur Lorsque ce  If this byte is the predetermined code designated Pause Mark, the pointer of the compiler does not advance and the compiler enters an infinite loop in which it continues to read the same location until the content is changed to a blank by the editor When this

changement se produit, le poihnteur de la mémoire du compila-  change occurs, the compiler memory poihntor

teur est incrémenté à l'emplacement suivant de la mémoire-  tor is incremented at the next location in memory-

tampon de sorte que le compilateur sort de sa boucle de Pause  buffer so the compiler comes out of its Pause loop

comr e indiqué par l'inscription AVANCER POINTEUR DE MEMOIRE.  comr e indicated by the inscription ADVANCE MEMORY POINTER.

Comme indiqué par l'inscriptiod'SYMBOLE? ", l'analyseur  As indicated by the inscription'SYMBOLE? ", the analyzer

lexical du compilateur détermine alors si le caractère d'ori-  the lexical of the compiler then determines if the character of ori-

gine lu constitue le dernier caractère d'un symbole, tel qu'un identificateur, un opérateur ou une marque de ponctua- tion Dans la négative, la fonction LIRE CARACTERE est à  gine lu constitutes the last character of a symbol, such as an identifier, an operator or a punctuation mark If not, the GET CHARACTER function is

nouveau exécutée jusqu'à ce qu'un symbole soit reconnu.  again executed until a symbol is recognized.

L'analyseur de syntaxe du compilateur détermine alors si ce symbole est conforme à une SYNTAXE CORRECTE en conformité avec la grammaire du langage de programmation Si le symbole  The compiler syntax analyzer then determines whether this symbol conforms to a CORRECT SYNTAX in accordance with the grammar of the programming language If the symbol

n'est pas conforme à la syntaxe, un MESSAGE D'ERREUR est af-  does not conform to the syntax, an ERROR MESSAGE is displayed

fiché. Si la syntaxe est correcte, la fonction LIRE CARACTERE est répétée jusqu'à cequ'une erreur soit trouvée ou que la FIN DU PROGRAMME soit atteinte Dans ce cas, le GENERATEUR DE CODE peut être appelé si cette fonction est exécutée sous la forme d'un passage séparé Alternativement, la génération du code peut être effectuée concurremment avec les analyses lexicales et syntactiques Le code engendré peut alors être  plug. If the syntax is correct, the READ CHARACTER function is repeated until an error is found or the END OF THE PROGRAM is reached In this case, the CODE GENERATOR can be called if this function is executed in the form of a separate passage Alternatively, the generation of the code can be carried out concurrently with the lexical and syntactic analyzes The generated code can then be

mis en mémoire sur disque et/ou exécuté, au choix du pro-  stored on disk and / or executed, at the option of the pro-

grammeur, comme indiqué par l'inscription SAUVEGARDER/-EX 4 CU-  grammer, as indicated by the inscription SAVE / -EX 4 CU-

TER CODE RESULTANT.TER RESULTING CODE.

Pour la clarté de l'illustration, on montrera comment  For the clarity of the illustration, we will show how

le compilateur simple et très largement publié PL/0 du pro-  the simple and widely published PL / 0 compiler of the pro-

fesseur N Wirth (Doc N 12) peut être modifié pour la mise  N Wirth spanker (Doc N 12) can be modified to put

en oeuvre de la présente invention Dans la description qui  of the present invention In the description which

suite on a ajouté les identificateurs ci-après qui n'appa-  the following identifiers have been added which do not appear

raissent pas dans le compilateur PL/0 d'origine tel que publié. CONT, PEEK, RECOMPILE, PTR, PM et SP La première instruction dans le compilateur modifié est:  not appear in the original PL / 0 compiler as published. CONT, PEEK, RECOMPILE, PTR, PM and SP The first instruction in the modified compiler is:

SI NON CONT ALORSIF NOT CONT THEN

La variable booléenne CONT est FAUSSE lors de l'entrée initiale dans le compilateur, ce qui signifie que ce n'est pas une continuation d'une exécution précédente En d'autres  The Boolean variable CONT is FALSE on initial entry into the compiler, which means that it is not a continuation of a previous execution.

termes, le compilateur vient juste d'être entré pour la pre-  terms, the compiler has just been entered for the first

mière fois au cours de laprésente session Les instructions d'affectation suivntes sont, par conséquent, exécutées pour initialiser le contenu des tableaux W ORD, WSYM, SSYM, MNEM 1 ONIC, DECLBEGSYS, STATBEGSYS et FACBEGSYS représentés aux pages 346,  first time during this session The following assignment instructions are therefore executed to initialize the contents of the W ORD, WSYM, SSYM, MNEM 1 ONIC tables, DECLBEGSYS, STATBEGSYS and FACBEGSYS shown on pages 346,

347 du traité de Wirth (Doc n 12) Les valeurs de ces ta-  347 of the Treaty of Wirth (Doc n 12) The values of these ta-

bleaux restent fixes pendant toute l'exécution du compilateur  remain fixed during the whole execution of the compiler

et l'instruction conditionnelle SI ci-dessus évite la néces-  and the IF conditional statement above avoids the need for

sité de ré-exécuter toutes ces ins:ructions d'affectation à  re-execute all of these ins: ructions in assignment to

la suite des-ré-initialisations du compilateur pour les recom-  The rest of the re-initializations of the compiler for recom-

pilations En d'autres termes, après la première vérification  pilations In other words, after the first check

de la variable CONT,celle-cl est mise à VRAI de façon à con-  of the variable CONT, this one is set to TRUE so as to con-

tourner ensuite les instructions d'affectation lorsqu'une re-  then rotate the assignment instructions when a re-

compilation est requise.compilation is required.

Après le bloc conditionnel d'affectation des tableaux, une fonction de langage d'assemblage PEEK est appelée pour  After the conditional block for assigning arrays, a PEEK assembly language function is called to

lire le contenu de l'emplacement de mémoire qui précède immé-  read the contents of the memory location above immediately

diatement le début de la mémoire-tampon de code d'origine,  the start of the original code buffer,

emplacement dans lequel est contenu l'Indicateur de Recompi-  location in which the Recompilation Indicator is contained

lation Si,dans cet emplacement,le code ASCII représentant la lettre "R" a été chargé par l'éditeur,une procédure du compilateur RECOMPILE est appelée pour ré-initialiser les variables ERR, CC, CX et LL et pour attribuer la valeur de  If, in this location, the ASCII code representing the letter "R" has been loaded by the editor, a procedure of the RECOMPILE compiler is called to re-initialize the variables ERR, CC, CX and LL and to assign the value to

constante AL ( 10) à la variable KK.  constant AL (10) to the variable KK.

La procédure RECOMPILE met également la valeur d'une  The RECOMPILE procedure also puts the value of a

variable pointeur PTR égale à l'adresse de début de la mé-  PTR pointer variable equal to the start address of the met

moire-tampon de code d'origine Le pointeur PTR est le poin-  original code buffer The PTR pointer is the point

teur de mémoire de l'analyseur lexical du compilateur et il est successivement avancé multiplet par multiplet du code d'origine pour lire ce dernier l'analyseur lexical lit le multiplet contenu dans l'emplacement de mémoire désigné par  memory of the compiler lexical analyzer and it is successively advanced byte by byte of the original code to read the latter the lexical analyzer reads the byte contained in the memory location designated by

le pointeur PTR.the PTR pointer.

L'analyseur lexical comporte également une autre modifi-  The lexical analyzer also includes another modification

cation importante du compilateur PL/0 Cette modification est incluse dans la procédéure GETSYM dans laquelle est également  important cation of the PL / 0 compiler This modification is included in the GETSYM procedure in which is also

imbriquée la procédure GETCH.nested the GETCH procedure.

GETSYM a en tant que premiere instruction:  GETSYM has as its first instruction:

PENDANT QUE CH=' ' EXECUTER GETCH;WHILE CH = '' EXECUTE GETCH;

Ceci constitue une partie d'une boucle infinie qui se répète tant que la procédure GETCH retourne le code ASCII ( 32) qui représente un espacement Comme expliqué ci-dessus, la procédure GETCH retourne le code d'espacement 32 chaque  This is part of an infinite loop that repeats as long as the GETCH procedure returns the ASCII code (32) which represents a spacing As explained above, the GETCH procedure returns the spacing code 32 each

fois qu'elle lit la Marque de Pause.  once she reads the Pause Mark.

La première instruction de GETCH est:  The first instruction of GETCH is:

CH: = PTR-;CH: = PTR-;

de façon à charger dans la variable CH le contenu de l'em-  so as to load the contents of the job into the variable CH

placement de la mémoire de code d'origine désigné par la va-  placement of the original code memory designated by the va-

riable pointeur PTR L'instruction suivante de la procédure GETCH est:  riable pointer PTR The following instruction of the GETCH procedure is:

SI CH = CHR(PM) ALORSIF CH = CHR (PM) THEN

vérifiant ainsi si le multiplet lu est le Masque de Pause PM qui est une constante égale à 35 On a choisi cette valeur étant donné que c'est un caractère visible et qu'elle n'était  thus checking if the byte read is the PM Pause Mask which is a constant equal to 35 We chose this value since it is a visible character and it was not

pas autrement utilisée.not otherwise used.

L'instruction suivante suit la clause SI:  The following statement follows the SI clause:

CH: = CHR (SP)CH: = CHR (SP)

dans laquelle SP est égal au code ASCII ( 32) pour un espace-  in which SP is equal to the ASCII code (32) for a space-

ment La commande retourne alors à GETSYM dans laquelle la condition de la clause PENDANT QUE est satisfaite de sorte qu'elle appelle à nouveau la procédure GETCH Cette séquence est répétée et se traduit par une boucle infinie tant que le multiplet contenu dans l'emplacement de mémoire qui est lu  The command then returns to GETSYM in which the condition of the clause WHILE THAT is satisfied so that it calls the GETCH procedure again This sequence is repeated and results in an infinite loop as long as the byte contained in the location of memory that is read

est la Marque de Pause.is the Break Mark.

Après que l'éditeur a remplacé ce multiplet de Marque de Pause par le code ASCII représentant un espacement,la boucle est interrompue du fait que la condition-booléenne de la clause SI n'est plus satisfaite (la variable CH n'est pas égale à PM) Au lieu de cela la clause SINON suivante est exécutée de façon à faire avancer le pointeur PTR de la mémoire de code d'origine à l'emplacement de mémoire suivant, par l'instruction:  After the editor has replaced this Pause Mark multiplet with the ASCII code representing a spacing, the loop is interrupted because the Boolean condition of the SI clause is no longer satisfied (the variable CH is not equal Instead, the following ELSE clause is executed to advance the PTR pointer from the original code memory to the following memory location by the instruction:

PTR: = PTR + 1;PTR: = PTR + 1;

après quoi l'appel suivant de la procédure GETCH lit l'empla-  after which the next call to the GETCH procedure reads the job

cement suivant de la mémoire de code d'origine, pour per-  next cement from the original code memory, to allow

mettre au compilateur de poursuivre son avance à travers le code d'origine le pointeur PTR esz avancé de manière répétée  put the compiler to continue its advance through the original code the PTR esz pointer advanced repeatedly

à chaque appel de la procédure GETCH jusqu'à ce qu'il at-  each time you call the GETCH procedure until it has

teigne la nouvelle Marque de Pause introduite par l'éditeur,  the new Break Mark introduced by the publisher,

comme décrit ci-dessous.as described below.

Sur la Fig 5-à laquelle on se référera, on a représen-  In Fig 5-to which we will refer, we have represented

té la séquence des opérations de l'éditeur La fonction EN- TRER CARACTERE est tout d'abord exécutée en réponse à FRAPPE DE CARACTERE (Fig 3) L'éditeur détermine alors si  The editor's sequence of operations The ENTER CHARACTER function is first executed in response to CHARACTER HIT (Fig 3) The editor then determines whether

le multiplet entré est un CARACTERE DE COMMANDE Dans la né-  the byte entered is an ORDER CHARACTER In the ne-

gative, le caractère est entré dans la mémoire-tampon de code d'origine, comme indiqué par l'inscription CAR DANS  gative, the character is entered in the original code buffer, as indicated by the inscription CAR IN

MEM-TAMPON Le caractère entré est également affiché sur l'é-  MEM-BUFFER The entered character is also displayed on the display.

cran comme indiqué par l'inscription CAR TRANS A ECRAN PU-  notch as indicated by the inscription CAR TRANS A ECRAN PU-

PITRE Si le caractère entré est un caractère de commande,  PITRE If the character entered is a control character,

l'éditeur détermine alors s'il s'agit d'un RETOUR DU CHA-  the editor then determines whether it is a RETURN FROM CHA-

RIOT? Dans la négative, la routine de l'éditeur -appropriée pour traiter les caractères de commande est appelée, comme, indiqué par l'inscription TRANSF A ROUTINE CAR DE COM et  RIOT? If not, the routine of the editor - appropriate for processing the command characters is called, as indicated by the inscription TRANSF A ROUTINE CAR DE COM and

comme on le décrira ci-dessous en se référant à la Fig 6.  as will be described below with reference to Fig 6.

Comme représenté sur la Fig 5 à laquelle on continue-  As shown in Fig 5 to which we continue-

ra de se référer, si le caractère entré est un retour du  ra to refer, if the character entered is a return of the

chariot, une nouvelle Marque de Pause est écrite dans la mé-  cart, a new Break Mark is written in the

moire-tampon de code d'origine dans l'emplacement adjacent  original code buffer in adjacent slot

à la fin de la ligne en cours, comme indiqué par l'inscrip-  at the end of the current line, as indicated by the inscription-

tion INTRODUIRE NOUVELLE MARQUE DE PAUSE L'ancienne Marque de Pause est changée en un blanc (espacement) comme indiqué  tion INSERT NEW PAUSE MARK The old Pause Mark is changed to a blank (spacing) as shown

par l'inscription RETIRER ANCIENNE MARQUE DE PAUSE.  by the inscription REMOVE OLD PAUSE MARK.

Pour faciliter la localisation ultérieure de l'emplace-  To facilitate the subsequent location of the location-

ment de la Marque de Pause, un emplacement de mot de mémoire  Pause Mark, a memory word location

est réservé en tant que Registre de Pause pour mettre en mé-  is reserved as a Pause Register to highlight

moire l'adresse de l'emplacement de la Marque de Pause L'a-  moire the address of the Pause Mark location The

dresse de la nouvelle Marque de Pause est ainsi mise en mé-  of the new Break Mark is thus set

moire dans ce registre de la mémoire, comme indiqué par l'inscription METTRE A JOUR REGISTRE DE PAUSE Le code ASCII représentant un retour de chariot ( 13) est alors entré dans  moire in this memory register, as indicated by the inscription UPDATE PAUSE REGISTER The ASCII code representing a carriage return (13) is then entered in

la mémoire-tampon de code d'origine dans l'emplacement adja-  the original code buffer in the adja- location

cçent à la Marque de Pause, comme indiqué par l'inscription o INTRODUIRE CAR DANS MEM-TAMPON Le code ASCII représentant une avance de ligne ( 10) peut être entré après le retour du  cce at the Pause Mark, as indicated by the inscription o INSERT CAR IN MEM-BUFFER The ASCII code representing a line advance (10) can be entered after the return of the

chariot, si cette convention est désirée.  cart, if this convention is desired.

Sur la Fig 6 à laquelle on se référera maintenant, on  In Fig 6 to which we will now refer, we

a représenté la séquence des opérations des routines de l'é-  represented the sequence of operations of the routines of the

diteur pour traiter les caractères de co Lmmande entrés au pu-  editor to process the characters of co Lmmande entered in the pu-

pitre Le caractère entré est tout d'abord vérifié pour dé-  pitre The character entered is first checked to

terminer si c'est le code correspondant à l'opération de REMONTEE DU CURSEUR Dans la négative, une vérification est  finish if it is the code corresponding to the CURSOR RISE operation If not, a check is

alors effectuée pour déterminer si c'est le code correspon-  then performed to determine if it is the corresponding code

dant à l'opération de REMONTEE DE L'IMA GE (vers le début du programme ce qui correspond,en pratique,à un défilement de  during the IMA GE BACKUP operation (towards the start of the program, which in practice corresponds to a scrolling of

l'image vers le bas) Dans la négative, le caractère de com-  image down) If not, the character of com-

mande est traité de la manière classique que l'on ne décrira pas davantage, comme indiqué par l'inscription TRAITER AUTRES  Mande is treated in the conventional manner which will not be described further, as indicated by the inscription TREAT OTHERS

CARACTERES DE COMMANDE.ORDER CHARACTERS.

Si le caractère de commande entré est le code qui repré-  If the command character entered is the code that represents

sente la REMONTEE DU CURSEUR ou celui qui représente la REMONTEE DE L'IMAGE, l'opération respective REMONTER LE CURSEUR ou FAIRE DEFILER L'IMAGE est exécutée Dans le premier cas, le  feel the CURSOR UP or the one representing the PICTURE RISE, the respective operation Raise the CURSOR or SCROLL THE IMAGE is executed In the first case, the

curseur est déplacé d'une ligne vers le haut sur l'écran vidéo.  cursor is moved up one line on the video screen.

Dans le second cas, l'écran est effacé et ré-écrit pour affi-  In the second case, the screen is cleared and rewritten to display

cher les lignes de la mémoire-tampon de code d'origine qui  expensive lines from the original code buffer which

précèdent immédiatement les lignes effacées.  immediately precede deleted lines.

Comme indiqué par l'inscription INTRODUIRE NOUVELLE MARQUE DE PAUSE, une nouvelle Marque de Pause est introduite à l'emplacement immédiatement adjacent à la fin de la ligne de la mémoire-tampon de code d'origine qui précède la ligne qui porte la nouvelle position du curseur Les opérations RETIRER ANCIENNE MARQUE DE PAUSE et METTRE A JOUR REGISTRE  As indicated by the inscription ENTER NEW PAUSE MARK, a new Pause Mark is introduced at the location immediately adjacent to the end of the line of the original code buffer preceding the line which carries the new position of the cursor The operations REMOVE OLD PAUSE MARK and UPDATE REGISTER

DE PAUSE sont alors effectuées de la manière que l'on a dé-  OF PAUSE are then carried out in the manner that has been

crite ci-dessus en se référant à la Fig 5.  above, referring to Fig 5.

L'opération METTRE INDICATEUR DE RECOSMPILATION provoque  The operation SET RECOSMPILATION INDICATOR causes

la ré-initialisation du compilateur lorsque ce dernier re-  re-initializing the compiler when the latter

prend la commande de l'unité de traitement après le retour de la routine de service de l'interruption Cet indicateur est, de préférence, un eimplacement de la mémoire dans leqeul  takes control of the processing unit after the return of the interrupt service routine This indicator is preferably a location of the memory in the only

un code prédéterminé peut être chargé pour informer le compi-  a predetermined code can be loaded to inform the compi-

lateur qu'une recompilation du code d'origine est requise.  reader that a recompilation of the original code is required.

Dans le mode de réalisation préféré, cet indicateur de recompilation est r is pour requérir une recompilation chaque fois que le curseur est déplacé vers le haut ou que l'on remonte l'image En d'autres termes, on admet que chaque fois que le curseur est déplacé de façon à désigner un code d'origine qui peut avoir déjà été compilé, ce code sera  In the preferred embodiment, this recompilation indicator is required to require a recompilation each time the cursor is moved up or the image is raised. In other words, it is accepted that each time the cursor is moved to indicate an original code which may have already been compiled, this code will be

changé de façon à nécessiter une recompilation.  changed to require recompilation.

Une autre méthode consisterait à ne mettre l'inducteur de recompilation que si le code précédemment compilé est  Another method would be to put the recompilation inducer only if the code previously compiled is

effectivement changé étant donné qu'il se peut que le pro-  actually changed since the pro-

gralleur fasse défiler l'image dans un sens puis dans l'autre  gralleur scrolls the image in one direction then in the other

sans apporter aucun changement au code d'origine.  without making any changes to the original code.

Encore une autre solution consisterait à créer dans la  Yet another solution would be to create in the

mémoire un registre qui contiendrait l'adresse de la der-  memory a register which would contain the address of the last

nière position du pointeur du compilateur L'éditeur pourrait  position of the compiler pointer The editor could

alors comparer cette adresse à l'emplacement de la mémoire-  then compare this address to the memory location-

tampon de code d'origine désignée par le curseur pour déter-  original code buffer designated by the cursor to determine

miner si des changements d'édition sont en train d'être ap-  undermine if editing changes are being applied

pcrtés à un code d'origine qui a déjà été compilé.  pcrtés to an original code that has already been compiled.

Bien que ces autres méthodes entraînent un plus petit  Although these other methods result in a smaller

nombre de recompilations, le mode de réalisation préféré pré-  number of recompilations, the preferred embodiment pre-

sente l'avantage d'une mise en oeuvre plus simple En outre, le processus de recompilation est tellement plus rapide que  feels the advantage of a simpler implementation In addition, the recompilation process is so much faster than

la frappe manuelle du code d'origine au pupitre que le com-  manual entry of the original code on the console that the

pilateur pourra recompiler tous le programme et rattraper le programmeur avant que ce dernier ait eu le temps de taper plus de quelques nouvelles lignes de code sauf dans le casde  pilateur will be able to recompile all the program and catch up with the programmer before the latter has had time to type more than a few new lines of code except in the case of

programmes extrêmement volumineux Par conséquent, la réduc-  extremely large programs Therefore, the reduction

tion du nombre des recompilations au minimum absolu n'est  tion of the number of recompilations to the absolute minimum is

pas essentielle.not essential.

L'éditeur est écrit en Pascal avec des appels à seize  The editor is written in Pascal with calls to sixteen

procédures et fonctions en langage d'assemblage externes.  procedures and functions in external assembly language.

On décrira maintenant celles de ces routines qui sont propres  We will now describe those of these routines which are clean

à la présente invention.to the present invention.

Lors de l'entrée de l'éditeur, la variable bool enne ECONT est vérifiée pour déterminer si cet appel de l'éditeur  When entering the editor, the bool enne ECONT variable is checked to determine if this editor call

est la première entrée de la présente session ou une conti-  is the first entry in this session or a conti-

nuation Si la variable ECONT est FAUSSE,elle est alors mise à VRAI et les procédures suivantes: INIT, NEWFILE, VECTOR et  nuation If the variable ECONT is FALSE, it is then set to TRUE and the following procedures: INIT, NEWFILE, VECTOR and

TOPLO sont exécutées.TOPLO are executed.

D La procédure INIT remet à zéro la mémoire-tampon de code  D The INIT procedure resets the code buffer to zero

d'origine, met le pointeur de mémoire au début de la mém-ire-  original, puts the memory pointer at the beginning of the memory

tampon, introduit la Marque de Pause dans le premier emplace-  pad, introduces the Break Mark in the first place

ment de la mémoire-tampon, met le contenu du Registre de Pause  buffer, puts the contents of the Pause Log

égal à l'adresse de ce premier emplacement, initialise le cur-  equal to the address of this first location, initializes the cur-

seur à la première rangée et à la première colonne de l'écran et met le pointeur d'indicateur de recompilation de façon  in the first row and in the first column of the screen and places the recompilation indicator pointer

qu'il désigne l'emplacement de la mémoire qui précède le pre-  that it designates the location of the memory which precedes the first

mier multiplet de la mémoire-tampon.  mier byte from the buffer.

La procédure NEWFTILE souffle au programmeur qu'il doit  The NEWFTILE procedure prompts the programmer to

choisir soit un nouveau fichier pour l'entrée du Code d'ori-  choose either a new file for entering the Code of Ori-

gine soit un ancien fichier pour l'exécutiorn d'une révision.  gine is an old file for executing a revision.

Dans ce dernier cas, le fichier est chargé dans la mémoire-  In the latter case, the file is loaded into memory-

tampon de code d'origine à partir d'ul disque et la premiere  original code buffer from disk and first

image d'écran de code d'origine est affichée.  original code screen image is displayed.

La procédure VECTOR appelle la procédure d'assemblage  The VECTOR procedure calls the assembly procedure

externe POKE trois fois pour mettre en mémoire dans la par-  external POKE three times to store in the

tie basse de la mémoire ( 20 H) le vecteur de saut à une sous-  low memory link (20 H) the jump vector to a sub-

routine SAVREGS qui met en mémoire le contenu des registres  SAVREGS routine which stores the contents of the registers

de l'unité de traitement En réponse à une interruption ren-  of the processing unit In response to an interrupt

due active par la frappe d'une touche sur le clavier du pu-  due active by pressing a key on the pu keyboard

pitre, l'unité de traitement exécute l'instruction d'appel RST 4 et exécute ce vecteur de saut puis la sous-routine SAVREGS Après que les registres ont été sauvegardés,une instruction de saut contenue dans la sous-routine envoie  pitre, the processing unit executes the RST 4 call instruction and executes this jump vector then the SAVREGS subroutine After the registers have been saved, a jump instruction contained in the subroutine sends

l'unité de traitement à l'éditeur.  the processing unit to the editor.

La procédure TOPL O transmet la commande au compilateur PL/0 Elle est habituellement appelée après que l'éditeur a achevé l'entrée du caractère ou la fonction d'édition  The TOPL O procedure transmits the command to the PL / 0 compiler. It is usually called after the editor has completed entering the character or the editing function.

correspondant à la touche frappée sur le clavier du terminal.  corresponding to the key hit on the terminal keyboard.

Dans ce cas, la procédure est appelée après initialisation  In this case, the procedure is called after initialization

*de l'éditeur.* from the publisher.

L'instruction suivante de l'éditeur n'est atteinte que lorsqu'une interruption se produit en réponse à la frappe d'une touche Cette instruction charge dans une variable le coda ASCII entré provenant du registre des données reçues de l'ERAS Ce multiplet d'entrée est vérifié pour déterminer  The following instruction from the editor is only reached when an interruption occurs in response to a keystroke. This instruction loads the ASCII coda entered from the register of data received from ERAS into a variable. input is checked to determine

v s'il s' agit d'un caractère de commande ou d'un caractère al-  v if it is a command character or an al-

ph-anurérique (supérieur à 31) Dans ce dernier cas, le multi-  ph-anuric (greater than 31) In the latter case, the multi-

plet est entré dans la mémoire-tatpon de code d'origirm et  plet entered the origirm code memory and

affiché sur l'écran vidéo de la manière classique.  displayed on the video screen in the conventional manner.

Si le multiplet entré est soit le code de comzande pour déplacer le curseur vers le bas soit le code de commande pour remonter l'image, la procédure appropriée est appelée et se  If the byte entered is either the control code to move the cursor down or the command code to raise the image, the appropriate procedure is called and

ternine par l'appel de la procédure de mise à jour UPDATE.  by the call to the UPDATE update procedure.

Cette dernière entre dans la mémoire-tampon de code d'ori-  The latter enters the original code buffer.

gine une nouvelle Marque de Pause dans l'emplacement adjacent à la fin de l'ancienne ligne dans le cas d'une opération de  gine a new Pause Mark in the location adjacent to the end of the old line in the case of a

descente du curseur et dans l'emplacement adjacent à l'extré-  descent of the cursor and in the location adjacent to the end

mité de la ligne non visible qui précède la première ligne  from the invisible line preceding the first line

affichée dans le cas d'une opération de descente de l'image.  displayed in the case of an image descent operation.

L'opération de mise à jour UPDATE supprime également l'an-  The UPDATE update operation also removes the an-

cienne Marque de Pause en remplaçant la Marque de Pause con-  this Pause Mark by replacing the Pause Mark

tenue dans l'ancien emplacement de cette dernière par le code ASCII qui représente un espacement ( 32) le Registre  held in the former location of the latter by the ASCII code which represents a space (32) in the Register

de Pause est également mis à jour à l'adresse de l'emplace-  is also updated at the location address

ment de la nouvelle Marque de Pause.  ment of the new Break Mark.

Si le multiplet d'entrée est soit le code de commande  If the input byte is either the order code

pour déplacer le curseur vers le haut soit le code de com-  to move the cursor upwards be the code of com-

mande pour remonter l'image d'écran en direction du début du code d'origine, la procédure correspondante est appelée pour effectuer l'opération respective Cette procédure se termine par les appels de la procédure précédemment décrite  request to raise the screen image towards the beginning of the original code, the corresponding procedure is called to perform the respective operation This procedure ends with the calls to the procedure previously described

de mise à jour UPDATE et également de la procédure RECOMPILE.  UPDATE update and also the RECOMPILE procedure.

Cette dernière met en mémoire le code ASCII représentant la  The latter stores the ASCII code representing the

lettre "R" dans l'emplacement de mémoire qui précède immédia-  letter "R" in the memory location immediately preceding-

tement le début de la mémoire-tampon de code d'origine de fa-  the start of the original code buffer so

çon à constituer-l'indicateur de recompilation ci-dessus men-  lesson to build-the recompilation indicator above men-

tionné Après achèvement de l'opération de remontée du cur-  After completion of the recovery of the cur-

seur ou de remontée de l'image d'écran,i'unité de traitement  the screen image, the processing unit

retourne au com Dilateur cui vérifie l'indicateur de recom-  returns to com Dilator cui checks the recommendation indicator

pilation, détermine que cet indicateur est mis puis appelle  pilation, determines that this indicator is set and then calls

sa Procédure de ré-initialisation pour contraindre le compi-  its Re-initialization procedure to constrain the compi-

lateur à recompiler le code d'origine depuis le début de la mémoiretampon de code d'origine. Si le multiplet entré est le code ASCII qui représente  reader to recompile the original code from the start of the original code buffer. If the byte entered is the ASCII code that represents

le retour du chariot ( 13), la procédure CRET est appelée.  the return of the carriage (13), the CRET procedure is called.

Cette routine entre dans la mémoire-tampon de code d'origine une nouvelle Marque de Pause dans l'emplacement adjacent au code de retour du chariot, retire l'ancienne Marque de Pause,  This routine enters a new Pause Mark in the slot adjacent to the carriage return code in the original code buffer, removes the old Pause Mark,

met à jour le Registre de Pause, et exécute d'autres fonc-  updates the Pause Registry, and performs other functions

tions plus classiques,telles que l'entrée du code d'avancede ligne dans la mémoire-tampon, la mise à jour du curseur et le défilement de l'affichage vidéo si la ligne en cours est  more conventional, such as entering the line advance code in the buffer, updating the cursor and scrolling the video display if the current line is

la dernière ligne de l'écran.the last line of the screen.

Ir doit être bien compris que le mode de réalisation préféré décrit cidessus et représenté sur les dessins a été  It should be understood that the preferred embodiment described above and shown in the drawings has been

donné uniquement à titre d'illustration de l'une des nom-  given only as an illustration of one of the nom-

breuses formes sous lesquelles l'invention peut être mise en oeuvre et que de nombreuses modifications peuvent être apportées à ce mode de réalisation par les spécialistes de la technique sans s'écarter pour cela du cadre des revendir  breuse forms in which the invention can be implemented and that many modifications can be made to this embodiment by those skilled in the art without departing from the scope of reselling

cations annexées.appended cations.

Par exemple, au lieu de réaliser la Marque de Pause sous forme d'un code prédéterminé entré dans un emplacement  For example, instead of making the Pause Mark in the form of a predetermined code entered in a location

de mémoire à l'intérieur de la mémoire-tampon de code d'ori-  of memory inside the original code buffer

gine, l'emplacement de pause peut être défini pour le compi-  gine, the pause location can be defined for the compi-

lateur par une adresse de mémoire contenue dans un registre.  reader by a memory address contained in a register.

Le compilateur peut alors être empêché d'analyser le code  The compiler can then be prevented from parsing the code

mis en mémoire dans les emplacements de mémoire situés au-  stored in memory locations located above

delà de cette adresse qui peut être incrémentée et décré  beyond this address which can be incremented and decremented

mentée par l'éditeur.edited by the publisher.

En outre, l'interruption qui provoque le transfert de  In addition, the interruption that causes the transfer of

la commande de l'unité de traitement du compilateur à l'édi-  control of the compiler's processing unit from the editor

teur peut être rendue active par un minuteur ou une horloge au lieu de l'être au moyen du clavier En d'autres termes, le compilateur peut être interrompu périodiquement et le point d'accès d'entrée peut être appelé sélectivement pour déterminer si une touche a été frappée Dans la négative,  The timer can be made active by a timer or clock instead of by the keyboard. In other words, the compiler can be interrupted periodically and the entry access point can be called selectively to determine if a key was struck If not,

l'interruption est terminée et la commande retourne au com-  the interruption is completed and the command returns to the

pilateur Si l'appel sélectif du point d'accès révèle qu'une touche a été frappée,l'éditeur de la routine de service des interruptions prend la commande et est exécuté de la manière  pilot If the selective call of the access point reveals that a key has been hit, the editor of the interrupt service routine takes the command and is executed in the manner

que l'on a décrite ci-dessus en se référant au mode de réa-  which has been described above with reference to the mode of reaction

lisation préféré décrit Pour la plupart des applications, des interruptions pilotées par horloge à des intervalles d'environ 10 à 30 millisecondes doivent être suffisamment fréquentes pour rester au niveau de la fréquence de frappe  preferred readout described For most applications, clock-driven interruptions at intervals of about 10 to 30 milliseconds should be frequent enough to stay at the typing frequency

des touches sur le clavier.keys on the keyboard.

En outre, l'indicateur de recompilation peut être mis  In addition, the recompilation indicator can be set

chaque fois que le compilateur détermine que le code d'ori-  each time the compiler determines that the code for

gine contient une erreur En d'autres termes, on peut ad-  gine contains an error In other words, we can ad-

mettre que chaque fois qu'une erreur est révélée, le code  put that every time an error is revealed, the code

d'origine sera modifié de sorte qu'il nécessitera une recom-  original will be changed so that it will require a recommendation

pilation. Une autre modification possible consiste à supprimer l'exigence d'une recompilation à partir du tout début du code d'origine dans le cas o l'erreur se produit dans la  pounding. Another possible modification consists in removing the requirement of a recompilation from the very beginning of the original code in case the error occurs in the

dernière ligne achevée de code d'origine Pendant la compi-  last completed line of original code During compilation

lation de la ligne, les valeurs de registre résultantes, les  lation of the line, the resulting register values, the

entrées dans les tables, les manipulations de piles, les a-  entries in the tables, the handling of stacks, the a-

fectations de variables et les entrées dans la mémoire-  variable assignments and entries in memory-

tampon de code sont temporairement mises en mémoire et ne sont finalement entrées que lorsque l'analyse syntactique de la ligne de code d'origine est achevée et détermine que la ligne est conforme à la grammaire Si la ligne contient une erreur, ces entrées temporaires sont supprimées et le pointeur du compilateur est ramené à l'extrémité de la ligne précédente, évitant ainsi la recompilation Cependant, cette méthode exige encore une recompilation si les lignes de code  code buffer are temporarily stored in memory and are not entered until the parsing of the original line of code is completed and determines that the line conforms to grammar If the line contains an error, these temporary entries are removed and the compiler pointer is brought back to the end of the previous line, thus avoiding recompilation However, this method still requires recompilation if the lines of code

d'origine qui précèdent la dernière ligne sont modifiées.  original lines preceding the last line are changed.

Encore untre possibilité serait de faire avancer la  Another possibility would be to advance the

Marque de Pause par l'éditeur après l'entrée de chaque carac-  Pause mark by the editor after entering each character

tère ou après l'entrée de chaque symbole délinité Ceci pré-  tere or after entering each delineate symbol This pre-

2533721 t2,533,721 t

senterait l'avantage de révéler une erreur presqu'instanta-  would feel the benefit of revealing an error almost instantly

nrément lors de son entrée au clavier L'inconvénient serait  when entering the keyboard The downside would be

qu'une recompilation serait nécessaire pour toutes les pe-  that recompilation would be necessary for all pe-

tites erreurs de fragpe sans donner au procranm eur la possibi-  tite fragpe errors without giving the processor the opportunity

lité de les corriger avant qu'ellessoient explorées et ana-  It is necessary to correct them before they are explored and analyzed.

lysées syntactiquement.syntactically lysed.

BIBLIOGPPHIEBIBLIOGPPHY

1 L V Atkinson, et autres, "Context Sensitive Editing as an Ap Droach to _ncrérmental Compilation", The Computer Journal, Tome 24, n 3, 1981, pages 222-229, Heyden & Son Ltd. 2 L V Atkinson et S D North, "COPAS A Conversational Pascal System", Softw- are Practice and Experience, Tome11, 1981, pages 819-829, John Wiley & Sons Ltd. 3 R B Ayres et R L Derrenbacher, "Partial Recompilation",  1 L V Atkinson, et al., "Context Sensitive Editing as an Ap Droach to _ncrérmental Compilation", The Computer Journal, Tome 24, n 3, 1981, pages 222-229, Heyden & Son Ltd. 2 L V Atkinson and S D North, "COPAS A Conversational Pascal System", Softw- are Practice and Experience, Tome11, 1981, pages 819-829, John Wiley & Sons Ltd. 3 R B Ayres and R L Derrenbacher, "Partial Recompilation",

Spring Joint Computer Conference, 1971, pages 497-502.  Spring Joint Computer Conference, 1971, pages 497-502.

4 F T Baker et H D Mills, "Chief Programmer Teams", Classics in Softwate Engineering, Edité par E N Yourdon,  4 F T Baker and H D Mills, "Chief Programmer Teams", Classics in Softwate Engineering, Published by E N Yourdon,

Yourdon Press, pages 195-204.Yourdon Press, pages 195-204.

L Bolliet, et autres, "D 2 IA 2 'AG: A ulti-Access System for On-Line Algol Programming", Proc Spring JCC 1967, pages  L Bolliet, et al., "D 2 IA 2 'AG: A ulti-Access System for On-Line Algol Programming", Proc Spring JCC 1967, pages

547-552.547-552.

6 P J Brown, "Writting Interactive Compilers and Inter-  6 P J Brown, "Writting Interactive Compilers and Inter-

preters, Ch 2 4, pages 41-45, John Wiley & Sons.  preters, Ch 2 4, pages 41-45, John Wiley & Sons.

7 J Earley et P Caizergues, "A Method for Incrementally  7 J Earley and P Caizergues, "A Method for Incrementally

Compiling Languages with Nested Statement Structure", Commu-  Compiling Languages with Nested Statement Structure ", Commu-

nications of the ACM, tome 15, N 12, Déc 1972, pages 1040-  indications of the ACM, volume 15, N 12, Dec 1972, pages 1040-

1044.1044.

8 K Lock, "Structuring Programs for Multiprogram Time-  8 K Lock, "Structuring Programs for Multiprogram Time-

Sharing On-Line Applications", Proc Fall JCC 1965, pages  Sharing On-Line Applications ", Proc Fall JCC 1965, pages

457-472.457-472.

9 J Pournelle, User's Column, BYTE, Sept 1982, page 324.  9 J Pournelle, User's Column, BYTE, Sept 1982, page 324.

J L Ryan, et autres, "A Conversational System for Incremental Compilation and Execution in a Time-Sharing Environment", Proceedings Fall Joint Computer Conference,  J L Ryan, et al., "A Conversational System for Incremental Compilation and Execution in a Time-Sharing Environment", Proceedings Fall Joint Computer Conference,

1966, pages 1-21.1966, pages 1-21.

11 S Sonderstrup et M Pelle, "COMAL-80 A New Language?",  11 S Sonderstrup and M Pelle, "COMAL-80 A New Language?",

Dr Dobb's Journal, n 56, Jiin 1981, pages 14-15, 46-47.  Dr Dobb's Journal, No. 56, Jiin 1981, pages 14-15, 46-47.

12 N Wirth, "Algorithms + Data structures-= Programs", Ch 5, pages 280347, 1976, Prentice-Hall, Inc.  12 N Wirth, "Algorithms + Data structures- = Programs", Ch 5, pages 280347, 1976, Prentice-Hall, Inc.

Claims (19)

REVENDICATIONS 1 Un système de micro-ordinateur pour l'entrée et la com-  1 A microcomputer system for entry and com- pilation en temps réel à pe près simultanées d'un programme d'origine, caractérisé en ce au'i comporte: un pupitre pour l'entrée de caractères successifs constituant le programme  almost simultaneous real-time pounding of an original program, characterized in that it comprises: a desk for entering successive characters constituting the program d'origine; une mémoire à s emi-conducteur pour mettre en mé-  of origin; a semiconductor memory to store moire le programme d'origine et un programme résultant qui  moire the original program and a resulting program which résulte de la traduction du programme d'origine, cette mé-  results from the translation of the original program, this moire contenant également un compilateur et une routine de service des interruptions; une unité de traitement ayant une entrée d'interruptions, un compteur de programme, une série  moire also containing a compiler and an interrupt service routine; a processing unit having an interrupt input, a program counter, a series de registres et des moyens fonctionnant en réponse à l'acti-  of registers and means operating in response to the acti- vation de l'entréed'interru Dptionpour charger dans le pro-  Dption interrupt input to load into the pro- gramme une adresse de vecteur qui désigne la routine de ser-  gram a vector address which designates the service routine vice des interruptions; ledit compilateur détenant normale-  vice of interruptions; said compiler holding normal- ment la commande de l'unité de traitement pour compiler le programme d'origine partiel à mesure que ce dernier est entré dans la mémoire; le compilateur Comprenant des moyens pour traduire le programme d'origine partiel en code résultant et  the command of the processing unit to compile the partial original program as the latter has entered the memory; the compiler Understanding ways to translate the partial original program into resulting code and pour entrer ce dernier dans la mémoire; des moyens fonction-  to enter the latter into memory; functional means nant en réponse au fonctionnement du pupitre pour rendre ac-  in response to the operation of the console to make ac- tive l'entrée d'interruption et faire passer, de ce fait,  tive the interrupt input and pass, therefore, la co maande de l'unité de traitement,du compilateur à la rou-  the control of the processing unit, from the compiler to the rou- tine de service des interruptions; la routine de service des interruptions comprenant des moyens pour mettre en mémoire  tine of service interruptions; the interrupt service routine comprising means for storing in memory le contenu des registres; la routine de service des interrup-  the content of the registers; the service routine of interrup- tions comprenant un éditeur pour entrer successivement les caractères entrés dans des emplacements choisis de la mémoire  tions including an editor to successively enter the characters entered in selected memory locations et pour exécuter les commandes d'édition; l'éditeur compre-  and to execute the editing commands; the editor includes nant des moyens pour désigner un emplacement dans le pro-  providing means for designating a location in the pro- gramme d'origine mis en mémoire, emplacement o le compila-  original gram stored, location where the compa- teur doit faire une pause tout en attendant l'entrée d'une  guardian must take a break while waiting for the entry of a autre partie du programme d'origine; le compilateur compre-  other part of the original program; the compiler compre- nant une boucle d'exécution, lorsque le compilateur atteint l'emplacement de pause désigné et qui est exécutée jusqu'à ce que l'emplacement soit changé; l'éditeur faisant avancer l'emplacement de pause lorsque des parties supplémentaires du programme d'origine sont entrées; la routine de service des interruptions comportant des moyens pour restaurer le  an execution loop, when the compiler reaches the designated pause location and which is executed until the location is changed; the editor advancing the pause location when additional parts of the original program are entered; the interrupt service routine comprising means for restoring the contenu d'origine ues registres et pour retourner la com-  original contents of the registers and to return the mande de l'unité de t^aitement au compilateur à la suite de  request from the support unit to the compiler following l'achèvement soit de la mise en mémoire d'au moins un carac-  the completion of either the storage of at least one character tère entrée soit de l'exécution d'une commande d'édition.  input either from the execution of an edit command. 2 Un système d'ordinateur selon la revendication 1, carac-  2 A computer system according to claim 1, charac- térisé en ce que l'éditeur comprend des moyens pour modifier une partie du programme d'origine qui a été précédemment  terized in that the editor includes means for modifying a part of the original program which was previously compilé par le compilateur; et des moyens pour ré-initiali-  compiled by the compiler; and means for re-initiali- ser le compilateur afin de provoquer la recompilation par ce dernier du programme d'origine après que ladite partie  be the compiler in order to cause the latter to recompile the original program after said part compilée a été modifiée.compiled has been changed. 3 Un système d'ordinateur selon la revendication 1, carac-  3 A computer system according to claim 1, charac- térisé en ce que le pupitre comporte un écran d'affichage et un clavier muni de touches; l'éditeur comportant des  Terérized in that the desk includes a display screen and a keyboard provided with keys; the editor with moyens sélectifs pour afficher sur l'écran une partie choi-  selective means for displaying on the screen a selected part sie du programme d'origine mis en mémoire dans la mémoire;  the original program stored in memory; un curseur pour désigner sur l'écran l'emplacement du pro-  a cursor to designate the location of the pro- gramme d'origine qui doit être modifié par l'opération de l'éditeur; des moyens pour déplacer le curseur sur l'écran en réponse à la frappe de touches prédéterminées du clavier;  original gram which must be modified by the operation of the editor; means for moving the cursor on the screen in response to keystrokes of predetermined keys; et des moyers fonctionnant en réponse au déplacement du cur-  and hubs operating in response to displacement of the cur- seur afin de déplacer l'emplacement de pause jusqu'a un point précédant l'emplacement du programme désigné par le curseur après que le curseur a été déplacé vers le haut dans  to move the pause location to a point before the location of the program designated by the cursor after the cursor has been moved up in une direction correspondant à un retour vers le début du pro-  a direction corresponding to a return to the beginning of the pro- gramme d'origine.original gram. 4 Un système d'ordinateur selon la revendication 3, carac-  4 A computer system according to claim 3, charac- térisé en ce qu'il comporte des moyens pour ré-initialiser le compilateur en réponse au déplacement du curseur vers le haut, provoquant ainsi la recompilation du programme par  terized in that it comprises means for re-initializing the compiler in response to the movement of the cursor upwards, thereby causing the program to be recompiled by le compilateur.the compiler. Un système d'ordinateur selon la revendication 1, carac- térisé en ce que le pupitre comporte un écran d'affichage et un clavier muni de touches; l'éditeur comportant des  A computer system according to claim 1, characterized in that the desk comprises a display screen and a keyboard provided with keys; the editor with moyens pour afficher sur l'écran une partie choisie du pro-  means for displaying on the screen a selected part of the pro- gramme d'origine mis en mémoire dans la mémoire; un curseur  original gram stored in memory; a cursor pour désigner sur l'écran l'em Dlacement du programme d'ori-  to indicate on the screen the location of the original program cine qui doit être modifié par l'opération de l'éditeur; des moyens pour déplacer le curseur sur l'écran en réponse à la frappe de touches prédéterm inées du clavier; des moyens tour déplacer l'emplacement de pause jusqu'à un point précédant l'emplacement du programme désigné par le curseur après que  cine which must be modified by the operation of the editor; means for moving the cursor on the screen in response to keystrokes of predetermined keys; turn means move the pause location to a point preceding the location of the program designated by the cursor after le curseur a été déplacé vers le haut dans une direction cor-  the cursor has been moved up in a correct direction respondant à un retour vers le début du programme d'origine; et des moyens pour ré-initialiser le compilateur après que le curseur a été déplacé vers le haut,provoquant ainsi la  responding to a return to the start of the original program; and means for re-initializing the compiler after the cursor has been moved up, thereby causing the recompilation par le compilateur du code d'origine.  recompilation by the compiler of the original code. 6 Un système d'ordinateur pour l'entrée et la compilation  6 A computer system for entry and compilation en temps réel à peu près simultanées d'un programme, carac-  in roughly simultaneous real time of a program, character- térisé en ce qu'il comporte-:un pupitre pour entrer des carac-  terrified in that it includes-: a desk for entering characters- tères successifs constituant le code d'origine du programme;  successive tères constituting the original code of the program; une mémoire pour mettre en mémoire le code d'origine et éga-  a memory to store the original code and also lement pour mettre en mémoire un compilateur et un éditeur; l'éditeur comprenant des moyens pour entrer successivement dans la mémoire les caractères entrés et pour exécuter des commandes d'édition; une unité de traitement; le compilateur ayant normalement la commande de l'unité de traitement pour analyser syntactiquement le programme d'origine partiel mis en mémoire dans la mémoire; des moyens pour transmettre la commande de l'unité de traitement du compilateur à l'éditeur; des moyens pour désigner un emplacement dans le programme d'origine o le compilateur doit faire une pause tandis  also to store a compiler and an editor; the editor comprising means for successively entering the characters entered and for executing editing commands; a processing unit; the compiler normally having control of the processing unit for syntactically analyzing the partial original program stored in the memory; means for transmitting the command from the processing unit of the compiler to the editor; means to designate a location in the original program where the compiler should pause while qu'il attend l'entrée d'une autre partie du programme d'ori-  waiting for the entry of another part of the orientation program gine; le compilateur comprenant des moyens pour effectuer une pause lorsque le compilateur atteint l'emplacement de pa'se désigné; des moyens pour faire avancer l'emplacement de pause lorsque des parties supplémentaires du programme d'origine sont entrées; et des moyens pour retourner la commande de l'unité de traitement au compilateur après achèvement soit  gine; the compiler comprising means for pausing when the compiler reaches the designated location; means for advancing the pause location when additional parts of the original program are entered; and means for returning the control from the processing unit to the compiler after completion, either de l'entrée d'au moins un caractère entré soit de l'exé-  the entry of at least one character entered, either ex- cution d'une commande d'édition.issue of an editing command. 7 Un système d'ordinateur selon la revendication 6, carac-  7 A computer system according to claim 6, charac- térisé en ce que l'unité de traitement comprend une série de registres; des moyens pour sauvegarder le contenu de ces registres lorsque 2 a commande est transmise du compilateur  terized in that the processing unit comprises a series of registers; means to save the content of these registers when 2 a command is transmitted from the compiler l'éditeur; et des moyens pour restaurer le contenu des re-  the publisher; and means to restore the contents of the gistres à la suite du retour de la commande de l'éditeur au compilateur.  records following the return of the command from the editor to the compiler. 8 Un système d'ordinateur selon la revendication 6, carac-  8 A computer system according to claim 6, charac- térisé en ce cue i' idil Jeur cxrporte des moyens pour modifier  terrified in this cue i 'idil Jeur cxrporte means to modify le code d'origine qui a préce_- rent fait l'objet d'une za-  the original code which previously was the subject of a za- lyse syntactique par le compilateur; et des moyens pour re-  syntactic lysis by the compiler; and means for re- initialiser le compilateur pour provoquer la recompilation par ce dernier du code d'origine après que le code analysé  initialize the compiler to cause the latter to recompile the original code after the analyzed code syntactiquement a été modifié.syntactically has been changed. 9 Un système d'ordinateur selon la revendication 6, carac-  9 A computer system according to claim 6, charac- térisé en ce qu'il comporte: un écran d'affichage; des moyens pour afficher sur l'écran une partie du code d'origine mis en mémoire dans la mémoire; un curseur pour désigner sur l'écran l'emplacement du code d'origine qui doit être modifié par une opération de l'éditeur; des moyens pour déplacer le curseur sur l'écran en réponse au fonctionnement du pupitre; et des moyens pour déplacer l'emplacement de pause jusqu'à un point précédant l'emplacement désigné par le curseur après que le curseur a été déplacé vers le haut dans une direction  terized in that it comprises: a display screen; means for displaying on the screen part of the original code stored in the memory; a cursor to designate on the screen the location of the original code which must be modified by an operation of the editor; means for moving the cursor on the screen in response to operation of the desk; and means for moving the pause location to a point preceding the location designated by the cursor after the cursor has been moved up in a direction qui correspond à un retour vers le début du programme d'ori-  which corresponds to a return to the start of the orientation program gine.gine. Un système d'ordinateur selon la revendication 9, carac-  A computer system according to claim 9, charac- térisé en ce qu'il comporte des moyens pour re-initialiser le compilateur après que le curseur a été déplacé vers le haut, provoquant ainsi la recompilation du code d'origine  terized in that it includes means for re-initializing the compiler after the cursor has been moved up, thus causing the recompilation of the original code par le compilateur.by the compiler. 11 Un système d'ordinateur pour l'entrée et la compilation en temps réel à peu près simultanées d'un*code d'origine,  11 A computer system for the roughly simultaneous entry and compilation of an * original code, caractérisé en ce qu'il comporte: une mémoire ayant une mé-  characterized in that it comprises: a memory having a memory moire-tampon de code d'origine; un clavier; un éditeur pour entrer et réviser un code d'origine dans la mémoire-tampon;  original code buffer; a keyboard; an editor for entering and reviewing an original code in the buffer; un compilateur pour effectuer des analyses lexicales et syn-  a compiler to perform lexical and syn- tactiques du code d'origine lorsque ce dernier est entré dans la mémoiretampon; des moyens d'interruption actionnables pour interrompre le compilateur et pour appeler l'éditeur en réponse à l'actionnement du clavier; des moyens limiteurs pour empêcher le compilateur d'essayer d'analyser le code au-delà d'emplacem ents de la mémoire-tampon déterminés par  tactics of the original code when the latter has entered the buffer memory; actuable interrupt means for interrupting the compiler and for calling the editor in response to the actuation of the keyboard; limiting means to prevent the compiler from attempting to analyze the code beyond buffer locations determined by l'éditeur; et des moyens pour retourner la commande du sys-  the publisher; and means for returning the system order tème a compilateur à la suite de l'achèvement d'une fonction d'édition.  teme a compiler following the completion of an edit function. 12 Un système d'ordinateur selon la revendication 11, ca-  12 A computer system according to claim 11, ca- ractérisé en ce qu'il comporte: un écran d'affichage; des  characterized in that it comprises: a display screen; of moyens pour afficner sur l'écran une partie du code d'ori-  means for displaying part of the code of origin on the screen gine mis en mémoire dans la mémoire-tampon; un curseur pour désigner sur l'écran l'emplacement du code d'origine qui doit être modifié par une opération de l'éditeur; des moyens pour déplacer le curseur sur l'écran en réponse à la frappe de touches prédéterminées sur le clavier; et des moyens pour déplacer l'emplacement de pause jusqu'à un point précédant  gine stored in the buffer; a cursor to designate on the screen the location of the original code which must be modified by an operation of the editor; means for moving the cursor on the screen in response to typing of predetermined keys on the keyboard; and means for moving the pause location to a point preceding it l'emplacement de la mémoire-tampon désigné par le curseur.  the location of the buffer designated by the cursor. 13 Un système d'ordinateur selon la revendication 11, ca-  13 A computer system according to claim 11, ca- ractérisé en ce que les moyens limiteurs comprennent des  characterized in that the limiting means include moyens pour identifier un emplacement de pause de la mémoire-  means to identify a memory pause location- tampon de code d'origine; un emplacement o le compilateur.  original code stamp; a location where the compiler. doit s'arrêter jusqu'à ce que ladite identification soit très  must stop until said identification is very changée par l'éditeur; et des moyens pour faire avancer l'em-  changed by the publisher; and means to advance the em- placement de pause après qu'une quantité prédéterminée de nouveau code d'origine a été ajoutée à la mémoire-tampon de façon à permettre au compilateur d'analyser le nouveau code d'origine.  pause placement after a predetermined amount of new source code has been added to the buffer so that the compiler can analyze the new source code. 14 Un système d'ordinateur selon la revendication 11, ca-  14 A computer system according to claim 11, ca- ractérisé en ce qu'il comporte:une unité de traitement ayant  characterized in that it comprises: a processing unit having une série de registres; des moyens pour sauvegarder le con-  a series of registers; means to safeguard the con- tenu des registres lorsque le compilateur est interrompu; et des moyens pour restaurer le contenu des registres après le  kept records when the compiler is interrupted; and means for restoring the contents of the registers after the retour dela commande de l'éditeur au compilateur.  return of the editor command to the compiler. 15 Un système d'ordinateur selon la revendication 11, ca-  15. A computer system according to claim 11, ractérisé en ce qu'il comporte des moyens pour modifier une partie précédemment compilée du code d'origine; et des moyens pour réinitialiser le compilateur pour qu'il recompile le  characterized in that it includes means for modifying a previously compiled part of the original code; and means to reset the compiler to recompile the programme d'origine après modification de la partie précédem-  original program after modification of the previous part ment compilée du code d'origine.compiled from the original code. 16 Un système d'ordinateur pour l'entrée et la compilation en temps réel à peu près simultanées d'un code d'origine, ca- ractérisé en ce qu'il comporte:un éditeur pour -'entrée et la modification du code d'origine; un compilateur qui détient  16 A computer system for the almost simultaneous entry and compilation in real time of an original code, characterized in that it comprises: an editor for entry and modification of the code 'origin; a compiler that holds normalement la commande du système pour traiter le code d'ori-  normally the system command to process the code of origin- gine sauf lorsqu'il est interrompu; et des moyens de retour  gine except when interrupted; and means of return pour retourner la commande du système d'ordinateur,de l'édi-  to return control of the computer system, the teur au compilateur,après que l'éditeur a achevé une opéra-  compiler, after the publisher has completed an operation tion d'entrée ou de modification du code d'origine.  entry or modification of the original code. 17 Un système d'ordinateur selon la revendication 16, ca-  17 A computer system according to claim 16, ca- ractérisé en ce qu'il comporte des moyens pour identifier un  characterized in that it includes means for identifying a point de pause du code d'origine, emplacement ou le compila-  pause point of the original code, location or the compa- teur doit s'arrêter jusqu'à ce que ladite identification ait été changée; et des moyens pour faire avancer le point de pause après qu'une quantité prédéterminée de nouveau code d'origine a été entrée de façon à permettre au compilateur  the author must stop until the said identification has been changed; and means for advancing the pause point after a predetermined amount of new origin code has been entered so as to allow the compiler de traiter le nouveau code d'origine.  to process the new original code. 18 Un système d'ordinateur selon la revendication 16, ca-  18 A computer system according to claim 16, ca- ractérisé en ce qu'il comporte des moyens pour ré-initiali-  characterized in that it includes means for re-initializing ser le compilateur après modification du code d'criginre,pro-  be the compiler after modifying the criginre code, pro- voquant ainsi la recompilation par le compilateur du code  thus mentioning the compiler recompilation of the code d'origine modifié.original modified. 19 Un système d'ordinateur selon la revendication 16, ca-  19 A computer system according to claim 16, ca- ractérisé en ce qu'il comporte un terminal ayant un clavier; et des moyens qui actionnent les moyens d'interruption en  characterized in that it comprises a terminal having a keyboard; and means which actuate the means of interruption in réponse à l'actionnement du clavier.  response to keyboard operation. 20 Un système d'ordinateur selon la revendication 19, ca-  20 A computer system according to claim 19, ractérisé en ce que l'éditeur comporte des moyens pour com-  characterized in that the editor includes means for mander l'importance de la partie du code d'origine traitée  to inform the importance of the part of the original code treated par le compilateur.by the compiler. 21 Un système d'ordinateur selon la revendication 20, ca-  21 A computer system according to claim 20, ca- ractérisé en ce que l'éditeur comporte des moyens pour com-  characterized in that the publisher includes means for mander la ré-initialisation du compilateur afin de provoquer  request the re-initialization of the compiler in order to cause la recompilation par ce dernier du code d'origine.  the latter's recompilation of the original code.
FR8315244A 1982-09-28 1983-09-26 COMPUTER SYSTEM WITH REAL-TIME COMPILATION Withdrawn FR2533721A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US42561282A 1982-09-28 1982-09-28

Publications (1)

Publication Number Publication Date
FR2533721A1 true FR2533721A1 (en) 1984-03-30

Family

ID=23687299

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8315244A Withdrawn FR2533721A1 (en) 1982-09-28 1983-09-26 COMPUTER SYSTEM WITH REAL-TIME COMPILATION

Country Status (2)

Country Link
FR (1) FR2533721A1 (en)
GB (1) GB2130406B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0194822A2 (en) * 1985-03-11 1986-09-17 Sony Corporation Methods of and apparatus for compiling high-level language statements into low-level language instruction sets
EP0406028A2 (en) * 1989-06-30 1991-01-02 Digital Equipment Corporation Incremental compiler for source code development system
US5325531A (en) * 1989-06-30 1994-06-28 Digital Equipment Corporation Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0275021A (en) * 1988-09-12 1990-03-14 Hitachi Ltd Source program editing system
US5261103A (en) * 1988-09-12 1993-11-09 Hitachi, Ltd. Method of and system for compiling source program
US6457172B1 (en) * 1999-04-13 2002-09-24 International Business Machines Corporation Compiler for supporting multiple runtime data representations
US8281288B1 (en) * 2011-10-20 2012-10-02 Google Inc. Integrated development environment with network-based compilation and sandboxed native machine-language capabilities

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 15, no. 8, janvier 1973, pages 2387-2388, New York, US; E. KELLERMAN: "Recognition of misspelled keywords" *
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 8, no. 4, septembre 1965, page 568, New York, US; K. MALING: "Executing programs while they are being loaded" *
PROCEEDINGS OF THE SPRING JOINT COMPUTER CONFERENCE, Washington, 1967, pages 547-552, US; L. BOLLIET et al.: "DIAMAG: a multi-access system for on-line Algol programming" *
SOFTWARE PRACTICE AND EXPERIENCE, vol. 11, 1981, pages 819-829, John Wiley & Sons, Ltd, New York, US; L.V. ATKINSON et al.: "COPAS - a conversational Pascal system" *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0194822A2 (en) * 1985-03-11 1986-09-17 Sony Corporation Methods of and apparatus for compiling high-level language statements into low-level language instruction sets
EP0194822A3 (en) * 1985-03-11 1989-03-15 Sony Corporation Methods of and apparatus for compiling high-level language statements into low-level language instruction sets
EP0406028A2 (en) * 1989-06-30 1991-01-02 Digital Equipment Corporation Incremental compiler for source code development system
EP0406028A3 (en) * 1989-06-30 1993-01-07 Digital Equipment Corporation Incremental compiler for source code development system
US5325531A (en) * 1989-06-30 1994-06-28 Digital Equipment Corporation Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines

Also Published As

Publication number Publication date
GB2130406A (en) 1984-05-31
GB2130406B (en) 1986-11-26
GB8323914D0 (en) 1983-10-12

Similar Documents

Publication Publication Date Title
CN1838088B (en) Method of instrumenting code having restrictive calling conventions
US6532401B2 (en) Methods for automatically verifying the performance of a virtual robot
US10409564B2 (en) Recording and playback of development sessions
Bromley et al. Lisp Lore: A Guide to Programming the Lisp Machine
Pooley An introduction to programming in SIMULA
US6904563B2 (en) Editing platforms for remote user interface translation
JPH09198276A (en) Program debugging system
Ladd et al. Programming the Web: An application-oriented language for hypermedia service programming
Matloff et al. The art of debugging with GDB, DDD, and Eclipse
KR20040063837A (en) Method and system for recording macros in a language independent syntax
Canou et al. Scaling up functional programming education: under the hood of the OCaml MOOC
FR2533721A1 (en) COMPUTER SYSTEM WITH REAL-TIME COMPILATION
US5379407A (en) Error handling in a state-free system
Horton et al. Android: Game Programming
Pelc Programming Forth
Epstein Lingo in a Nutshell
EP0481012A1 (en) Computer operations recorder and training system
Rather et al. The FORTH approach to operating systems
Tanenbaum et al. The people's time sharing system
Érdi An Adventure in Symbolic Execution
Reiser BAIL
Shivers et al. Modular rollback through control logging: a pair of twin functional pearls
Messier Beginning Rust Programming
Liberty Sams Teach Yourself C++ in 10 Minutes
Arbuckle Daniel Arbuckle's Mastering Python

Legal Events

Date Code Title Description
ST Notification of lapse