DE69428247T2 - Betriebsmittelzuweisungsgerät - Google Patents

Betriebsmittelzuweisungsgerät

Info

Publication number
DE69428247T2
DE69428247T2 DE69428247T DE69428247T DE69428247T2 DE 69428247 T2 DE69428247 T2 DE 69428247T2 DE 69428247 T DE69428247 T DE 69428247T DE 69428247 T DE69428247 T DE 69428247T DE 69428247 T2 DE69428247 T2 DE 69428247T2
Authority
DE
Germany
Prior art keywords
resource
assignment
resource element
allocation
assignments
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.)
Expired - Fee Related
Application number
DE69428247T
Other languages
English (en)
Other versions
DE69428247D1 (de
Inventor
Junko Irimajiri
Akira Tanaka
Nobuki Tominaga
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of DE69428247D1 publication Critical patent/DE69428247D1/de
Publication of DE69428247T2 publication Critical patent/DE69428247T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/441Register allocation; Assignment of physical memory space to logical memory space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

Landscapes

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

Description

    HINTERGRUND DER ERFINDUNG Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf ein Betriebsmittelzuweisungsgerät, das die Variablen in einem Programm den Betriebsmitteln, wie etwa Registern und einem Speicher, die von einem Kompiler verwendet werden sollen, zuweist, wenn ein Programm, das in einer höheren Sprache geschrieben ist, in die Maschinensprache kompiliert wird.
  • Beschreibung des Standes der Technik
  • In den vergangenen Jahren gab es viele Verbesserungen bei der Effizienz der Programmentwicklung durch Schreiben von Programmen in einer höheren Programmiersprache, wie etwa der C-Sprache.
  • Durch Verwendung einer Programmiersprache kann der Programmierer Vorgänge, wie etwadas Speichern, die Operation und die Übertragung von numerischen Werten als Operationen (Schritte) ausdrücken, wobei die Variablen als Operationszeichen verwendet werden. Da diese Variablen willkürlich durch den Programmierer definiert werden und die notwendigen Ziffern und Zeichen beinhalten, kann der Operator das Programm frei beschreiben. Wenn sie kompiliert sind, werden diese beschriebenen Programme (bekannt als Quellprogramme) zu Maschinenspracheprogrammen, die vom Computer verstanden werden können. Operationen in derartigen Maschinenspracheprogrammen werden als Maschinensprache-Anweisungen ausgedrückt, und da diese Maschinensprache-Anweisungen die Register und den Speicher als Operationszeichen verwenden, wird es erforderlich, die oben beschriebenen Variablen den Registern und dem Speicher zuzuweisen. Dieser Zuweisungsvorgang ist als Betriebsmittel-Zuweisungsvorgang bekannt.
  • Bevor der Betriebsmittel-Zuweisungsvorgang des Standes der Technik beschrieben wird, werden einige verwendete Begriffe erläutert.
  • Lebendigkeitsbereich
  • Der Lebendigkeitsbereich bezeichnet im weitesten Sinn den Bereich, für den der Speicherwert der Variablen gültig ist, während er in seinem engeren Sinn den Bereich des Programms vom Schritt, bei dem die Werte in die Variable eingesetzt werden, bis zu dem Schritt bezeichnet, bei dem diese eingesetzten Werte verwendet werden.
  • Fig. 1A und 1B zeigen ein Beispiel eines Quellprogramms und die entsprechenden Lebendigkeitsbereiche. Die Lebendigkeitsbereiche sind durch die Linien s1, s2 und s3 in Fig. 1B dargestellt. Der Definitionsschritt und der abschließende Verwendungsschritt, die oben erwähnt wurden, sind als Start- bzw. Endpunkt bekannt, und werden in der Zeichnung durch die Punkte p1, p2, p3, p4, p5 etc. ausgedrückt. In Fig. 1B gibt es zwei Startpunkte für jede der Variablen c und d, dies jedoch, weil die Variablen c und d hinsichtlich der beiden Vorgänge p1 und p2 beim Entscheidungsstatement definiert sind, sofern (b> = 10) {Vorgang p1} sonst {Vorgang p2} ist.
  • Zuweisung
  • Die Zuweisung von Betriebsmitteln kann einfach das Aufnehmen einer Variablen sein, aber da die Zuweisung für unterschiedliche separate Betriebsmittelelemente für jeden entsprechenden Lebendigkeitsbereich erfolgen kann, wenn es mehrere Lebendigkeitsbereiche für eine Variable gibt, nimmt diese Spezifikation eine Zuweisung als Kombination einer Variablen und eines Lebendigkeitsbereiches.
  • Prioritätswert
  • Dies ist der Parameter für die Festlegung der Reihenfolge der Betriebsmittelzuweisung. Die folgenden Aspekte des Programms für jede Zuweisung, die Bewegungshäufigkeit, der Schleifen- Verschachtelungstiefenwert der Schleifenvorgänge, die Lebendigkeitsbereiche und Kombinationen derselben, sind im Prioritätswert enthalten.
  • Ein Beispiel einer Prioritätswertberechnung auf der Basis der Bewegungshäufigkeit ist im folgenden als {Numerische Gleichung 1} gegeben.
  • {Numerische Gleichung 1}
  • Prioritätswert = Bewegungshäufigkeit = (Zahl von def + Zahl von use)/Länge des Lebendigkeitsbereiches.
  • [def] und [use] beziehen sich hier jeweils auf den Schritt, durch den ein Wert in die Zuweisung eingesetzt wird, und auf den Schritt, durch den dieser eingesetzte Wert verwendet wird. Der Schleifen-Verschachtelungstiefenwert eines Schleifenvorgangs kann ebenfalls bei dieser Berechnung des Prioritätswertes verwendet werden. Wenn es andere Zuweisungen gibt, deren Lebendigkeitsbereiche sich überlagern, dann können zudem andere Zuweisungszahlen beim Berechnen des Zuweisungs-Prioritätswertes verwendet werden.
  • Betriebsmittelelement
  • Dies bezieht sich auf die kleinste Einheit unter den Elementen in der Computer-Hardware, denen eine Zuweisung zugewiesen werden kann. Speicher zum vorübergehenden Speichern eines Wertes, einzelne Register und Speicherelemente einer einzelnen Adresse im Speicher sind allesamt Beispiele dafür. Das 0-Register, das 1-Register der Speicher bei Adresse 10 und der Speicher bei Adresse 101 sind allesamt unterschiedliche Betriebsmittelelemente.
  • Betriebsmittel
  • Dies bezeichnet eine Gruppe von Betriebsmittelelementen, die dieselbe Funktion ausführen. Betriebsmittel bestehen beispielsweise aus einem Speicher und Registern. Register können in Adreßregister, Datenregister, Globalregister und Lokalregister unterteilt sein, die allesamt eine gegebene Funktion ausüben. Darüber hinaus kann der Speicher hinsichtlich der Erfüllung der Funktionen eines Hochgeschwindigkeitsspeichers und eines Niedrgiggeschwindigkeitsspeichers unterteilt sein. Wenn es möglich ist, die Betriebsmittelelemente auf diese Weise in Gruppen zu unterteilen, die dieselbe Funktion ausführen, dann wird jede dieser Unterteilungen zu einem Betriebsmittel.
  • Überlagerungskurve
  • Die Überlagerungskurve ist eine Kurve, um bildlich die Überlagerung zwischen den Lebendigkeitsbereichen von zwei oder mehr Zuweisungen darzustellen. Bei der Überlagerungskurve bilden die Zuweisungen die Scheitelpunkte, und sie stellt die Zuweisungen, bei denen sich die Lebendigkeitsbereiche überlagern, als an ihren Rändern verbunden dar.
  • Grad des Scheitelpunktes
  • Die Zahl der Ränder, die in einem Scheitelpunkt in der Überlagerungskurve zusammenlaufen.
  • Fig. 2 zeigt einen Aufbau eines Kompilers. Dieser Kompiler besteht aus einer Syntax-Analyseeinrichtung 21, einer Optimierungseinrichtung 22, einer Betriebsmittel-Zuweisungseinrichtung 23 und einer Kodeerzeugungseinrichtung 24. Das folgende ist eine Beschreibung der verschiedenen Bestandteile dieses Kompilers unter Bezugnahme auf den Aufbau in Fig. 2 und auf die Tabellen in Fig. 3A, 3B und 3C.
  • Die Syntax-Analyseeinrichtung 21 führt die Lexikalanalyse, die Syntaxanalyse und die Bedeutungsanalyse für das Quellprogramm aus, das als Datei in der Speichereinrichtung (in der Zeichnung nicht gezeigt) gespeichert ist, und konvertiert das Quellprogramm in ein Zwischenspracheprogramm.
  • Die Optimierungseinrichtung 22 führt die Optimierung des Zwischenspracheprogramms mit dem Ziel aus, die Programmgröße und die Prozeßausführungszeit zu minimieren, wenn abschließend das Maschinenspracheprogramm erzeugt wird. Da die Details dieser Optimierung nicht der Hauptbestandteil dieser Erfindung sind, wurde auf diese verzichtet und lediglich die Aspekte erläutert, die sich im besonderen auf die Betriebsmittelzuweisung beziehen. Der Optimierungsbetrieb beinhaltet einen Basisblock-Konvertierungsvorgang, eine Steuerflußanalyse und eine Datenflußanalyse. Die Basisblockkonvertierung bezieht sich auf die Teile des Programms, die zu einem Basisblock verarbeitet werden sollen.
  • Dies ist eine vereinfachte Erläuterung dieses Teilungsvorgangs. Zunächst bezieht sich die Optimierungseinrichtung 22 auf den ersten Schritt im Zwischenspracheprogramm, auf Schritte mit einer Richtung, die entweder durch einen nicht bedingten oder einen bedingten Sprung gegeben ist, und auf Schritte, die direkt auf einen nicht bedingten oder einen bedingten Sprung folgen, und sieht diese als Führungselemente an. Anschließend extrahiert die Optimierungseinrichtung 22 alle Programmierungsschritte, beginnend beim ersten Führungselement, und fährt bis zur ersten Zeile vor dem nächsten Führungselement oder bis zum Programmende fort. Die Gruppe von Anweisungen, die man durch diesen Extraktionsvorgang erhält, ist als Basisblock bekannt und wird zur Einheit der folgenden Vorgänge.
  • Die Steuerflußanalyse analysiert den Steuerfluß innerhalb des Basisblocks. Die Datenflußanalyse analysiert, wo jede Variable substituiert wurde und wo jede Variable innerhalb eines separaten Blocks verwendet wurde. Unter Bezugnahme auf die Ergebnisses dieser Analysen erhält man die Lebendigkeitsbereiche der Variablen.
  • Die Betriebsmittel-Zuweisungseinrichtung 23 ist ein Algorithmus zum Zuweisen der Betriebsmittel, der die Register und den Speicher den Zuweisungen im Zwischenspracheprogramm unter Anwendung eines Kurvenfärbungsverfahrens mit Hilfe einer Kurvendegeneration zuweist. Das Kurvenfärbungsverfahren mit Hilfe der Kurvendegeneration ist ein Algorithmus, der die Klassifizierung jedes Scheitels in der Überlagerungskurve mit etwa der geringsten Zahl von Farben gemäß dem Prinzip ausführt, daß bei der Farbklassifizierung jeder Scheitelpunkt, der mit dem Rand verbunden ist, in einer anderen Farbe gezeichnet wird. Die Zuweisungen im Programm, die in Fig. 3A gezeigt sind, werden den Betriebsmittelelementen durch den Betriebsmittel-Zuweisungsvorgang zugewiesen, der in Fig. 3B gezeigt ist. In diesen Zeichnungen ist die Zuweisung a aus Fig. 3A als dem Betriebsmittelelement R0 zugewiesen dargestellt, während die Zuweisung b2 als dem Betriebsmittelelement R2 zugewiesen dargestellt ist.
  • Die Kodeerzeugungseinrichtung 24 führt die Maschinenspracheanweisungs-Umwandlung für jeden Schritt im Programm in dessen Zwischensprachezustand aus, der in Fig. 3A gezeigt ist, und konvertiert dieses Programm in einem Zwischensprachezustand in ein Maschinenspracheprogramm (gezeigt in Fig. 3C), das von der betreffenden Maschine verstanden werden kann. Das Maschinenkodeprogramm, das das Ergebnis dieser Umwandlung durch die Kodeerzeugungseinrichtung 24 ist, wird das Zielprogramm genannt. Die Maschinenspracheanweisungen in diesem Zielprogramm und die entsprechenden Anweisungen im Programm von Fig. 3A sind durch die Symbole (1), (2), (3), (4) etc. dargestellt. Bei der oben erwähnten Maschinenspracheanweisungs-Umwandlung werden die Betriebsmittelzuweisungsergebnisse, die in Fig. 3B gezeigt sind, als Maschinensprache-Anweisungsoperationszeichen verwendet. Zudem werden die Übertragungsanweisungen x11, x12, x13, x14, x15, etc. in der Zeichnung durch die Kodeerzeugungseinrichtung 24 erzeugt, so daß die Verarbeitung jedes Schrittes im Programm, gezeigt in Fig. 3A, als Maschinenspracheanweisungen realisiert werden kann. In Abhängigkeit der Ergebnisse der Betriebsmittelzuweisung kann es zudem vorkommen, daß einige dieser Übertragungsanweisungen unwichtig werden. Da in Fig. 3C bei (7) die Zuweisungen b2 und c beide demselben Register zugewiesen sind, ist dies ein Beispiel, bei dem die Übertragungsanweisungs-Erzeugung unwichtig wird.
  • Nun folgt eine Erläuterung der Betriebsmittel-Zuweisungseinrichtung 23. Die Details des Betriebsmittel-Zuweisungsvorgangs unter Anwendung des oben erwähnten Kurvenfärbungsverfahrens sind in den folgenden Druckschriften beschrieben.
  • [1] A. V. Aho, R. Sethi, J. D. Ullman; "Compilers Principles, Techniques and Tools" Addison-Wesley, 1986
  • [2] Chaitin..; "Register allocation and spilling via graph coloring", proceeding of the ACM Symposium on Compiler Construction (June 1982), 98-105.
  • [3] Chaitin..; "Register allocation and spilling via graph coloring", US-Patent, pat. num. 4.571.678, 18. Februar 1986.
  • [4] FredericLChow, John Hennessy; "Register Alfocation by Priority-based Coloring", Computer Systems Laboratory, Sfanford University.
  • [5] David Bernstein, ... Ron Y. Pinter; "Spill code minimization techniques of optimizing compilers", SIGPLAN 1989, IBM Israel Science and Technology Technion City Haifa, Israel.
  • [6] Masataka Sasa; "Programming Gengo Shorikei", Register Assignment p 420-p 423, Iwanami Books.
  • Der Aufbau der zuvor erwähnten Betriebsmittel-Zuweisungseinrichtung 23 ist in Fig. 4 gezeigt. Wie in Fig. 4 gezeigt, besteht die Betriebsmittel-Zuweisungseinrichtung 23 aus einer Zuweisungs-Erzeugungseinheit 41 zum Erzeugen der Zuweisungen in Übereinstimmung mit den Prozeßergebnissen der Optimierungseinrichtung 22, einer Zuweisungs-Speichereinheit 42 zum Speichern der Zuweisungen, die durch die Zuweisungs-Erzeugungseinheit 41 erzeugt werden, einer Prioritätswert-Berechnungseinrichtung 43 zum Berechnen mit Hilfe der oben gegebenen Gleichung {Numerische Gleichung 1} und Speichern des Prioritätswertes jeder Zuweisung, die in der Zuweisungs-Speichereinheit 42 gespeichert ist, einer Lebendigkeitsbereich-Informations- Speichereinheit 44 zum Speichern der Informationen über die Lebendigkeitsbereiche, wie in Fig. 1B gezeigt, für jede Zuweisung und der Informationen, wie sich diese Lebendigkeitsbereiche überlagern, einer Expansionseinheit 45 zum Expandieren aller Zuweisungen, die in der Speichereinheit 42 in der Überlagerungskurve gespeichert sind, einem Puffer 46 für die Expansion durch die Expansionseinheit 45, einem Registerstapel 47 zum Stapeln aller Zuweisungen, sobald diese durch die Expansionseinheit 45 expandiert wurden, einer Steuereinheit 40 zum Ausführen der Betriebsmittelzuweisungen mit Hilfe des oben beschriebenen Kurvenfärbungsverfahrens in Übereinstimmung mit der Kurvendegeneration, und einer Speichereinheit 48 zum Speichern der Zuweisungsergebnisse in der Gestalt, die in Fig. 3B gezeigt ist.
  • Fig. 5A, 5B und 6A bis 61 sind Erläuterungstabellen für die Veranschaulichung des Kurvenfärbungsverfahrens gemäß der Kurvendegeneration. Nun folgt die Beschreibung des Betriebsablaufes des Betriebsmittel-Zuweisungsgerätes 23 unter Bezugnahme auf diese Zeichnungen. Die Zahl der Register, für die eine Zuweisung möglich ist, ist mit 3 vorgegeben, wobei die Zuweisungen, die diesen Registern nicht zugewiesen werden können, dem Speicher zugewiesen werden.
  • Die zuvor beschriebene Expansionseinheit 45 drückt die Zuweisungen, die in Fig. 3A gezeigt sind, und die zwischen den Lebendigkeitsbereichen zwischen diesen Zuweisungen in der Überlagerungskurve aus, wie es in Fig. 5A gezeigt ist. Bei dieser Art von Überlagerungskurve ist das Ausmaß, in dem jede Zuweisung den Lebendigkeitsbereich anderer Zuweisungen überlagert, als Scheitelgrad dargestellt. Zudem kombiniert, wie es in Fig. 1B gezeigt ist, wenn der Startpunkt und der Endpunkt der Lebendigkeitsbereiche in einem Schritt dieselben sind (die Zuweisungen b2 und c in Fig. 1B), um sie als eine Zuweisung zu betrachten, die Steuereinheit 40 die entsprechenden Scheitel, wie es in Fig. 5B gezeigt ist, wodurch die Überlagerungskunre vereinfacht wird. Nach Ausführung der Vereinfachung wird die Modulation der Scheitel durchgeführt. Der Scheitelgrad wird als niedrig für Scheitel unter 3 Registern bezeichnet, und als hoch für Scheitel mit 3 oder mehr Registern. Diese Modulation des Grades wird als Ausbildungsbedingung bei der Kurvendegeneration verwendet. Die Kurvendegeneration wird, wie mit den Pfeilen y11, y12 gezeigt, derart ausgeführt, daß die Scheitel mit einem geringen Grad in der Reihenfolge des Prioritätswertes, wie er mit der {Numerischen Gleichung 1} berechnet wird, vom niedrigsten zum höchsten Prioritätswert entfernt werden, wobei die Zuweisung der entfernten Scheitel die Stapelung im Stapelbereich in der Zuletzt-Ein-, Zuerst-Aus-Reihenfolge ist und das Ergebnis der Entfernung von e2 und d und die Transformation der Überlagerungskurven, die in Fig. 5B und 6A gezeigt sind, in Fig. 6B dargestellt sind.
  • Da alle Scheitel in Fig. 6B einen hohen Grad haben, ist die oben beschriebene Ausbildungsbedingung nicht erfüllt. Somit wird aus diesen Scheiteln die Zuweisung, die über den geringsten Prioritätswert b1 verfügt, dem Speicher zugewiesen und entfernt, wie es mit dem Pfeil y13 gezeigt ist. Durch Entfernen von b1 wird die Überlagerungskurve derart transformiert, daß sie jener aus Fig. 6C gleicht, bei der wiederum die oben beschriebene Ausbildungsbedingung erfüllt ist. Die Kurvendegeneration wird erneut für den Zustand in Fig. 6C ausgeführt, wobei alle Zuweisungen im Registerstapel gestapelt werden, wie es in Fig. 6D gezeigt ist. Nachdem dieser Stapelvorgang ausgeführt worden ist, wird der Betriebsmittel-Zuweisungsvorgang ausgeführt. Zunächst wird, wie in Fig. 6E gezeigt, die Zuweisung a dem Register R0 zugewiesen. Als nächstes werden, wie in Fig. 6F und 6 G gezeigt, die Zuweisungen e1 und b2c den Registern R1 und R2 zugewiesen. Die folgenden Zuweisungen e2 und d überlagern den Lebendigkeitsbereich b2c, aber da sie die Lebendigkeitsbereiche der Zuweisungen a und e1 nicht überlagern, wird e2 dem Register mit der niedrigsten Nummer R0 zugewiesen, für den eine Zuweisung möglich ist, wie es in Fig. 6H gezeigt ist, während die Zuweisung d dem Register R1 zugewiesen wird, wie es in Fig. 61 dargestellt ist. Mit Hilfe dieses Zuweisungsvorgangs können Gruppen von Zuweisungen, deren Lebendigkeitsbereiche einander überlagern, unterschiedlichen Registern zugewiesen werden.
  • Die oben erwähnten Zuweisungen a, b2, c, d, e1, e2 und b1 werden allesamt den Betriebsmittelelementen durch den Betriebsmittel-Zuweisungsvorgang zugewiesen, aber für höhere Programmiersprachen, wie etwa der C-Sprache, gibt es Register, für die die Kombination mit Zuweisungen bereits entscheiden ist. Diese werden verwendet, um die Effizienz von Funktionsaufrufoperationen zu verbessern, und sind als Argument-Register, Rückkehrwert-Register und Bruchregister bekannt.
  • Argument-Register sind Register zum Transferieren von Argumenten, wenn es einen Funktionsaufruf gibt. Zuweisungen, die als Argumente im Quellprogramm verwendet werden, werden diesen Argument-Registern zugewiesen.
  • Rückkehrwert-Register sind Register zum Zurückgeben des Rückgabewertes des Funktionsaufrufes. Zuweisungen, die für die Rückgabe des Rückgabewertes im Quellprogramm verwendet werden, werden diesen Rückkehrwert-Registern zugeordnet.
  • Bruchregister sind Register zum Zuweisen der Zuweisungen, für die es nicht erforderlich ist, die Speicherwerte am Anfang und am Ende des Funktionsaufrufs zu sichern und wiederherzustellen. Aufgabe dieser Bruchregister ist die Routinelauf-Reduktion für den Funktionsaufruf. Wenn ein obiger Funktionsaufruf ausgeführt wird, gibt es gemäß dem Vorgang innerhalb der aufgerufenen Funktion die Möglichkeit, daß der Inhalt jedes Speichers geändert wird, und daß es vor oder nach dem Funktionsaufruf notwendig ist, den Inhalt der Register zu sichern oder wiederherzustellen. Da jedoch diese Sicherungs- und Wiederherstellfunktion für jeden Register die Routineläufe des Funktionsaufrufs vergrößern werden, können dann durch vorheriges Einstellen der Bruchregister, für die Sichern und Wiederherstellen nicht notwendig ist, und Zuweisen der Zuweisungen, für die es inkonsequent ist, ob der Speicherwert zu den Bruchregistern geändert wird, die Sicherungs- und Wiederherstellvorgänge rationalisiert werden.
  • Bei den Betriebsmittel-Zuweisungsgeräten, die gemäß dem Stand der Technik aufgebaut sind, gab es jedoch das Problem, daß die Betriebsmittelzuordnung, die Ausführungszeit und die Speichergröße des Objektprogramms verlängern kann.
  • Der Kern dieses Problems bestand darin, daß die Ergebnisse des Zuweisungsvorgangs den Prioritätswert der Zuweisungen nicht korrekt wiedergegeben haben. Damit die Zahl der def- und use-Anweisungen und der Schleifen-Verschachtelungstiefenpegel ordnungsgemäß im Prioritätswert wiedergegeben werden, ist es wünschenswert, daß hohe Prioritätswert-Zuweisungen den Registern zugewiesen werden. Mit einer Zuweisung a des niedrigsten Grades aber dem höchsten Prioritätswert und einer Zuweisung b des höchsten Grades aber dem niedrigsten Prioritätswert als ein kombinierter einzelner Scheitel für die Zuweisung ab, ist jedoch durch Berechnen des Prioritätswertes gemäß (def-Zahl + use-Zahl)/Länge des Lebendigkeitsbereiches für diesen kombinierten Scheitel für die Zuweisung ab zu erkennen, daß der Prioritätswert einen Mittelwert haben wird und der Grad der größte sein wird, was bedeutet, daß die Zuweisung ab eine Zuweisung werden kann, die zwangsweise entfernt wird. Durch zwangsweises Entfernen von ab wird die Zuweisung des höchsten Prioritätswertes a, der dem ersten Register zugewiesen werden sollte, schließlich dem Speicher zugewiesen. Wenn eine hohe Prioritätswert-Zuweisung dem Speicher zugewiesen wird, werden die Schritte, die diese Zuweisungen als Operationszeichen verwenden, allesamt in Maschinensprache-Anweisungen geändert, die den Speicher als Operationszeichen verwenden. Operationszeichen, die als Maschinensprache-Speicheranweisungen verwendet werden, verfügen normalerweise über eine geringe Betriebsgeschwindigkeit und nehmen einen großen Teil des Speicherplatzes in Anspruch, wodurch die Ausführungszeit und die Speichergröße des Zielprogramms vergrößert werden.
  • Wenn die Betriebsmittel in drei oder mehr Funktionen zerlegt werden, gibt es zudem das Problem, daß die Betriebsmittelzuweisung nicht in Übereinstimmung mit den Funktionen der Betriebsmittel erreicht werden kann.
  • Bei einer betreffenden Maschine, die beispielsweise versucht, die Betriebsmittelzuweisung auszuführen, gibt es eine gleiche Zahl von Datenregistern und Adreßregistern. Beim Stand der Technik wird die Zuweisung lediglich in Register und einen Speicher unterteilt, der nur dann verwendet wird, wenn es eine ungenügende Zahl von Registern gibt, so daß diese zweite Gruppe von Registern, die Adreßregister, nicht verwendet werden können. Das bedeutet, beim Stand der Technik ist die Ausführung der Betriebsmittelzuweisung unvollständig, wenn mehrere Arten von Betriebsmitteln berücksichtigt werden.
  • Zudem gab es das Problem, daß es nicht möglich ist, eine Betriebsmittelzuweisung unter Verwendung der Speicherwerte der Argument-Register, der Rückkehrwert-Register und der Bruchregister in ihrem Ursprungszustand auszuführen. Diese Register sind normalerweise derart eingestellt, daß Funktionsaufrufe effizient ausgeführt werden können.
  • Das Kurvenfärbungsverfahren ist ein Näherungsalgorithmus zum Ausführen der am besten geeigneten Farbklassifikation der Scheitel in der Überlagerungskurve. Da die Argument-Register, die Rückkehrwert-Register und die Bruchregister Betriebsmittelelemente sind, denen Zuweisungen vor der Ausführung des Algorithmus zugewiesen werden, werden diese Register als gefärbte Scheitelpunkte in der Überlagerungskurve erachtet. Um eine Betriebsmittelzuweisung zu realisieren, die die Speicherwerte der Argument-Register, der Rückkehrwert-Register und der Bruchregister in ihrem Ursprungszustand verwenden kann, wird es notwendig, die gefärbten Scheitel in die Überlagerungskurve einzubauen und einen Färbungsvorgang auszuführen, der diese Farbe für andere Scheitel verwendet, wenn sie gültig ist, wobei dies von den Grenzen des Kurvenfärbungsverfahrens abweicht. Aus dem oben genannten Grund ist es normalerweise notwendig, die Argument-Register, die Rückkehrwert-Register und die Bruchregister als zuweisbare Register derart getrennt vorzubereiten, daß diese verwendet werden können. Somit wird für die Verwendung der Speicherwerte in den Argument-Registern, den Rückkehrwert-Registern und den Bruchregistern eine Übertragungsanweisung für eine zuweisbare Speicherverwendung notwendig. Wenn diese Art der Übertragungsanweisung nötig wird, vergrößern sich die notwendige Speichergröße und die Ausführungszeit des Zielprogramms in dem Maß, das durch diese Anweisung in Anspruch genommen wird.
  • Die Auswirkungen der zuvor erwähnten Probleme können als vernachlässigbar betrachtet werden, wenn es eine ausreichende Versorgung der Register gibt. Wenn es jedoch nur eine begrenzte Anzahl von Registern gibt, wie etwa bei eingebauten Mikroprozessoren, oder wenn es eine geringe Zahl von Speichern mehrerer unterschiedlicher Arten gibt, die unterschiedliche Funktionen erfüllen, gewinnen die Auswirkungen dieser Probleme an Bedeutung.
  • Ein herkömmliches Betriebsmittel-Zuweisungsgerät, das von einem Kompiler verwendet wird, ist in ACM Transactions On Programming Languages and Systems, Vol. 12, No. 4 vom 1 Okober 1990, Seite 501-536 beschrieben. Der Kompiler kompiliert Programme, die in einer höheren Sprache geschrieben sind, zu Programmen, die in Maschinensprache geschrieben sind, um Zuweisungen zuzuweisen, die eine Paarung von Variablen und Lebendigkeitsbereichen in einem Programm sind, um die Betriebsmittelelemente zu trennen, die die Betriebsmittel bilden, die nach Funktionen unterteilt sind, wie etwa Register und Speicher, gemäß einem Prioritätswert der Zuweisung. Wenn jedoch der Zuweisungsvorgang kompliziert wird, erfordert dies zusätzliche Betriebsmittel, die entweder nicht verfügbar oder mit höheren Kosten verbunden sind.
  • ÜBERSICHT ÜBER DIE ERFINDUNG
  • Ein erstes Ziel der vorliegenden Erfindung besteht darin, ein Betriebsmittel-Zuweisungsgerät anzugeben, das in der Lage ist, Zuweisungen den Betriebsmittelelementen in der Reihenfolge der Prioritätsklasse zuzuweisen und durch größtmögliche Begrenzung der Erzeugung von Übertragungsanweisungen die Speichergröße sowie die Ausführungszeit soweit wie möglich zu begrenzen, die vom betreffenden Programm beansprucht wird.
  • Ein zweites Ziel der vorliegenden Erfindung ist es, ein Betriebsmittel-Zuweisungsgerät anzugeben, das Betriebsmittel verwenden kann, die sich durch die Funktionen unterscheiden, die sie ausführen, wenn es zwei oder mehrere Arten von Betriebsmitteln gibt.
  • Drittes Ziel der vorliegenden Erfindung ist es, ein Betriebsmittel-Zuweisungsgerät anzugeben, das den notwendigen Umfang von erzeugten Übertragungen minimieren kann.
  • In Übereinstimmung mit der vorliegenden Erfindung, die das erste Ziel erfüllt, wird ein Betriebsmittel-Zuweisungsgerät angegeben, das von einem Kompiler verwendet wird, der Programme, die in einer höheren Programmiersprache geschrieben sind, zu Programmen kompiliert, die in Maschinensprache geschrieben sind, zum Zuweisen von Zuweisungen, die eine Paarbildung von Variablen und Lebendigkeitsbereichen in einem Programm sind, um Betriebsmittelelemente zu trennen, die Betriebsmittel bilden, unterteiltentsprechend der Funktion, wie etwa Register und Speicher, gemäß einem Prioritätswert der Zuweisung, dadurch gekennzeichnet, daß das Gerät enthält: eine Zuweisungs-Speichereinrichtung zum Speichern der Zuweisungen in einem Programm und deren Prioritätswerte; eine erste Betriebsmittelelement-Zuweisungseinrichtung zum entnehmen einer Zuweisung mit einem höchsten Prioritätswert aus der Zuweisungsspeichereinrichtung und um die Zuweisung mit dem höchsten Prioritätswert einem Betriebsmittelelement zuzuweisen; eine Zuweisungsergebnis-Speichereinrichtung zum Speichern von Zuweisungsergebnissen; eine Zuweisungs-Auffindeeinrichtung, um aus der Zuweisungsspeichereinrichtung eine Zuweisung aufzufinden, die den nächsten höchsten Prioritätswert nach einem Prioritätswert einer Zuweisung hat, die gerade zugewiesen worden ist; eine Beeinflussungszuweisungs-Extraktionseinrichtung zum Extrahieren von Zuweisungen, deren Lebendigkeitsbereiche einen Lebendigkeitsbereich der Zuweisung beeinflussen, die durch die Zuweisungs-Auffindeeinrichtung aufgefunden wurde; eine Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung zum Ermitteln ob es Betriebsmittelelemente von Betriebsmittelelementen gibt, die dieselbe Funktion ausführen wie jedes der Betriebsmittelelemente, denen die Zuweisungen, die durch die Beeinflussungszuweisungs-Extraktionseinrichtung extrahiert wurden, durch Bezugnahme auf die Zuweisungsergebnis-Speichereinrichtung zugewiesen wurden; eine Kohärentzuweisungs-Auffindeeinrichtung zum Auffinden von Zuweisungen für die durch Bezugnahme auf den Startpunkt und den Endpunkt des Lebendigkeitsbereiches ein Startpunkt mit dem Endpunkt der Zuweisung zusammenfällt, die durch die Zuweisungs-Auffindeeinrichtung aufgefunden wurde, und von Zuweisungen, für die ein Endpunkt mit dem Startpunkt der Zuweisung zusammenfällt, die durch die Zuweisungs-Auffindeeinrichtung aufgefunden wurde; eine Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung zum Ermitteln der Betriebsmittelelemente, denen die Zuweisungen, die durch die Kohärentzuweisungs-Auffindeeinrichtung aufgefunden wurden, zugewiesen wurden, indem auf die Zuweisungsergebnis-Speichereinrichtung Bezug genommen wird; eine zweite Betriebsmittelelement-Zuweisungseinrichtung um, wenn es nur ein Betriebsmittelelement gibt, das durch die Demselben-Betriebsmittel-verbleibendes- Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurde, die Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung aufgefunden wurde, zuzuweisen; um die Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung aufgenommen wurde, einem Betriebsmittelelement zuzuweisen, das das Ermittlungsergebnis derselben Demselben-Betriebsmittel-verbleibendes- Betriebsmittelelement-Ermittlungseinrichtung und darüber hinaus das Ermittlungsergebnis der Nachfolge-Betriebsmittelelement-Zuweisungseinrichtung ist, wenn es mehrere Betriebsmittelelemente gibt, die durch dieselbe Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement- Ermittlungseinrichtung ermittelt wurden, und ein Betriebsmittelelement existiert, das durch die Nachfolge-Betriebsmitteielement-Ermittlungseinrichtung ermittelt wurde, und um die Zuweisungsergebnisse in der Zuweisungsergebnis-Speichereinrichtung zu speichern; sowie eine Steuereinrichtung, um die Zuweisungs-Auffindeeinrichtung wiederholt zu aktivieren, bis alle der Zuweisungen zugewiesen wurden.
  • Das zweite Ziel der vorliegenden Erfindung kann durch das Betriebsmittel-Zuweisungsgerät erreicht werden, das weiterhin enthält: eine Kosten-Speichereinrichtung, um für jedes Betriebsmittel die Kosten zu speichern, die die Kodegröße und/oder die Ausführungszeit jeder Anweisung zeigen, die das Betriebsmittel in Anspruch nimmt; eine Kosten-Ermittlungseinrichtung, um die Kosten für jedes Betriebsmittel durch Bezugnahme auf die Kosten-Speichereinrichtung für jede Anweisung in einem Programm zu ermitteln, die im Lebendigkeitsbereich einer Variablen in einer Zuweisung verwendet wird; eine Kosten-Summiereinrichtung, um die durch die Kosten- Ermittlungseinrichtung ermittelten Kosten jeder Zuweisung für jedes Betriebsmittel zu summieren; und eine Prioritätswert-Berechnungseinrichtung zum Berechnen des Prioritätswertes auf der Basis des Kostengesamtwertes, der für jede der Zuweisungen und die Lebendigkeitsbereiche der unterschiedlichen Zuweisungen berechnet wurde.
  • Das Betriebsmittel-Zuweisungsgerät kann weiterhin enthalten: eine Betriebsmittel-Klassifizierungs-Zuweisungs-Zuführeinrichtung, um sämtliche Zuweisungen, die demselben Betriebsmittel zugewiesen werden können, der Zuweisungs-Speichereinrichtung zuzuführen, wobei die Betriebsmittel-Klassifizierungs-Zuweisungs-Zuführeinrichtung enthält: eine Betriebsmittel-Ermittlungseinrichtung, um zu ermitteln, welches Betriebsmittel die geringsten Gesamtkosten aller summierten Kosten für die unterschiedlichen Zuweisungen hat, die mit der Kosten-Summiereinrichtung berechnet wurden; eine Betriebsmittel-Klassifizierungsgruppen-Konvertiereinrichtung, um auf die unterschiedlichen Zuweisungen und die Betriebsmittel Bezug zu nehmen, die den Zuweisungen entsprechen, die durch die Betriebsmittel-Ermittlungseinrichtung ermittelt wurden, und um die Zuweisungen zu Gruppen zu konvertieren, wenn sie als dieselben Ermittlungsergebnisse habend erhalten wurden, um Betriebsmittel-Klassifizierungsgruppen zu bilden; eine Betriebsmittel-Klassifizierungsgruppen-Auswahleinrichtung, zum Auswählen einer Gruppe aus der Vielzahl der klassifizierten Gruppen, die durch die Betriebsmittel-Klassifizierungsgruppen- Konvertiereinrichtung ausgebildet werden; eine Betriebsmittel-Klassifizierungsgruppen-Schreibeinrichtung, um die Betriebsmittel-Klassifizierungsgruppe, die durch die Betriebsmittel-Klassifizierungsgruppen-Auswahleinrichtung ausgewählt wurde, in die Zuweisungs-Speichereinrichtung zu schreiben; und eine Steuereinrichtung, um eine Auswahl einer nächsten Betriebsmittel- Klassifizierungsgruppe anzuzeigen, wenn alle Zuweisungen, die in der Zuweisungs-Speichereinrichtung gespeichert sind, durch die Zuweisungs-Auffindeeinrichtung aufgenommen worden sind.
  • Das Betriebsmittel-Zuweisungsgerät kann weiterhin enthalten: eine Betriebsmittel-Klassifizierungsgruppen-Kostensummiereinrichtung, zum Summieren der gesamten Kostenwerte der Zuweisungen, die durch die Kosten-Summiereinrichtung gefunden wurden, für jede der Betriebsmittel-Klassifizierungsgruppen, die durch die Betriebsmittel-Klassifizierungsgruppen- Konverteiereinrichtung ausgebildet werden; wobei die Betriebsmittel-Klassifizierungsgruppen- Auswahleinrichtung eine Betriebsmittel-Klassifizierungsgruppe mit den höchsten Gesamtkosten, die durch Gruppenkosten-Summiereinrichtung summiert werden, aus noch nicht ausgewählten Betriebsmittel-Klassifizierungsgruppen auswählt.
  • Die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung kann weiterhin enthalten: eine erste Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung zum Ermitteln der Betriebsmittel-Klassifizierungsgruppe, zu der die Zuweisung gehört, die durch die Zuweisungs-Auffindeeinrichtung aufgefunden wird; eine zweite Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung, um, wenn allen Betriebsmittelelementen des Betriebsmittels, das der Betriebsmittelelement-Klassifizierungsgruppe entspricht, Zuweisungen zugewiesen sind, die durch die Beeinfiussungs-Zuweisungs-Extraktionseinrichtung aufgefunden wurden, die Betriebsmittel-Klassifizierungsgruppe für eine Zuweisung mit einer höheren Kostenwertsumme für die Zuweisung zu ermitteln als das erste ermittelte Betriebsmittel, darüber hinaus aber mit einem geringsten Gesamtkostenwert; und eine erste Übertragungseinrichtung, um, sobald die zweite Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung eine Betriebsmittel-Klassifizierungsgruppe ermittelt hat, eine Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung von der Betriebsmittel-Klassifizierungsgruppe aufgefunden wurde, die durch die erste Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung ermittelt wurde, zur Betriebsmittel-Klassifizierungsgruppe zu übertragen, die durch die zweite Betriebsmittel-Klassifizierungsgruppen- Ermittlungseinrichtung ermittelt wurde.
  • Die Kosten-Summiereinrichtung kann weiterhin enthalten: eine Schleifenverschachtelungs-Tiefenpegel-Auffindeeinrichtung zum Auffinden des Schleifenverschachtelungs-Tiefenpegels der Verschachtelungsvorgänge für die unterschiedlichen Anweisungen, die die Variable in einer Zuweisung verwenden; wobei die Kosten-Summiereinrichtung den Schleifenverschachtelungs- Tiefenpegel zu den Kosten addiert, die durch die Kosten-Auffindeeinrichtung aufgefunden werden.
  • In der oben beschriebenen Art und Weise kann die vorliegende Erfindung präzise unterscheiden, welchen Betriebsmitteln basierend auf den Kosten Betriebsmittelelement-Zuweisungen zugewiesen werden sollen, und kann die Betriebsmittelzuweisung derart ausführen, daß die speziellen Funktionen in bestimmten Betriebsmitteln in den Maschinensprache-Anweisungen wiedergegeben werden können. Bei der Programmentwicklung für integrierte Mikroprozessoren, die mit mehreren Betriebsmitteln unterschiedlicher Funktionen ausgestattet sind, wird es für die Begrenzung der Hardwarekosten durch Verwendung des Kompilers der vorliegenden Erfindung möglich, ein Maschinenspracheprogramm zu erzeugen, das die unterschiedlichen Funktionen in vollem Umfang nutzt, die in einem derartigen Mikroprozessor enthalten sind.
  • Das dritte Ziel der vorliegenden Erfindung kann durch das Betriebsmittelzuweisungsgerät erreicht werden, das weiterhin enthält: eine Reserviertzuweisungs-Extraktionseinrichtung zum Extrahieren von Zuweisungen im Programm, die einem zuvor ermittelten Betriebsmittelelement zugewiesen werden sollen; eine Reserviertbetriebsmittelelement-Speichereinrichtung zum Speichern der Betriebsmittelelemente, denen die Zuweisungen zugewiesen werden sollen, die durch die Reserviertzuweisungs-Extraktionseinrichtung extrahiert wurden; und eine Reserviertzuweisungseinrichtung, um die Zuweisungen, die durch die Reserviertzuweisungs-Extraktionseinrichtung extrahiert wurden, den entsprechenden Betriebsmittelelementen aus den Betriebsmittelelementen zuzuweisen, die durch die Reserviertbetriebsmittelelement-Speichereinrichtung gespeichert wurden, und die Zuweisungsergebnisse durch die Zuweisungsergebnis-Speichereinrichtung zu speichern.
  • Die zweite Betriebsmittelelement-Zuweisungseinrichtung kann enthalten: eine Zuweisungseinrichtung, um, wenn es nur ein Betriebsmittelelement gibt, das durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurde, die Zuweisungen, die durch die Zuweisungs-Auffindeeinrichtung aufgenommen wurden, dem Betriebsmittelelement zuzuweisen; eine zweite Zuweisungseinrichtung, um die Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung aufgenommen wurde, einem der Betriebsmittelelemente zuzuweisen, die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden, wenn es mehrere Betriebsmittelelemente gibt, die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden, und kein entsprechendes Betriebsmittelelement vorhanden ist, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurde; und eine dritte Zuweisungseinrichtung, um die Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung aufgenommen wurde, einem der Betriebsmittelelemente zuzuweisen, die als Ermittlungsergebnis der Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung und darüber hinaus als Ermittlungsergebnis der Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden, wenn es mehrere Betriebsmittelelemente gibt, die durch die Demselben-Betriebsmittelverbleibendes-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden und ein Betriebsmittelelement vorhanden ist, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurde.
  • Das Betriebsmittelzuweisungsgerät kann weiterhin enthalten: eine Gewinnwert-Berechnungseinrichtung zum Errechnen eines Gewinnwertes, der anzeigt, wie die Speichergröße und/oder die Ausführungszeit für ein Maschinenspracheprogramm nach dem Kompilieren verringert sind, wenn eine Zuweisung einem der Betriebsmittelelemente zugewiesen ist, die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden, für jedes der Betriebsmittelelemente die durch die Demselben-Betriebsmittel-verbleibendes- Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden; eine Verlustwert-Berechnungseinrichtung zum Berechnen des Verlustwertes, der anzeigt, wie die Speichergröße und/oder die Ausführungszeit für ein Maschinenspracheprogramm nach dem Kompilieren zugenommen haben, wenn eine Zuweisung einem der Betriebsmittelelemente zugewiesen ist, die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden für jedes der Betriebsmittelelemente die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden; und eine Maximaldifferenz- Betriebsmittelelement-Ermittlungseinrichtung zum Berechnen einer Differenz zwischen dem Gewinnwert und dem Verlustwert und zum Ermitteln, welche Betriebsmittelelemente die größte Differenz aufweisen; wobei die dritte Zuweisungseinrichtung die Zuweisungen, die durch die Zuweisungs-Auffindeeinrichtung aufgefunden wurden, einem der Betriebsmittelelemente zuweist, die durch die Maximaldifferenz-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden.
  • Die Gewinnwert-Berechnungseinrichtung kann den Gewinnwert für das Betriebsmittelelement berechnen, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurde, basierend auf den Prioritätswerten der Zuweisungen, die dem Betriebsmittelelement zugewiesen sind, wobei die Gewinnwerte der Betriebsmittelelemente abseits des Betriebsmittelelementes, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurde, auf 0 eingestellt sind.
  • Das Betriebsmittel-Zuweisungsgerät kann weiterhin enthalten: eine Sekundär-Beeinflussungszuweisungs-Auffindeeinrichtung, zum Auffinden von Zuweisungen, deren Lebendigkeitsbereiche die Lebendigkeitsbereiche von Zuweisungen beeinflussen, die durch die Kohärentzuweisungs-Auffindeeinrichtung aufgefunden wurden, jedoch nicht die aufgefundenen Ergebnisse der Beeinflussungszuweisungs-Extraktionseinrichtung sind; und eine erste Verlustauftritts- Betriebsmittelelement-Ermittlungseinrichtung zum Ermitteln welchen Betriebsmittelelementen die Zuweisungen, die die Auffindeergebnisse der Sekundär-Beeinflussungszuweisungs-Auffindeeinrichtung sind, zugewiesen sind, indem auf die Zuweisungsergebnis-Speichereinrichtung Bezug genommen wird; wobei die Verlustwert-Berechnungseinrichtung Verlustwerte der Betriebsmittelelemente berechnet, die durch die erste Verlustauftritts-Betriebsmittelelement- Ermittlungseinrichtung ermittelt wurden, basierend auf Prioritätswerten der Zuweisungen, die durch die Kohärentzuweisungs-Auffindeeinrichtung ermittelt wurden, und deren Lebendigkeitsbereiche darüber hinaus den Lebendigkeitsbereich der Zuweisung beeinflußt, die jedem der Betriebsmittelelemente zugewiesen ist, wobei die Verlustwerte aller Betriebsmittelelemente abseits des Betriebsmittelelementes, das durch die Verlustauftritts-BetriebsmittelelemenkErmittlungseinrichtung ermittelt wurde, auf 0 eingestellt sind.
  • Das Betriebsmittel-Zuweisungsgerät kann weiterhin enthalten: eine Globalgruppen-Erzeugungseinrichtung zum Auffinden mehrerer Zuweisungen, deren Lebendigkeitsbereich nacheinander verbunden sind, aus den Zuweisungen, die in der Zuweisungs-Speichereinrichtung gespeichert sind, und zum Einstellen der aufgefundenen Zuweisungen als Globalgruppe; eine Globalgruppen-Auffindeeinrichtung, zum Auffinden einer Globalgruppe, die die Zuweisung enthält, die durch die Zuweisungs-Auffindeeinrichtung aufgefunden wurde, wenn es mehrere Betriebsmittelelemente gibt, die durch die Maximal-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden; eine Globalgewinnwert-Berechnungseinrichtung zum Berechnen eines Globalgewinnwertes, der anzeigt, wie die Speichergröße und/oder die Ausführungszeit verringert sind, wenn eine noch nicht zugewiesene Zuweisung einem gemeinsamen Betriebsmittelelement zugewiesen ist, für jedes der Betriebsmittelelemente, die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden; und eine Globalverlust- Berechnungseinrichtung zum Berechnen eines Globalverlustes, der anzeigt, wie die Speichergröße und/oder die Ausführungszeit erhöht sind, wenn eine noch nicht zugewiesene Zuweisung einem gemeinsamen Betriebsmittelelement zugewiesen ist, für jedes der Betriebsmittelelemente, die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden; wobei für den Fall, daß mehrere BetriebsmittelelementexiurcLdie Maximaldifferenz-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden, die dritte Zuweisungseinrichtung eine Differenz zwischen dem Globalgewinnwert und dem Globalverlustwert errechnet und anschließend die aufgenommene Zuweisung einem Betriebsmittelelement zuweist, für das die Differenz am größten ist.
  • Die Globalgewinnwert-Berechnungseinrichtung enthält: eine erste Globalgruppen-Auffindeeinheit, um, sobald die Zuweisungs-Auffindeeinrichtung eine Zuweisung aufgefunden hat, eine Globalgruppe aufzufinden, zu der die aufgefundene Zuweisung gehört; eine Globalgewinnwert- Speichereinheit zum Speichern einer Summe der Gewinnwerte für jedes Betriebsmittelelement, das einer Globalgruppe entspricht, als Globalgewinnwert; und eine erste Gesamtwert-Handhabungseinheit, um, sobald die Gewinnwert-Berechnungseinrichtung einen Gewinnwert eines Betriebsmittelelementes für die Zuweisung berechnet hat, den Gewinnwert zum Globalgewinnwert des Betriebsmittelelementes zu addieren.
  • Die Globalverlust-Berechnungseinrichtung kann enthalten: eine Beeinflussungsglobalgruppen- Auffindeeinheit, um, sobald die Zuweisungs-Auffindeeinrichtung eine Zuweisung aufgefunden hat, Globalgruppen aufzufinden, die die Zuweisungen enthalten, die die Auffindungsergebnisse der Beeinflussungszuweisungs-Extraktionseinrichtung hinsichtlich der aufgenommenen Zuweisung sind; eine zweite Summenspeichereinheit zum Speichern der Summe der Prioritätswerte der Zuweisungen, die zur Globalgruppe gehören, als Globalverlustwerte, entsprechend jedem Betriebsmittelelement; und eine zweite Summenhandhabungseinheit, um, sobald die Gewinnwert-Berechnungseinrichtung den Gewinnwert des Betriebsmittelelementes für die Zuweisung berechnet hat, die durch die Zuweisungs-Auffindeeinrichtung aufgefunden wurde, den Prioritätswert der Zuweisung für das Betriebsmittelelement, das das Auffindungsergebnis der Beeinflussungszuweisungs-Extraktionseinrichtung ist, zur Summe des Globalverlustwertes für das Betriebsmittelelement zu addieren.
  • In der oben beschriebenen Art und Weise kann die vorliegende Erfindung Zuweisungen den Betriebsmittelelementen zuweisen, ohne die Reihenfolge der Prioritätswerte zu verletzen, und die Ausführungszeit sowie die Speichergröße eines Maschinenspracheprogramms verringern. Wenn die Betriebsmittelzuweisung für eine betreffende Maschine mit einer geringen Zahl von Registern ausgeführt wird, werden die Verbesserungen bei der Ausführungszeit und der Speichergröße, die oben beschrieben wurden, in besonderem Maße deutlich.
  • Zudem kann die Betriebsmittelzuweisung derart ausgeführt werden, daß die Erzeugung von Maschinenspracheanweisungen, die Übertragungsanweisungen sind, überflüssig werden, wodurch die Ausführungszeit und die Speichergröße des Maschinenspracheprogramms verringert werden können.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Diese und weitere Ziele, Vorteile und Merkmale der Erfindung werden durch die folgende Beschreibung in Verbindung mit den beiliegenden Zeichnungen deutlich, die eine spezielle Ausführungsform der Erfindung zeigen. In den Zeichnungen ist/sind:
  • Fig. 1A und 1B Tabellen, die das Programm und die Zuweisungen darstellen, die jenen im Programm entsprechen;
  • Fig. 2 eine Darstellung des Aufbaus des Kompilers;
  • Fig. 3A, 3B und 3C Tabellen, die den Betriebsablauf des Kompilers zeigen;
  • Fig. 4 eine Zeichnung, die einen Aufbau eines Betriebsmittel-Zuweisungsgerätes nach dem Stand der Technik zeigt;
  • Fig. 5A und 5B Zeichnungen, die eine Überlagerungskurve und die Art und Weise zeigen, wie dieselbe Überlagerungskurve durch Kombinieren der Scheitel verändert wird;
  • Fig. 6A, 6B, 6C, 6D, 6E, 6F, 6G, 6H und 61 Zeichnungen, die den Fortschritt der Kurvendegeneration der Überlagerungskurve zeigen;
  • Fig. 7 eine Zeichnung, die den Aufbau des Betriebsmittel-Zuweisungsgerätes 33 der ersten Ausführungsform darstellt;
  • Fig. 8A und 8B Tabellen, die das Programm, das durch das Betriebsmittel-Zuweisungsgerät ausgeführt werden soll, und die Zuweisungen zeigen, die jenen im Programm entsprechen;
  • Fig. 9 eine Tabelle, die die Rückschlußwert-Tabelle zeigt;
  • Fig. 10 eine Tabelle, die die Aspekte der Berechnung des Rückschluß-Kostenwertes durch die Betriebsmittel-Klassifizierungs-Berechnungseinrichtung 4 zeigt;
  • Fig. 11A und 11B Tabellen, die die Referenzergebnisse der Simultanexistenz-Zuweisungsreferenzeinheit 5 und der Kohärenzbeziehungs-Referenzeinheit 6 zeigen;
  • Fig. 12 eine Tabelle, die die Aspekte der Sortierung der Zuweisungen nach der Betriebsmittelklassifikation durch die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Auswahleinheit 9 zeigt;
  • Fig. 13 ein Flußdiagramm des Betriebsablaufes der Betriebsmittel-Klassifizierungs- Zuweisungsgruppen-Teilungseinheit 7;
  • Fig. 14 ein Flußdiagramm für die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen- Auswahleinheit 9;
  • Fig. 15 eine Zeichnung, die die Stufen des Betriebsmittel-Zuweisungsvorgangs zeigt, der durch die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 ausgeführt wird;
  • Fig. 16 ein Flußdiagramm für die Darstellung des Betriebsvorgangs der Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12;
  • Fig. 17 eine Zeichnung, die den Ablauf der Berechnung des Gewinnwertes und des Verlustwertes auf der Basis des Prioritätswertes der Zuweisungen zeigt;
  • Fig. 18 eine Zeichnung, die den Ablauf der Berechnung des Gewinnwertes und des Verlustwertes auf der Basis des Umfangs der Schleifen-Verschachtelungstiefe zeigt;
  • Fig. 19 eine Zeichnung des Vorgangs der Berechnung des Gewinnwertes und des Verlustwertes auf der Basis der Zahl von Zuweisungen mit kohärenten Beziehungen;
  • Fig. 20 ein Flußdiagramm des Steuervorgangs der Betriebsmittelzuweisungs-Steuereinheit 1;
  • Fig. 21 eine Zeichnung, die einen Aufbau eines Betriebsmittel-Zuweisungsgerätes 35 der zweiten Ausführungsform zeigt;
  • Fig. 22 eine Zeichnung, die die Globalgewinnwerttabelle und die Globalverlustwerttabelle zeigt;
  • Fig. 23 eine Zeichnung der Vorgangsschritte der Zuweisungsbetriebsmittel-Zuweisungseinheit 15;
  • Fig. 24 eine Zeichnung, die die Berechnung des Globalgewinnwertes und des Globalverlustwertes zeigt;
  • Fig. 25 ein Flußdiagramm für die Zuweisungsbetriebsmittel-Zuweisungseinheit 15; und
  • Fig. 26 ein Flußdiagramm für die Betriebsmittel-Zuweisungs-Steuereinheit 19.
  • DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Die vorliegende bezieht sich auf eine Betriebsmittel-Zuweisungseinheit, die wie in Fig. 7 gezeigt aufgebaut ist. Wie in Fig. 7 dargestellt, besteht die Betriebsmittel-Zuweisungseinheit 33 aus einer Betriebsmittel-Zuweisungs-Steuereinheit 1, einerZuweisungs-Erzeugungseinheit 2, einer Zuweisungs-Speichereinheit 3, einer Betriebsmittel-Klassifizierungs-Kosten-Berechnungseinrichtung-4; einer Simultanexistenz-Zuweisungs-Referenzeinheit 5, einer Kohärentbeziehungs- Referenzeinheit 6, einer Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Teilungseinheit 7, einer Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Speichereinheit 8, einer Betriebsmittel- Klassifizierungs-Zuweisungsgruppen-Auswahleinheit 9, einer Auswahlkanditatengruppen- Speichereinheit 10, einer Zuweisungs-Prioritätswert-Berechnungseinrichtung 11, einer Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 und einer Betriebsmittelelement-Mehrzahl-Zuweisungseinheit 16. Die Betriebsmittel-Zuweisungseinheit 33 ist in den Kompiler, der in Fig. 2 gezeigt ist, anstelle des Betriebsmittel-Zuweisungsgerätes 23 eingebaut.
  • Die Betriebsmittel-Zuweisungs-Steuereinheit 1 steuert den gesamten Zuweisungsvorgang.
  • Die Zuweisungs-Erzeugungseinheit 2 erzeugt die Zuweisungen basierend auf den Ergebnissen der Datenflußanalyse (im folgenden Datenflußinformation genannt) und den Ergebnissen der Steuerflußanalyse (im folgenden Steuerfiußinformation genannt) durch die Optimierungseinheit 22. Die erzeugten Zuweisungen werden in der Zuweisungs-Speichereinheit 3 gespeichert. Nun folgt eine Erläuterung dieses Vorgangs für das Beispielprogramm und die entsprechenden Zuweisungen, die in Fig. 8A gezeigt sind. Das [Programm] in Fig. 8A ist in einen [Basisblock 1], einen [Basisblock 2] und einen [Basisblock 3] durch die Optimierungseinheit 22 aufgeteilt, und man erhält die Datenflußinformationen sowie die Steuerflußinformartionen. Auf der Basis dieser Informationen erzeugt dann die Zuweisungs-Erzeugungseinheit 2 die Informationen für die Zuweisungen in den Basisblöcken 1, 2 und 3 in Fig. 8A und die zugehörigen Lebendigkeitsbereiche. Die Informationen für diese Zuweisungen und Lebendigkeitsbereiche wurden als [Zuweisungen] in Fig. 8B visuell dargestellt. Die Strichlinien in dieser Zeichnung entsprechen jedem Schritt im Zwischenspracheprogramm, während die Vollinien mit den Variablennamen die Start- und Endpunkte der Lebendigkeitsbereiche jeder Zuweisung und darüber hinaus die Art und Weise darstellen, in der sie einander überlagern.
  • Beim Beispiel, das in Fig. 8A gezeigt ist, findet die Zuweisungs-Erzeugunseinheit 2 die Variablen s, q, r mit [*] auf, die als Hinweisvariable angefügt sind, und speichert diese aufgefundenen Hinweisvariablen als Zuweisungen in der Zuweisungs-Speichereinheit 3. Hinweisvariable sind die Variablen für eine indirekte Referenz auf den Speicher und werden gewöhnlich den Betriebsmittelelementen in derselben Weise zugewiesen wie normale Variable. Darüber hinaus findet die Zuweisungs-Erzeugungseinheit 2 [f1(c); ] und [f2(b,*r); ] aus dem Beispielprogramm von Fig. 8A auf und ermittelt, daß diese Funktionsaufrufe sind (aus Gründen der Einfachheit wurden, um die Register auszudrücken, wenn die Argument-Register, die Bruchregister und die Rückkehrwert-Register von [f1(c); ] und (f2(b,*r);] benutzt werden, die Variablen f1, f2 eingeführt, die diesen Registern zugewiesen werden können). Darüber hinaus ermittelt die Zuweisungs-Erzeugungseinheit 2 beim Auffinden [Ret], daß dies eine Variable ist, die einen Rückkehrwert speichert.
  • Andererseits speichert die Zuweisungs-Erzeugungseinheit 2 die Register, die die Argument- Register, die Bruchregister und die Rückgabewert-Register sind, im voraus und weist den oben erwähnten Variablen diese Register zu. Bei dieser Ausführungsform werden die Argument- Register und die Bruchregister vorher den Registern D0 und A0 zugewiesen, wobei die Rückgabewert-Register ebenfalls dem Register D0 zugewiesen werden. In Übereinstimmung damit weist die Zuweisungs-Erzeugungseinheit 2 die Variablen f1, f2 den Registern D0 bzw. A0 und zudem die Variable Ret dem Register D0 zu.
  • Die Zuweisungs-Speichereinheit 3 speichert die Informationen für die Zuweisungen, die durch die Zuweisungs-Erzeugungseinheit 2 erzeugt werden. Die Zuweisungs-Speichereinheit 3 speichert zusätzlich zur Variablen- und der Lebendigkeitsbereich-Information als Zuweisungsinformation die Lebendigkeitsbereich-Startpunkt- und Endpunkt-Informationen, die Informationen für die Zwischenspracheschritte, die die Zuweisungen in den Lebendigkeitsbereichen verwenden, die Rückschluß-Kostenwerte, die unten beschrieben werden, die Simultanexistenz-Zuweisungs-Informationen und die Informationen für die Zuweisungen, die zugewiesene Zuweisungen waren.
  • Die Betriebsmittel-Klassifizierungs-Kosten-Berechnungseinrichtung 4 führt die Bewertung aus, welchen Betriebsmittelelementen des Betriebsmittels die Zuweisungen in jedem der Schritte des Quellprogramms zugewiesen werden sollen, um die Größe des erzeugten Kodes zu reduzieren. Diese Ausführung der Bewertung kann genauer als die Summierung der Rückschlußswerte bezeichnet werden, die die Ausführungszeit oder die benötigte Speichergröße für jeden Schritt im Programm anzeigen. Diese summierten Werte werden Rückschluß-Kostenwerte genannt und in die Zuweisungs-Speichereinheit 3 geschrieben. Zusätzlich wird dieser Summierungsvorgang gemäß der folgenden {numerischen Gleichung 2} ausgeführt
  • {Numerische Gleichung 2}
  • Kosten (R, x) = ΣC(x, R, i) * W(i)
  • x: Zuweisung
  • i: Schritte im Zwischenspracheprogramm bei den def- und use- Teilen von x
  • R: Betriebsmittel in der betreffenden Maschine
  • W(i): Gewicht der Schleifenverschachtelungstiefe in Schritt i, wobei das Gewicht so schwer wie eine interne Schleife ist. Beispielsweise der Schleifenverschachtelungs-Tiefenpegel. Vorausgesetzt, daß dieser das folgende C(x, R, i) als Ausführungszeit verwendet.
  • C(x, R, i): Wenn x R zugewiesen ist, der Rückschlußwert der durchschnittlich benötigten Ausführungszeit und die Kodegröße der Maschinensprache-Anweisung.
  • In Übereinstimmung mit der obigen Gleichung wird deutlich, daß, je größer die Zahl der Schritte im Lebendigkeitsbereich der Zuweisung x ist, die die Multiplikation oder Division unter Verwendung von x ausführen, und je größer die Zahl der Schritte ist, die tiefe Schleifenverschachtelungspegel haben, desto höher die Kosten (R, x) sind.
  • Wenn es drei Arten von Zuweisungen in der Zielmaschine gibt, die Adreßregister (abgekürzt AR), Datenregister (DR) und einen Speicher (Mem) enthält, wird der Rückschluß-Kostenwert für die willkürliche Zuweisung x in der Art und Weise berechnet, wie es unten beschrieben ist.
  • Wenn die Zuweisung x AR zugewiesen wird, dann werden alle def- und use- Teile gezählt, um folgende Rückschlußwertzahl zu ergeben: Kosten (AR, x)
  • Wenn die Zuweisung x DR zugewiesen wird, dann werden alle def- und use-Teile gezählt, um folgende Rückschlußwertzahl zu ergeben: Kosten (DR, x)
  • Wenn die Zuweisung x Mem zugewiesen wird, dann werden alle def- und use-Teile gezählt, um folgende Überlagerungswertzahl zu ergeben: Kosten (Mem, x)
  • Da das Gewicht der Schleifenverschachtelungstiefe einen großen Einfluß auf die Ausführungszeit hat, kann das Gewicht der Schleifenverschachtelung W(i) als W(i)-Multiplikator für C(x, r, i) dargestellt werden.
  • Ein Beispiel einer Tabelle, bei der die Kostenrückschlußwerte C(x, R, i) aufgezeichnet sind, ist in Fig. 9 gezeigt, und ein Beispiel einer Tabelle, in der die Kostenrückschlußwerte C(r, x) aufgezeichnet sind, ist in Fig. 10 dargestellt.
  • Nun folgt eine Erläuterung des Bewertungsvorgangs, der durch die Betriebsmittel-Klassifizierungs-Kosten-Berechnungseinrichtung 4 ausgeführt wird, wobei das Format der Rückschlußwert-Tabelle aus Fig. 9 und der Tabelle in Fig. 10 verwendet wird.
  • Die Rückschlußwerttabelle sind die Informationen, in denen die zuvor erwähnten Rückschlußwerte aufgezeichnet sind.
  • In Fig. 9 ist die Rückschlußwert-Tabelle eine Anordnung mehrerer Zellen mit einem numerischen Ausdruck, wie etwa [C(x, AR, Indirekte Referenz) = 1], [C(x, DR, Indirekte Referenz) = 2], [C(x, Mem, Indirekte Referenz) = 3], der in jeder Zelle gezeigt ist. Diese zeigen, welches Betriebsmittel verwendet werden sollte, wenn die Maschinensprache-Anweisung [Indirekte Referenz] ausgeführt wird.
  • [C(x, AR, Indirekte Referenz) = 1] zeigt, daß, wenn eine Anweisung für eine indirekte Referenz auf das Adreßregister ausgeführt wird, [1] zur benötigten Speichergröße oder Ausführungszeit addiert wird.
  • [C(x, DR, Indirekte Referenz) = 2] zeigt, daß, wenn eine Anweisung für eine indirekte Referenz auf das Datenregister ausgeführt wird, [2] zur benötigten Speichergröße oder Ausführungszeit addiert wird.
  • [C(x, Mem, Indirekte Referenz) = 3] zeigt, daß, wenn eine Anweisung für eine indirekte Referenz auf den Speicher ausgeführt wird, [3] zur benötigten Speichergröße oder Ausführungszeit addiert wird.
  • Zusätzlich zeigt dieselbe Zeichnung, daß, wenn eine Anweisung [C(x, Mem, Addition) = 3] für eine Addition am Speicher ausgeführt wird, [3] zur notwendigen Speichergröße oder Ausführungszeit addiert wird.
  • In derselben Weise zeigt [C(x, Mem, Subtraktion) = 3], daß, wenn eine Anweisung für eine Subtraktion am Speicher ausgeführt wird, [3] von der notwendigen Speichergröße oder Ausführungszeit subtrahiert wird.
  • Die linke Seite von Fig. 10 zeigt das Beispielprogramm von Fig. 8A. Es wurden einige Zuweisungen in diesem Programm eingekreist, wobei Pfeile hinzugefügt wurden, die an diesen eingekreisten Zuweisungen ihren Ursprung haben. In der Zeichnung beginnt der Pfeil all (a-11) an der Zuweisung [s] und teilt sich auf, um 3 Positionen anzuzeigen. Diese Positionen [C(s, AR, Indirekte Referenz)], [C(s, DR, Indirekte Referenz)] und [C (s, Mem, Indirekte Referenz)] zeigen die Summen der Rückschlußwerte für die Zuweisung s, Diese Summen der Rückschlußwerte für die Zuweisung s sind unter diesen Positionen in der Zeichnung als [Kosten (AR, s) = 1], [Kosten (DR, s) = 2] und [Kosten (Mem, s) = 3] gezeigt. Das bedeutet, wenn die Zuweisung s AR zugewiesen ist, beträgt der Rückschlußwert [1], wenn die Zuweisung s DR zugewiesen ist, beträgt der Rückschlußwert [2] und wenn die Zuweisung s dem Speicher zugewiesen ist, beträgt der Rückschlußwert [3].
  • Darüber befindet sich die Zuweisung r an drei Stellen in diesem Beispielprogramm und ist jeweils eingekreist. Die Pfeile a13, a14 und a15 entspringen bei diesen Zuweisungen. Jeder Pfeil teilt sich auf, und zeigt die folgenden drei Positionen [C(r, AR, Indirekte Referenz)], [C(r, DR, Indirekte Referenz)] und [C(r, Mem, Indirekte Referenz)], aber nachdem diese Zuweisung dreimal innerhalb des Programms erscheint, ist die Bewertung so dargestellt, als ob sie für dieser drei Stellen zusammen erfolgt ist. Die gesamten Rückschlußwerte für diese drei Positionen sind [C(r, AR) = 3], [C(r, DR) = 6] und [C(r, Mem) = 9].
  • Beim oben beschriebenen Vorgang wird die Berechnung der Summen der Rückschlußwerte ausgeführt, wie es mit den Pfeilen all, a12, a13, etc. gezeigt ist, wobei man die Rückschlußkostenwerte für alle diese Zuweisungen mit Rücksicht auf jede der drei Betriebsmittel erhält, wie es in der Tabelle am Ende von Fig. 10 dargestellt ist.
  • Zudem kann die zuvor erwähnte Rückschlußwert-Tabelle von der Bedienperson aktualisiert werden, sofern dies erforderlich ist.
  • Die Simultanexistenz-Zuweisungs-Referenzeinheit 5 findet die Überlagerung der Lebendigkeitsbereiche für unterschiedliche Zuweisungen auf. Die aufgefundenen Ergebnisse sind, wie in Fig. 11A gezeigt, als Zuweisungsgruppe Ov(x) gegeben, was die Gruppe der Zuweisungen ist, deren Lebendigkeitsbereiche die willkürliche Zuweisung x überlagern. Diese aufgefundenen Ergebnisse werden in der Zuweisungs-Speichereinheit 3 gespeichert.
  • Die Kohärenzbeziehungs-Einheit 6 findet die kohärenten Beziehungen auf. Die kohärenten Beziehungen sind die Beziehungen zwischen Zuweisungen, wodurch das Ende des Lebendigkeitsbereiches für eine Zuweisung mit dem Startpunkt des Lebendigkeitsbereiches für eine weitere Zuweisung als ein Schritt zusammenfällt, was durch Zuweisen zum selben Betriebsmittelelement zu einer Verringerung der Übertragungsanweisungen führen kann. Dieses aufgefundene Ergebnis ist als Zuweisungsgruppe R1(x) gegeben, wie es in Fig. 11B gezeigt ist, die alle Zuweisungen in der Zuweisungs-Speichereinheit 3 enthält, die über kohärente Beziehungen mit der willkürlichen Zuweisung x verfügen. Die Übereinstimmung der Lebendigkeitsbereiche in Schritt 1 wird aufgrund der beiden Adreßanweisungsformate der Maschinensprache-Anweisungen der Zielmaschine als kohärente Beziehungen bezeichnet. Da die Operationsergebnisse zweier Operationszeichen-Formatoperationen, die monadische Operationen, wie etwa Umkehroperationen, kommutative Operationen, wie etwa Additionsanweisungen, und nicht kommutative Operationen, wie etwa eine Subtraktion enthalten, einerseits in den Operationszeichen gespeichert sind, die in der {numerischen Gleichung 3} unten gezeigt sind, sind diese Operationszeichen, wie in (a) bis (c) unten gezeigt, auch der Endpunkt der Zuweisung x (das Operationszeichen vor der Operationsausführung) und gleichzeitig der Startpunkt einer weiteren Zuweisung y (das Operationszeichen nach der Speicherung des Operationsergebnisses) im Programm. Mit anderen Worten entsprechen die Zuweisungen x und y demselben Operationszeichen vor und nach der Operation. Wenn es opr2 bei (c) ist, dann zeigen x und y keine kohärenten Beziehungen.
  • {Numerische Gleichung 3}
  • (a) Rev opr1 opr1 -> opr1
  • (eine Maschinensprache-Anweisung, bei der " das Symbol für den symbolischen Umkehrausdruck ist, die das Operationsergebnis im Operationszeichen der Umkehroperation speichert)
  • (b) ADD opr1, opr2 opr1 +opr2 -> opr1
  • (eine Maschinensprache-Anweisung, die das Operationsergebnis im linken Operationszeichen der Additionsoperation speichert)
  • (c) SUB opr1, opr2 opr1-opr2 -> opr1
  • (eine Maschinensprache-Anweisung, die das Operationsergebnis im linken Operationszeichen der Subtraktionsoperation speichert)
  • Wenn der Endpunkt der Zuweisung x eine monadische Operation ist, dann ist der Startpunkt dieses Schrittes die Zuweisung y (beispielsweise y = x).
  • Wenn der Endpunkt der Zuweisung x eine kommutative Operation ist, dann ist der Startpunkt dieses Schrittes die Zuweisung y (beispielsweise y = x+10).
  • Wenn der Endpunkt der Zuweisung x eine nicht kommutative Operation ist, dann ist der Startpunkt dieses Schrittes die Zuweisung y (beispielsweise y = x-10).
  • Wenn es zudem mehrere kohärente Beziehungen gibt, beispielsweise dann, wenn die Variablen, die die Operationszeichen für beide Seiten einer Addition bilden, zusammen die Endpunkte für diesen Operationsschritt bilden, dann bewertet die Kohärenzbeziehungs-Referenzeinheit 6 die Festigkeit der Beziehungen. Wenn sich diese kohärente Beziehung auf der inneren und äußeren Seite eines Schleifenvorgangs befindet, dann hängt das Ausmaß, in dem die kohärente Beziehung als stark betrachtet wird, von dem Umfang ab, in dem sich die kohärente Beziehung auf der Innenseite des Schleifenvorgangs befindet, da die Ablaufzählung bei Ausführung des Programms groß ist. Je größer zusätzlich die Zahl der Zuweisungen ist, die über kohärente Beziehungen in einer Zahl von Schritten verfügen, als desto stärker werden die kohärenten Beziehungen erachtet. Diese Stärke der kohärenten Beziehungen wird Zuweisungs-Beziehungsstärke genannt. Je mehr das Anweisungspaar auf der Innenseite einer Schleife liegt, und je größer zudem die Zahl der Anweisungen ist, die über kohärente Beziehungen verfügen, desto stärker wird diese Zuweisungs-Beziehungsstärke.
  • Die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Teilungseinheit 7 bezieht sich auf die Rückschlußkostenwerte, die durch die Betriebsmittel-Klassifizierungs-Kostenberechnungseinrichtung 4 berechnet werden, und ermittelt, zu welchem Betriebsmittel das Zuweisen jeder Zuweisung paßt und teilt die Zuweisungen in Gruppen, die durch das Betriebsmittel klassifiziert werden. Das folgende ist eine Erläuterung dieses Vorgangs unter Bezugnahme auf Fig. 12. In Fig. 12 zeigt der Rahmen mit den Überschriften [AR(A0, A1, A2)] und [DR(D0, D1, D2)] die Zuweisungen, die in Gruppen jeweils für jede Zuweisung unterteilt sind. Zudem zeigt [AR (A0, A1, A2)], daß das Register AR die Betriebsmittelelemente A0, A1, A2 enthält. In derselben Art und Weise zeigt [DR(D0, D1, D2)], daß das Register DR die Betriebsmittelelemente D0, D1, D2 enthält.
  • Durch Bezugnahme auf die Rückschlußkostenwerte, die in Fig. 10 gezeigt sind, ordnet die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Teilungseinheit 7 jede Zuweisung dem Betriebsmittel zu, wo die Rückschlußkosten geringer sind, wie es mit den Referenzsymbolen b11, b12, b13, b14, b15 gezeigt ist, wobei die Zuweisungen in ein Adreßregister (AR)-Gruppe und eine Datenregister (DR)-Gruppe aufgeteilt werden.
  • In Fig. 10 sind die Rückschlußkosten der Zuweisung s durch [Kosten (AR, s) = 1] für AR und [Kosten (DR, s) = 2] für DR dargestellt, was zeigt, daß die Rückschlußkosten für AR geringer sind. Demzufolge wird die Zuweisung s in der Betriebsmittel-AR-Gruppe gespeichert, wie es mit dem Pfeil b11 gezeigt ist.
  • Die Rückschlußkosten der Zuweisung b sind durch [Kosten (AR, b) = 5] für AR und durch [Kosten (DR, b) = 4] für DR dargestellt, was zeigt, daß die Rückschlußkosten für DR geringer sind. Demzufolge wird die Zuweisung b in der Betriebsmittel-DR-Gruppe gespeichert, wie es durch den Pfeil b15 gezeigt ist.
  • Als Ergebnis dieser Unterteilung sind die Zuweisungen s, q, r, a, etc. in der Zeichnung zwischen der AR(A0, A1, A2)-Gruppe und der DR(D0, D1, D2)-Gruppe ausgeteilt. Demzufolge wird durch Zuweisen der Zuweisungen zu jedem Betriebsmittel auf diese Art eine Gruppe von Zuweisungen erzeugt, durch die die Kosten reduziert werden. Diese Gruppen werden Betriebsmittel- Klassifizierungs-Zuweisungsgruppen genannt. Sie sind im Rahmen mit dem Titel [Betriebsmittel- Klassifizierungs-Zuweisungsgruppen] direkt unter dem Rahmen mit den Überschriften [AR(A0, A1, A2)] und [DR(D0, D1, D2)] gezeigt, enthaltend die Rahmen [AR(A0, A1, A2)], [DR(D0, D1, D2)] und [Mem], wobei die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Teilungseinheit 7 die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen, die sie in der oben beschriebenen Art und Weise erzeugt hat, in der Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Speichereinheit 8 speichert.
  • Wie es in Fig. 12 dargestellt wird, ist der Rückschlußkostenwert für die Zuweisung a sowohl für AR als auch für DR derselbe, wie es durch [Kosten (AR, a) = 2] und [Kosten (DR, a) = 2] gezeigt ist. Wenn die Rückschlußkosten einer Zuweisung für zwei oder mehrere Zuweisungen dieselben sind, wie bei der Zuweisung a, dann prüft die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Teilungseinheit 7 genau die Festigkeit der Rückschlußkosten der Zuweisungen und wählt durch Bezugnahme darauf im Detail vorsichtig die Kombination, die zu den geringsten Rückschlußkosten führen wird.
  • Nun folgt eine Erklärung dieser Auswahl unter Bezugnahme auf das Flußdiagramm in Fig. 13.
  • Zunächst wird geprüft, ob es eine Zuweisung x gibt, die eine Zuweisung ist, die noch zu verarbeiten ist (Schritt b1 in Fig. 13), und wenn es eine Zuweisung x gibt, dann wird ermittelt, ob es nur ein Geringstkosten-Betriebsmittel gibt, das das Betriebsmittel mit den geringsten Rückschluß kosten für die Zuweisung x ist, oder ob es mehrere Geringstkosten-Betriebsmittel gibt (Schritt b2). Gibt es mehrere, dann wird ermittelt, ob es Zuweisungen gibt, die über kohärente Beziehungen mit der Zuweisung x verfügen (Schritt b3). Sind diese vorhanden, dann wird die Zuweisung x1, die über die stärksten kohärenten Beziehungen mit x verfügt, aus allen Zuweisungen ausgesucht, die kohärente Beziehungen mit der Zuweisung x haben, und anschließend bestimmt, ob es nur ein Geringstkosten-Betriebsmittel für diese Zuweisung x1 gibt oder mehrere (Schritt b5). Gibt es mehrere Geringstkosten-Betriebsmittel, wird wiederum ermittelt, ob es weitere Zuweisungen mit kohärenten Beziehungen mit der Zuweisung x gibt (Schritt b6). Ist dies der Fall, dann wird die Zuweisung mit der stärksten kohärenten Beziehung ausgesucht, wobei diese Zuweisung die neue Zuweisung x1 wird. Auf diese Weise wird der Vorgang von b5-b7 wiederholt und das Geringstkosten-Betriebsmittel für die Zuweisung x und die unterschiedlichen Zuweisungen untersucht, die kohärente Beziehungen mit der Zuweisung x aufweisen. Wenn in Schritt b6 nicht ermittelt werden kann, daß es eine Zuweisung mit kohärenten Beziehungen gibt, dann wird eines aus der Vielzahl der Geringstkosten-Betriebsmittel gewählt, wobei dieses gewählte Betriebsmittel anschließend mit den Zuweisungen zur Übereinstimmung gebracht wird (Schritt b8).
  • Die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Speichereinheit 8 speichert anschließend die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen für alle Betriebsmittel, die sie von der Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Teilungseinheit 7 empfängt.
  • Die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Auswahleinheit 9 entscheidet über den Prioritätsrang jeder Gruppe (dieser Prioritätsrang wird im folgenden Betriebsmittel-Auswahl-Prioritätsrang genannt), indem sie die Summen der Rückschlußkosten für jede Betriebsmittel-Klassifizierungs-Zuweisungsgruppe vergleicht, und schreibt anschließend diese Betriebsmittel-Klassifizierungs-Zuweisungsgruppen nacheinander in die Auswahlkandidatengruppen-Speichereinheit 10 in Übereinstimmung mit ihrem Prioritätsrang. Nun folgt eine Erläuterung dieses Vorgangs unter Bezugnahme auf Fig. 12. In Fig. 12 sind die numerischen Gleichungen [Kosten (DR, a) + Kosten (DR, b) + Kosten (DR, c) + Kosten (DR, d) + Kosten (DR, e) + Kosten (DR, f) + Kosten (DR, g)...], [Kosten (AR, s) + Kosten (AR, q) + Kosten (AR, r)] unter die Rahmen geschrieben, die die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen [AR (A0, A1, A2)], [DR (D0, D1, D2)] und [Mem]-darstellen, die die gesamten Rückschlußkosten der unterschiedlichen Betriebsmittel-Klassifizierungs-Zuweisungsgruppen zeigen. Die Gleichung [Kosten (DR, a) + Kosten (DR, b) + Kosten (DR, c) + Kosten (DR, d) + Kosten (DR, e) + Kosten (DR, f) + Kosten (DR, g)...] stellt die gesamten Rückschlußkosten für die Betriebsmittel-Klassifizierungs-Zuweisungsgruppe [DR (D0, D1, D2)] dar, während die Gleichung [Kosten (AR, s) + Kosten (AR, q) + Kosten (AR, r)] die Rückschlußkosten der Betriebsmittel-Klassifizierungs-Zuweisungsgruppe [AR (A0, A1, A2)] zeigt. Der Rahmen, der für die Auswahlkandidatengruppen-Speichereinheit 10 steht, ist unten und rechts von dem Rahmen dargestellt, der für Betriebsmittel-Klassifizierungsgruppen-Speichereinheit 8 steht, wobei der Pfeil h11, der vom Rahmen, der die Betriebsmittel-Klassifizierungs Zuweisungsgruppe [DR (D0, D1, D2)] repräsentiert, zum Rahmen gezogen ist, der für die Auswahlkandidatengruppen-Speichereinheit 10 steht, die Speicherung der Betriebsmittel-Klassifizierungs-Zuweisungsgruppe [DR (D0, D1, D2)] in derAuswahlkandidatengruppen-Speichereinheit 10 zeigt.
  • Auf diese Weise nimmt die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Auswahleinheit 9 die gesamten Rückschlußkosten, die durch die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Teilungseinheit 7 berechnet werden, auf und entscheidet über den Prioritätsrang b21, b22, b23 der Betriebsmittel-Klassifizierungs-Zuweisungsgruppen in der Reihenfolge der Größe, beginnend mit der größten Summe, wobei sie, wie mit dem Pfeil 11 h gekennzeichnet, die Gruppe mit dem höchsten Prioritätsrang in der Auswahlkandidatengruppen-Speichereinheit 10 speichert. Nachdem der Betriebsmittel-Zuweisungsvorgang für die gespeicherte Gruppe durch die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 ausgeführt wurde, wird erneut über den Prioritätsrang entschieden und anschließend die Gruppe mit dem höchsten Prioritätsrang in der Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Speichereinheit 8 gespeichert. Beim Vergleichen des Betriebsmittelauswahl-Prioritätsranges kann anstelle des Vergleichens aller Kosten die Zahl der Zuweisungen oder die Knappheit der Betriebsmittelelemente als Parameter verwendet werden. Über den Betriebsmittelauswahl-Prioritätsrang kann auch durch die Verwendung einer Kombination aus der Summe der Kostenrückschlußwerte, der Zahl der Zuweisungen und der Knappheit der Betriebsmittelelemente entschieden werden.
  • Der oben beschriebene Vorgang ist in Fig. 14 dargestellt. Das folgende ist eine Erläuterurig des Betriebsablaufs der Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Auswahleinheit 9 unter Bezugnahme auf das Flußdiagramm in Fig. 14.
  • Die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Auswahleinheit 9 ermittelt, ob es Betriebsmittel gibt, denen noch Zuweisungen zugewiesen werden sollen (Schritt c1). Gibt es derartige Betriebsmittel, dann ermittelt sie, ob es nur eines oder mehrere derartiger Betriebsmittel sind (Schritt c2). Gibt es lediglich eines, dann findet sie die Betriebsmittel-Klassifizierungs- Zuweisungsgruppe für dieses Betriebsmittel in der Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Speichereinheit 8 auf (Schritt c3). Gibt es mehrere, dann findet sie alle Betriebsmittel- Klassifizierungs-Zuweisungsgruppen für diese Betriebsmittel in der Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Speichereinheit 8 auf (Schritt c4), und entscheidet über den Betriebsmittelauswahl-Prioritätsrang für alle Betriebsmittel-Klassifizierungs-Zuweisungsgruppen, die sie aufgefunden hat. Um über den Betriebsmittelauswahl-Prioritätsrang zu entscheiden, findet sie die Summen der Rückschlußkostenwerte für die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen. Je höher die Summe der Rückschlußkostenwerte für die Betriebsmittel-Klassifizierungs-Zuweisungsgruppe ist, desto höher wird der Betriebsmittelauswahl-Prioritätsrang. Anschließend wird die Betriebsmittel-Klassifizierungs-Zuweisungsgruppe mit dem höchsten Betriebsmittelauswahl-Prioritätsrang aufgefunden (Schritt c5).
  • Die Auswahlkandidatengruppen-Speichereinheit 10 speichert dann die Betriebsmittel-Klassifizierungs-Zuweisungsgruppe, die durch die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen- Auswahleinheit 9 gewählt wurde.
  • Die Zuweisungs-Prioritätswert-Berechnungseinrichtung 11 entscheidet über den Prioritätswert der Betriebsmittel-Klassifizierungs-Zuweisungsgruppe, die durch die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Auswahleinheit 9 gewählt und durch die Auswahlkandidatengruppen-Speichereinheit 10 gespeichert wurde. Dieser Prioritätswert reflektiert entweder einen Rückschlußkostenwert, der durch die Betriebsmittel-Klassifizierungskosten-Berechnungseinrichtung 4 berechnet wurde, und/oder die Länge des Lebendigkeitsbereiches und/oder die Überlagerung des Lebendigkeitsbereiches. Wenn lediglich der Rückschlußkostenwert, der durch die Betriebsmittel-Klassifizierungskosten-Berechnungseinrichtung 4 berechnet wurde, reflektiert wird, sobald die willkürlichen Zuweisungen in der Zuweisungskandidatengruppe, die in der Auswahlkandidatengruppen-Speichereinheit 10 gespeichert sind, zur Zuweisung x gemacht wurden, wird der Prioritätswert der Zuweisung x mit Hilfe folgender Berechnung ermittelt.
  • (Prinzip 1)
  • Wenn die Zuweisung x dem Betriebsmittel R zugewiesen wird, dann wird der Prioritätswert proportional zur Größe der Rückschlußwertkosten eingestellt.
  • Prioritätswert = Kosten(R, x)/Ln(x) * K
  • Ln(x): Länge des Lebendigkeitsbereiches für die Zuweisung x
  • R: Betriebsmittel, das in der Auswahlkandidatengruppen-Speichereinheit 10 gespeichert ist
  • K: Proportionalitätskonstante (eine geeigneter ganzzahliger Wert, um die Genauigkeit der Berechnung zu verbessern)
  • Gemäß den Bedingungen, die durch den Kompiler angewendet werden, und dem Programminhalt oder dergleichen, können andere Parameter beim Prioritätswert-Berechnungsverfahren, zusätzlich zu Kosten(R, x) dargestellt werden.
  • Zudem kann eines der folgenden Berechnungsprinzipien (Prinzip 2 bis 5) wahlweise angewendet werden.
  • (Prinzip 2)
  • Wenn das Betriebsmittel S dem Betriebsmittel R im Betriebsmittelauswahl-Prioritätsrang folgt, dann wird neben Kosten(R, x), die beim (Prinzip 1) errechnet werden, Kosten(S. x) ermittelt und der Prioritätswert so eingestellt, daß er proportional zu Kosten(R, x) - Kosten(S. x) ist.
  • (Prinzip 2a)
  • Wenn die Betriebsmittel eines geringeren Betriebsmittelauswahl-Prioritätswertes als das Betriebsmittel R als S1, ... Sn, eingestellt sind, dann wird durch Ermitteln des Durchschnittswertes der Kosten als (Kosten(R, x) + Kosten(S1, x) + Kosten(S2, x) + Kosten(S3, x)... Kosten(Sn, x)/(n+1) der Prioritätswert so eingestellt, daß er proportional zu diesem Durchschnittswert ist. (Prinzip 3)
  • Der Prioritätswert, der mit Prinzip 2 ermittelt wird, geteilt durch die Länge des Lebendigkeitsbereiches der Zuweisung x.
  • (Prinzip 3a)
  • Der Prioritätswert, der mit Prinzip 2a ermittelt wird, geteilt durch die Länge des Lebendigkeitsbereiches der Zuweisung x.
  • (Prinzip 4)
  • Der Prioritätswert wird derart eingestellt, daß er proportional zur Zahl der Anweisungen ist, die bereits einem Betriebsmittelelement aus den Elementen in der Gruppe Ov(x) der Zuweisungen zugewiesen wurden, deren Lebendigkeitsbereich die Zuweisung x überlagern.
  • (Prinzip 5)
  • Der Prioritätswert wird derart eingestellt, daß er proportional zur Zahl der Anweisungen ist, die bereits einem Betriebsmittelelement aus den Elementen in der Gruppe R1(x) der Zuweisungen zugewiesen wurden, die kohärente Beziehungen mit der Zuweisung x aufweisen.
  • Die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 weist die Zuweisungen, die in der Auswahlkandidatengruppen-Speichereinheit 10 gespeichert sind, den Betriebsmittelelementen zu. Das folgende ist eine Erläuterung dieses Vorgangs unter Bezugnahme auf das Flußdiagramm in Fig. 16.
  • Die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 findet die Zuweisungen in der Reihenfolge des Zuweisungs-Prioritätsrangs in der Auswahlkandidatengruppen-Speichereinheit 10 auf (Schritte d1, d2, d3 in Fig. 16) und weist, nachdem sie Betriebsmittelelemente gefunden hat, denen die Zuweisungen zugewiesen werden können (diese Betriebsmittelelemente werden zuweisbare Betriebsmittelelemente genannt), diesen die Zuweisungen zu (Schritte d7, d8). Diese Betriebsmittelelemente werden aus dem Betriebsmittel gewählt, das der Betriebsmittel- Klassifizierungs-Zuweisungsgruppe entspricht, zu der die Zuweisung gehört (Schritt d4). Wenn die zuweisbaren Betriebsmittelelemente nicht für das momentan entsprechende Betriebsmittel gewählt werden können, dann sucht die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 das Betriebsmittel aus, das über einen höheren Rückschlußkostenwert für diese Zuweisung verfügt, darüber hinaus aber die geringsten Rückschlußgesamtkosten hat, und speichert dann nach dem Ermitteln, ob die Betriebsmittel-Klassifizierungs-Zuweisungsgruppe des ausgesuchten Betriebsmittels noch zugewiesen werden soll, die Zuweisung in der Betriebsmittel-Klassifizierungs-Zuweisungsgruppe des Betriebsmittels, das als noch nicht zugewiesen ermittelt wurde (Schritt d5, d6).
  • Auch wenn es mehrere zuweisbare Betriebsmittelelemente gibt, dann wird das Betriebsmittelelement aus den zuweisbaren Betriebsmittelelementen im Hinblick auf die Auswirkung ausgewählt, die diese Auswahl auf die Ausführungszeit und die Speichergröße des Zielprogramms haben wird. Diese Auswirkung ist neben den Rückschlußkosten, die durch die durch die Betriebsmittel-Klassifizierungskosten-Berechnungseinrichtung 4 errechnet werden, der erhöhte Umfang aufgrund der Einfügung von Übertragungsanweisungen. Um diesen erhöhten Umfang zu bewerten, kommen bei der vorliegenden Erfindung die beiden Konzepte von Gewinn und Verlust im Hinblick auf die Zuweisung zu Anwendung. Der zuweisungserzeugte Gewinn ist;
  • wie in bei (7) in Fig. 3C gezeigt, die Verringerung der Speichergröße und der Ausführungszeit, die durch das Unnötigmachen der Erzeugung von Übertragungsanweisungen zwischen den Betriebsmittelelementen erreicht wird. Der zuweisungserzeugte Verlust ist der Anstieg der Speichergröße und der Ausführungszeit, die durch die vermehrte Erzeugung von Übertragungsanweisungen zwischen den Betriebsmittelelementen erforderlich wird. Die Werte dieser Gewinne und Verluste werden lokale Gewinnwerte und lokale Verlustwerte genannt und als Bewertungsparameter durch dießetriebsmittelelement-Minderzahl-Zuweisungseinheit 12 verwendet, wobei die Auswahl des zuweisbaren Betriebsmittels durch den Vergleich ihrer Differenzen erfolgt (wobei die Differenz zwischen den lokalen Gewinnwerten und den lokalen Verlustwerten im folgenden als lokaler absoluter Gewinnwert bezeichnet wird).
  • Nun folgt eine Beschreibung der Details des Vorgangs der zuvor erwähnten Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 unter Bezugnahme auf Fig. 15.
  • In Fig. 15 sind Zuweisungen und ihre zugehörigen Lebendigkeitsbereiche, die als vertikale Linie dargestellt sind, als Inhalte der Rahmen mit den Überschriften [Nur ein zuweisbares Element im Betriebsmittel DR], [Mehrere zuweisbare Elemente im Betriebsmittel DR] und [keine zuweisbaren Elemente im Betriebsmittel DR] verzeichnet. [b], [c], [d]... über und links neben diesen vertikalen Linien stellen die Namen der Zuweisungen dar, für die diese Linien die Lebendigkeitsbereiche repräsentieren, während [D0], [D1] auf der linken oder rechten Seite der Linien den Namen des Betriebsmittelelementes zeigen, dem die Zuweisung zugewiesen wurde. Zudem ist das eingekreiste [a] die Zuweisung, die nun zugewiesen werden soll, die in Fig. 12 als ein Element der Betriebsmittel-Klassifizierungs-Zuweisungsgruppe [DR (D0, D1, D2)] gezeigt ist.
  • Da die Zuweisungen [b], [c] im Rahmen mit dem Titel [Nur ein zuweisbares Element im Betriebsmittel DR] bereits den Betriebsmittelelementen [D0], [D1] zugewiesen wurden, kann man erkennen, daß die Zuweisung [a], deren Lebendigkeitsbereich diese überlagert, nur dem Betriebsmittelelement D2 zugewiesen werden kann.
  • Es gibt einen Pfeil, der sich von der Oberseite desselben Rahmens erstreckt, mit dem Rahmen mit dem Titel [Zuweisungsergebnis a = D2] an der Spitze des Pfeils, wobei dieser Rahmen zeigt, daß, wenn lediglich das Betriebsmittelelement D2 zuweisbar ist, die Zuweisung [a] dem Betriebsmittelelement D2 ohne weitere Prüfung zugewiesen wird.
  • Zudem ist im Rahmen mit dem Titel [mehrere zuweisbare Elemente im Betriebsmittel DR] in derselben Zeichnung die Zuweisung a durch den Lebendigkeitsbereich dargestellt, der die Gestalt wie der Buchstabe [h] hat. Unter und über diesem Lebendigkeitsbereich befinden sich die Zuweisungen [g], [b], [c], [d], [e], [f], die den Betriebsmittelelementen [D0, D1, D2] zugewiesen sind, während sich auf der linken und rechten Seite die Zuweisungen [h], [1], [j] befinden, die noch nicht zugewiesen sind. In diesem Fall kann die Zuweisung [a] den Betriebsmittelelementen [D0, D1, D2] zugewiesen werden.
  • Der Pfeil, der sich von der Oberseite dieses Rahmens erstreckt, zeigt auf einen Rahmen mit dem Titel [Bewertung des Gewinnwertes, Verlustwertes] (Kostenbewertung der Übertragungsanweisungs-Einfügung), wobei dieser Rahmen die Zeilen [Betriebsmittelelement], [Gewinnwert]; [Verlustwert] und [absoluter Gewinnwert] beinhaltet, die vertikal gestapelt sind. [D0], [D1], [D2] sind in die Nähe von [Betriebsmittelelement], die numerischen Werte [2], [5], [2] in die Nähe von [Gewinnwert], die numerischen Werte [3], [4], [2] in die Nähe von [Verlustwert] und die numerischen Werte [-1], [1], [0] in die Nähe von [absoluter Gewinnwert] geschrieben, was zeigt, daß für das Betriebsmittelelement D0 der lokale Gewinnwert 2, der lokale Verlustwert 3 und der absolute Gewinnwert-1 ist. Die Spalte [D1 5 4 1] ist eingekreist, wodurch hervorgehoben wird, daß der absolute Gewinnwert für D1 größer ist als jener von D0 und von D2 (im folgenden werden der lokale Gewinnwert, der lokale Verlustwert und der absolute Gewinnwert im selben Format dargestellt, wie es in Fig. 15 gezeigt ist).
  • Ein Pfeil erstreckt sich von der linken Seite des Rahmens mit dem Titel [Bewertung des Gewinnwertes, Verlustwertes] zu einem Rahmen mit dem Titel [Zuweisungsergebnis a = D1], wobei dies zeigt, daß die Zuweisung a dem Betriebsmittel D1 zugewiesen ist, das über den höchsten absoluten Lokalgewinn verfügt.
  • Im Rahmen mit dem Titel [keine zuweisbaren Elemente im Betriebsmittel], in derselben Zeichnung, gibt es drei vertikale Linien, die Lebendigkeitsbereiche zur linken und rechten Seite der vertikalen Linie zeigen, die die Zuweisung a repräsentiert. Diese vertikalen Linien stehen für die Lebendigkeitsbereiche der Zuweisungen [b], [c], und [d], wobei aus den Buchstaben auf der linken Seite jeder Linie zu erkennen ist, daß sie den Betriebsmittelelementen [D0], [D1] bzw. [D2] zugewiesen sind. Da alle Betriebsmittelelemente für das Betriebsmittel DR den Zuweisungen zugewiesen worden sind, deren Lebendigkeitsbereiche die Zuweisung a überlagern, zeigt dies, daß es kein Betriebsmittelelement gibt, dem die Zuweisung a zugewiesen werden kann.
  • An der Spitze des Pfeils, der sich von der linken Seite dieses Rahmens weg erstreckt, gibt es einen Rahmen, der die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen AR und DR zeigt, wobei ein Pfeil mit dem Etikett [a] innerhalb des Rahmens gezeichnet ist, was anzeigt, daß diese Zuweisung [a] von der Betriebsmittel-Klassiflzierungs-Zuweisungsgruppe DR zur Betriebsmittel- Klassifizierungs-Zuweisungsgruppe AR übertragen wird. Obwohl die Überlagerungskosfen für das Betriebsmittel AR [Kosten (AR, a)] höher sind als jene des Betriebsmittels DR, geschieht dies, weil die gesamten Überlagerungskosten für das Betriebsmittel AR die geringsten sind. Selbst wenn die Reihenfolge der Betriebsmittel bezüglich der gesamten Überlagerungskosten DR, AR, Mem wäre, dann würde, wenn Kosten (DR, a) < Kosten (Mem, a) < Kosten (AR, a) sind, die Zuweisung a in der Betriebsmittel-Klassifizierungs-Zuweisungsgruppe für das Betriebsmittel Mem gespeichert werden.
  • Nun folgt die Beschreibung auf welche Weise die lokalen Gewinnwerte und die lokalen Verlustwerte ermittelt werden.
  • Die lokalen-Gewinnwerte und die lokalen Verlustwerte werden im Bezug auf den Prioritätswert, das Gewicht der Schleifenverschachtelungstiefe und die Zahl der Zuweisungen gefunden. Das folgende ist eine Erläuterung des Berechnungsvorgangs des lokalen Gewinnwertes und des lokalen Verlustwertes für die Zuweisung x, die einem Betriebsmittelelement zugewiesen werden soll.
  • (1) Verwendung des Prioritätswertes als Basis zum Finden der lokalen Gewinnwerte und der lokalen Verlustwerte.
  • Dieser Vorgang wird unter Bezugnahme auf Fig. 17 erläutert.
  • In dieser Zeichnung zeigen die dicken weißen Linien die Lebendigkeitsbereich der Zuweisungen, wobei die schwarzen Punkte deren Start- und Endpunkte markieren. In der Zeichnung wurden Strichlinien auf der Höhe dieser schwarzen Punkte gezeichnet, wobei diese zeigen, wo es eine Kohärenz zwischen dem Endpunkt eines Lebendigkeitsbereiches und dem Startpunkt eines weiteren gibt, so daß von den Zuweisungen, deren Start-/Endpunkte mit diesen Strichlinien verbunden sind, gesagt werden kann, daß sie kohärente Beziehungen aufweisen. Zeichenfolgen, wie etwa [Zuweisung x0], [Zuweisung x1] und [Zuweisung x11], die die Zuweisungsnamen darstellen, wurden den vertikalen Linien hinzugefügt, die die Lebendigkeitsbereiche darstellen. Zudem ist für die Zuweisungen, die bereits zugewiesen wurden, eine Zeichenfolge, die den Namen des Betriebsmittelelementes zeigt, dem die Zuweisung zugewiesen wurde, direkt über den Zuweisungsnamen geschrieben. Zudem sind Pfeile eingezeichnet, die sich von diesen Zuweisungs- und Betriebsmittelelementnamen erstrecken. In der Zeichnung zeigen die Strichlinienpfeile welchen lokalen Gewinnwert, lokalen Verlustwert und absoluten Gewinnwert das Betriebsmittelelement dieses Namens in der Tabelle hat, während die Vollinien im Bezug darauf zeigen, für welche Zuweisungen lokale Gewinnwerte und lokale Verlustwerte gefunden werden. Die Tabelle, die die lokalen Gewinnwerte, die lokalen Verlustwerte und die absoluten Gewinnwerte zeigt, hat dasselbe Format wie die Tabelle aus Fig. 15 und stellt in jeder Spalte den lokalen Gewinnwert, den lokalen Verlustwert, und den absoluten Gewinnwert für jedes Betriebsmittelelement dar.
  • Da in Fig. 17 die vertikalen Linien, die die Lebendigkeitsbereiche für die Zuweisung x1 und die Zuweisung x2 darstellen, einen überlappenden Abschnitt haben, ist zu sehen, daß deren Lebendigkeitsbereiche einander überlagern. Da in derselben Weise die vertikalen Linien, die die Lebendigkeitsbereiche der Zuweisung x1 und der Zuweisung x11 darstellen, über einen überlappenden Abschnitt verfügen, ist zu erkennen, daß sich deren Lebendigkeitsbereiche ebenfalls überlagern.
  • Da zudem der Startpunkt des Lebendigkeitsbereiches der Zuweisung x mit dem Endpunkt des Lebendigkeitsbereiches der Zuweisung x0 mit einer Strichlinie verbunden ist, kann man erkennen, daß die Zuweisungen x und x0 kohärente Beziehungen aufweisen. Da in derselben Art und Weise der Endpunkt des Lebendigkeitsbereiches der Zuweisung x mit dem Startpunkt des Lebendigkeitsbereiches der Zuweisung x1 durch eine Strichlinie verbunden ist, ist zu sehen, daß die Zuweisungen x und x1 kohärente Beziehungen aufweisen. In der Zeichnung ist zu erkennen, daß x0 dem Register D1 zugewiesen wurde und die Zuweisung x1 noch zugewiesen werden muß. Zuweisungen, die kohärente Beziehungen mit der Zuweisung x, wie etwa die Zuweisung x1, in der Zuweisungsgruppe R1 (x) haben, die in Fig. 11B gezeigt wurde, werden dann weiter klassifiziert. Das bedeutet, die Gruppe aller Zuweisungen, die noch zugewiesen werden müssen, werden R1 (x) genannt, wobei die Gruppe der bereits zugewiesenen Zuweisungen R2(x) genannt wird.
  • Nun folgt eine Beschreibung der Berechnung des lokalen Gewinnwertes und des lokalen Verlustwertes durch die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12.
  • Zunächst werden alle Elemente, die kohärente Beziehungen mit der Zuweisung x in der Zuweisungsgruppe R1(x) aufweisen, entnommen und die bereits zugewiesenen Zuweisungen R2(x) gesucht. Hier ist die Zuweisung x0, die als ein Element in der Zuweisungsgruppe R1(x) erscheint, als bereits zum Register D1 zugewiesen gegeben, so daß, wie mit den Pfeilen d11, d12 in Fig. 17 gezeigt, der lokale Gewinnwert des Registers D1 der Prioritätswert 3 der Zuweisung x0 ist.
  • Als nächstes werden alle Elemente, die kohärente Beziehungen mit der Zuweisung x aufweisen, entnommen und die Gruppe der Zuweisungen, die nicht R1 (x) zugewiesen sind gesucht. Die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 entnimmt anschließend die Zuweisung x1, die ein Element in R1(x) ist, und untersucht erneut die Elemente in Ov(x1). Dann weist sie die Zuweisung x11, die als ein Element in Ov(x1) erscheint, dem Register D0 zu. Wie es mit den Pfeilen e11 und e12 gezeigt ist, stellt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 den Prioritätswert der Zuweisung x1 als lokalen Verlustwert des Registers D0 ein.
  • (2) Verwendung des Gewichts der Schleifen-Verschachtelungstiefe als Basis zum Auffinden des lokalen Gewinnwertes und des lokalen Verlustwertes.
  • Nun folgt eine Erläuterung dieses Vorgangs unter Bezugnahme auf Fig. 18. Fig. 18 zeigt einen Programmteil, der unter Verwendung desselben Verfahrens, wie es in Fig. 17 verwendet wurde, ausgedrückt ist.
  • Da in Fig. 18 die vertikale Linie, die die Zuweisung x darstellt, einen Überlappenden Teil mit der vertikalen Linie aufweist, die für die Zuweisung x2 steht, ist zu erkennen, daß der Lebendigkeitsbereich der Zuweisung x jenen der Zuweisung x2 überlagert. Da in derselben Weise die vertikale Linie, die die Zuweisung x1 darstellt, einen überlappenden Teil mit der vertikalen Linie aufweist, die die Zuweisung x11 kennzeichnet, ist zu erkennen, daß der Lebendigkeitsbereich der Zuweisung x1 den der Zuweisung x11 überlagert. Da zudem der Startpunkt des Lebendigkeitsbereiches der Zuweisung x mit dem Endpunkt des Lebendigkeitsbereiches der Zuweisung x0 durch eine Strichlinie verbunden ist, ist zu erkennen, daß die Zuweisungen x und x0 kohärente Beziehungen aufweisen. Da auf dieselbe Art und Weise der Endpunkt des Lebendigkeitsbereiches der Zuweisung x mit dem Startpunkt des Lebendigkeitsbereiches der Zuweisung x1 mit einer Strichlinie verbunden ist, kann man erkennen, daß die Zuweisungen x und x1 kohärent Beziehungen aufweisen. In der Zeichnung ist zu sehen, daß x0 dem Register D1 zugewiesen wurde, und daß die Zuweisung x1 noch zuzuweisen ist. In Fig. 18 ist die Zuweisung x0 als ein Element in R2(x) und die Zuweisung x1 als ein Element in R1(x) eingestellt.
  • In dieser Darstellung ist die Zuweisung x0, die, wie oben erwähnt, ein Element in der Zuweisungsgruppe R2(x) ist, dem Register D0 zugewiesen. Bei dieser Gelegenheit verwendet die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 das Gewicht der Schleifen-Verschachtelungstiefe der Schritte (im folgenden kohärente Schritte genannt), deren Start- oder Endpunkt kohärent mit dem Start- oder Endpunkt des Lebendigkeitsbereiches der Zuweisung x oder des Start- oder Endpunktes der Zuweisung x0 sind, als lokalen Gewinnwert, wie es mit den Pfeilen d13 und d14 gezeigt ist. Wenn es mehrere kohärente Schritte für die Zuweisung x und die Zuweisung x0 gibt, dann wird das Gesamtgewicht der Schleifen-Verschachtelungstiefe für alle derartigen Schritte gefunden und anschließend als lokaler Gewinnwert des Betriebsmittelelementes D1 eingestellt.
  • Darüber hinaus entnimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 die Zuweisung x1, die ein Element in der Zuweisungsgruppe R1 (x) ist, und untersucht die Elemente in Ov(x). Nachdem die Zuweisung x1, die als ein Element in Ov(x) erscheint, dem das Betriebsmittelelement D0 zugewiesen wurde, verwendet die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 in derselben Weise wie beim lokalen Gewinnwert das Gewicht der Schleifen- Verschachtelungstiefe der kohärenten Schritte für die Zuweisung x und die Zuweisung x11 als lokale Verlustwerte des Betriebsmittelelementes D0, wie es mit den Pfeilen e13 und e14 gezeigt ist. Gibt es mehrere kohärente Schritte für die Zuweisung x und x0, dann wird das Gesamtgewicht der Schleifen-Verschachtelungstiefe für alle diese Schritte gefunden und als lokaler Verlustwert für das Betriebsmittelelement verwendet.
  • (3) Verwendung der Zahl der Zuweisungen als Basis zum Ermitteln der lokalen Gewinnwerte und der lokalen Verlustwerte.
  • Das folgende ist eine Beschreibung dieses Vorgangs unter Bezugnahme auf Fig. 19. Fig. 19 stellt einen Programmteil dar, der unter Verwendung desselben Verfahrens beschrieben ist, wie es bei Fig. 17 und 18 verwendet wurde.
  • Da in Fig. 19 der Lebendigkeitsbereich der Zuweisung x divergiert, divergiert ebenfalls die vertikale Linie, die diesen Lebendigkeitsbereich darstellt. Da das obere Ende der vertikalen Linie, die für die Zuweisung x steht, einen überlappenden Teil mit der vertikalen Linie aufweist, die die Zuweisung x2 repräsentiert, ist zu erkennen, daß der Lebendigkeitsbereich der Zuweisung x den der Zuweisung x2 überlagert. Da sich der untere Teil zudem in drei Teile verzweigt, die auf drei Strichlinien treffen, ist zu erkennen, daß drei Zuweisungen kohärente Beziehungen mit der Zuweisung x haben. Überlagernd mit den Lebendigkeitsbereichen dieser Zuweisungen gibt es zudem die Lebendigkeitsbereiche der Zuweisungen x3, x4 und x5, die als den Betriebsmittelelementen D0, D1 bzw. D2 zugewiesen dargestellt sind. Zuweisungen, deren Lebendigkeitsbereiche jene der Zuweisungen mit kohärenten Beziehungen überlagern und bereits den Betriebsmittelelementen, wie etwa den Zuweisungen x3, x4 und x5 zugewiesen sind, werden Verlustzuweisungsgruppe Lo(x) genannt.
  • In dieser Zeichnung sind zwei der Elemente in der Zuweisungsgruppe der Zuweisungen mit kohärenten Beziehungen mit der Zuweisung x x1 und x2. Von diesen beiden wurde die Zuweisung x1 bereits dem Betriebsmittelelement D0 zugewiesen, während die Zuweisung x2 bereits dem Betriebsmittelelement D1 zugewiesen wurde. In diesem Fall stellt die Betriebsmittelelement- Minderzahl-Zuweisungseinheit 12 den lokalen Gewinnwert für das Register D0 und das Register D1 jeweils auf 1 ein.
  • Die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 findet zudem Lo(x) für die Zuweisung x. Nachdem Ov(x1) für das Element x1 in R2(x), wie oben erwähnt, gefunden wurde, findet sie die Elemente in Ov(x1), die bereits einem Betriebsmittelelement zugewiesen wurden. Die Zuweisungen, die auf diesem Weg ermittelt wurden werden zu Lo(x). Darüber hinaus gibt es in Fig. 19 drei Elemente x3, x4 und x5 in Lo(x), wobei x3 und x5 bereits dem Register D0 zugewiesen sind und die Zuweisung x4 bereits dem Register D1 zugewiesen sind. Bei einer derartigen Gelegenheit stellt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 den lokalen Verlustwert des Registers D0 auf 2 und den lokalen Verlustwert des Registers D1 auf 1 ein.
  • Wenn zudem die Maschinensprache-Anweisungen des Mikroprozessors der Zielmaschine aus zwei Operationszeichen-Formaten besteht und die Operationszeichen in der obigen {numerischen Gleichung 3} für nicht kommutative Operationen, wie etwa Subtraktion oder Division vorgesehen sind, kann der Vorgang für den lokalen Verlustwert, der oben beschrieben wurde, ergänzt werden. Dies hat seinen Grund darin, daß, wenn die Zuweisungen, die das Operationsergebnis und die Zuweisung auf der rechten Seite des Operationszeichens (im folgenden als N-Operationszeichen-Zuweisungbezeichnet) speichern, demselben Betriebsmittelelement zugewiesen werden, dies einen Verlust verursacht, insofern als daß Übertragungsanweisungen weiterhin notwendig werden, im Gegensatz zu dem Fall, bei dem die Zuweisungen, die das Operationsergebnis und die Zuweisung auf der linken Seite des Operationszeichens speichern, demselben Betriebsmittelelement zugewiesen werden. Der Verlustwert für das Ermitteln das Ausmaßes dieser Art von Verlust wird durch die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 berechnet. Genauer gesagt findet, wenn die zuzuweisende Zuweisung x durch eine nicht kommutative Operation definiert ist, die Betriebsmittelelement-Minderzahl-Zuweisungs einheit 12 die Zuweisung x1 auf, die als N-Operationszeichen verwendet werden soll. Zudem findet die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 die Zuweisung x1 auf, um diese als Zuweisung zu verwenden, um das Operationsergebnis zu speichern. Die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 stellt die aufgefundenen Zuweisungen x1 als Elemente in der Gruppe T1 (x) der Zuweisungen für nicht kommutative Operationen ein und findet daraufhin die Gruppe T2(x) der Elemente aus den Elementen in T1 (x), die bereits einem Betriebsmittelelement zugewiesen wurden. Wenn ein Element in T2(x) x1 ist, dann nimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 entweder den Prioritätswert der Zuweisung x1 oder das Gewicht der Schleifen-Verschachtelungstiefe des Schrittes, zu dem dieses nicht kommutative Operationsmittel gehört, als lokalen Verlustwert des Betriebsmittelelementes, dem x1 zugewiesen ist.
  • Bei der obigen Berechnung kommt die Schleifen-Verschachtelungstiefe zur Anwendung. Es kann jedoch anstelle dessen die Operationsfrequenz jedes Schrittes verwendet werden. In diesem Fall werden die Rückschlußwerte der Operationsfrequenz jedes Schrittes, der durch den Programmierer erzeugt wird, im voraus gespeichert und durch Addieren dieser Werte zu den Summen für jeden Lebendigkeitsbereich als Parameter für den lokalen Gewinnwert und den lokalen Verlustwert verwendet. Wenn zudem der Zuweisungsvorgang für dasselbe Betriebsmittel wiederholt wird und ein Zielprogramm vorhanden ist, das man durch einen zuvor erfolgten Zuweisungsvorgang erhält, dann kann dieser die Operationsfrequenz verwenden, die man erhält, wenn dieses Zielprogramm ausgeführt wird.
  • Wenn die Betriebsmittelelement-Mehrzahl-Zuweisungseinheit 16 feststellt, daß etwa dann, wenn das Betriebsmittel der Speicher ist, die Zahl der Betriebsmittelelemente für die Betriebsmittel, die in der Auswahlkandidatengruppen-Speichereinheit 10 gespeichert sind, deutlich größer ist als die Anzahl der Zuweisungen, dann weist sie die Zuweisungen, deren Lebendigkeitsbereiche sich überlagern, getrennt unterschiedlichen Betriebsmitteln zu.
  • Neben dem Aufbau, der soweit erläutert wurde, gibt es eine Reihe von Funktionen, die für die Erzeugung eines Maschinenspracheprogramms erforderlich sind, aber da diese nicht wesentlicher Teil der vorliegenden Erfindung sind, wird auf deren Beschreibung verzichtet.
  • Nun folgt eine Erläuterung des präzisen Betriebs der Betriebsmittel-Zuweisungseinheit 33, die gemäß der vorliegenden, oben beschriebenen Ausführungsform aufgebaut ist, unter Bezugnahme auf das Flußdiagramm für die Betriebsmittel-Zuweisungs-Steuereinheit 1, die in Fig. 20 gezeigt ist.
  • Die Betriebsmittel der Zielmaschine bestehen aus einem Adreßregister AR, einem Datenregister DR und einem Speicher Mem. Das Betriebsmittel AR besteht aus den Betriebsmittelelementen A0, A1 und A2, während das Betriebsmittel DR aus den Betriebsmittelelementen D0, D1 und D2 besteht. Zudem gibt es Funktionseinschränkungen, die jedes der Betriebsmittel betreffen. Das Betriebsmittel AR erfüllt eine indirekte Referenzfunktion für den Speicher, während DR dies nicht tut. Darüber hinaus kann das Betriebsmittel DR als Betriebsmittel für die Multiplikations- und Divisionsoperationen verwendet werden, während dies mit AR nicht möglich ist. Die Register D0 und A0 sind als Register eingerichtet, die als Argumentregister, Rückkehrwert-Register und Bruchregister verwendet werden.
  • Für das Beispielprogramm, das in Fig. 8 gezeigt ist, werden die Basisblöcke aus dem Quellprogrammm extrahiert, wobei man die Informationen für die Variablen und die Lebendigkeitsbereiche durch Optimierung mit der Optimierungseinrichtung 22 erhält. Die Variablen sind in derselben Zeichnung als, s, q, r, a, b, c, d, e, f, g, Ret, f1, und f2 dargestellt.
  • In diesem Zustand fährt der Betrieb zur Betriebsmittel-Zuweisungseinheit 33 fort. Die Betriebsmittel-Zuweisungs-Steuereinheit 1 aktiviert anschließend die Zuweisungs-Erzeugungseinheit 2. Die Zuweisungs-Erzeugungseinheit 2 erzeugt daraufhin die Zuweisungen (Schritt a1 in Fig. 20). Als Ergebnis erhält man die [Zuweisungs]-Informationen in Fig. 8B. Jede Variable und der Lebendigkeitsbereich, der mit einer schwarzen Linie gekennzeichnet ist, sind in derselben Zeichnung dargestellt.
  • Die Zuweisungsinformationen, die in Fig. 8B gezeigt sind, werden durch die Zuweisungs-Speichereinheit gespeichert, die in Fig. 7 erscheint. Die Betriebsmittel-Zuweisungs-Steuereinheit 1 aktiviert die Kohärenzbeziehungs-Referenzeinheit 6 und verfügt über die kohärenten Beziehungen der unterschiedlichen untersuchten Zuweisungen (Schritt a2 in Fig. 20).
  • Demzufolge erhält man die Gruppe R1 (x) der Zuweisungen für eine willkürliche Zuweisung x, wie es in Fig. 11B gezeigt ist.
  • Als nächstes aktiviert die Betriebsmittel-Zuweisungs-Steuereinheit 1 die Simultanexistenz- Zuweisungs-Referenzeinheit 5. Anschließend ermittelt die Simultanexistenz-Zuweisungs-Referenzeinheit 5, welche Zuweisungen der unterschiedlichen Zuweisungen, die in der Zuweisungs-Speichereinheit 3 gespeichert sind, über Lebendigkeitsbereiche verfügen, die sich überlagern (Schritt a3).
  • Als Ergebnis erhält man die Informationen für Ov(x), die die Gruppe der Zuweisungen ist, deren Lebendigkeitsbereiche den Lebendigkeitsbereich einer willkürlichen Zuweisung x überlagern, wie es in Fig. 11A gezeigt ist.
  • Anschließend wird die Betriebsmittel-Klassifizierungs-Kostenberechnungseinrichtung 4 aktiviert und die Berechnung (Schritt a4) der Rückschlußkosten für jede der Zuweisungen x auf der Basis der Überlagerungswerttabelle ausgeführt, bevor die Betriebsmittel-Klassifizierungs- Zuweisungsgruppen-Teilungseinheit 7 aktiviert wird.
  • Für das Beispiel, das in Fig. 8A gezeigt ist, entnimmt die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Teilungseinheit 7 die Zuweisung a (Schritt b1 in Fig. 13). Als nächstes werden das Betriebsmittel AR und das Betriebsmittel DR als Geringstkosten-Betriebsmittel für die Zuweisung a ermittelt (Schritt b2). Da es mehrere Geringstkosten-Betriebsmittel gibt, werden die Zuweisungen ermittelt, die kohärente Beziehungen mit der Zuweisung a aufweisen (Schritt b3). Da es keine derartigen Zuweisungen gibt, wird DR als Geringstkosten-Betriebsmittel gewählt. Anschließend wird die Zuweisung a in der Betriebsmittel-Klassifizierungs-Zuweisungsgruppe für das Betriebsmittel DR gespeichert (Schritt b8).
  • Als nächstes nimmt die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Teilungseinheit 7 die Zuweisung e auf (Schritt b1). Es wird dann festgestellt, daß sowohl AR als auch DR das Geringstkosten-Betriebsmittel für die Zuweisung e sind (Schritt b2). Da es mehr als ein Geringstkosten-Betriebsmittel gibt, werden die Zuweisungen, die kohärente Beziehungen mit der Zuweisung a aufweisen, ermittelt (Schritt b3), wobei die Ergebnisse die Zuweisungen b und f sind. Da es Zuweisungen mit kohärenten Beziehungen gibt, wird die Zuweisung b, die die stärkste Beziehung mit der Zuweisung e hat, gewählt (Schritt b4). Anschließend wird das Geringstkosten-Betriebsmittel für die Zuweisung b ermittelt, wobei das Ergebnis das Betriebsmittel DR ist (Schritt b5). Da es lediglich ein Geringstkosten-Betriebsmittel gibt, wird die Zuweisung e in der Betriebsmittel-Klassifizierungs-Zuweisungsgruppe für das Betriebsmittel DR gespeichert (Schritt b9).
  • Der oben beschriebene Vorgang wird für alle Zuweisungen ausgeführt. Als Ergebnis erhält man die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen, die in Fig. 12 dargestellt sind.
  • Als nächstes aktiviert die Betriebsmittel-Zuweisungs-Steuereinheit 1 die Betriebsmittel-Klassifizierungsgruppen-Auswahleinheit 9 und führt die Betriebsmittel-Klassifizierungs-Auswahlgruppe aus (Schritt a6 in Fig. 20).
  • Da für das Beispiel, das in Fig. 12 gezeigt ist, die zuzuweisenden Betriebsmittel DR, AR und Mem sind, werden die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen für diese allesamt aufgenommen (Schritt c4 in Fig. 14). Anschließend wird der Betriebsmittelauswahl-Prioritätsrang berechnet. Als Ergebnis dieser Berechnung erhält man den Betriebsmittelauswahl-Prioritätsrang von DR, AR und Mem. Da das Betriebsmittel mit dem höchsten Betriebsmittelauswahl-Prioritätsrang DR ist, wird die Betriebsmittel-Klassifizierungs-Zuweisungsgruppe für das Betriebsmittel DR ausgewählt (Schritt c5). Anschließend wird die Betriebsmittel-Klassifizierungs-Zuweisungsgruppe für das ausgewählte Betriebsmittel DR in der Auswahlkandidatengruppen-Speichereinheit 10 gespeichert.
  • Als Ergebnis dieser Operation wird die Betriebsmittel-Klassifizierungs-Zuweisungsgruppe (DR, {a, b, c, d, e, f, g}) gewählt und in die Auswahlkandidatengruppen-Speichereinheit 10 geschrieben.
  • Als nächstes aktiviert die Betriebsmittel-Zuweisungs-Steuereinheit 1 die Zuweisungs-Prioritätswert-Berechnungseinrichtung 11 und entscheidet über den Prioritätswert sowie den Zuweisungs-Prioritätsrang für die unterschiedlichen Zuweisungen (Schritt aß). Um den Prioritätswert zu berechnen werden die Kosten (DR, x), die die Rückschlußkosten für die willkürliche Zuweisung x sind, und die Lebendigkeitsbereich-Informationen Ln(x) erforderlich.
  • Die Längen der unterschiedlichen Lebendigkeitsbereiche der Zuweisungen sind durch die {numerische Gleichung 4} dargestellt.
  • {Numerische Gleichung 4}
  • Ln(s) = 4 Ln(q) = 4 Ln(r) 9 Ln(a) = 5
  • Ln(b) = 6 Ln(c) = 2 Ln(d) = 1 Ln(e) = 1
  • Ln(f) = 1 Ln(g) = 1
  • Mit diesen Informationen sind die Prioritätswerte der Zuweisungen in folgender Art und Weise gegeben.
  • Die Zuweisungen f1, f2 und Ret sind bereits einem Betriebsmittel zugewiesen, aber das Gewicht der Schleifen-Verschachtelungstiefe ist als Prioritätswert der Schleife f1, f2 und Ret gegeben.
  • Anschließend aktiviert die Betriebsmittel-Zuweisungs-Steuereinheit 1 die Betriebsmittelelement- Minderzahl-Zuweisungseinheit 12 und hat die Zuweisungen den Betriebsmitteln zugewiesen (Schritt a9). Die hier zugewiesenen Zuweisungen sind jene in der Betriebsmittel-Klassifizierungs-Zuweisungsgruppe für das Betriebsmittel DR.
  • Das folgende ist eine Beschreibung des Betriebsablaufs der Betriebsmittelelement-Minderzahl- Zuweisungseinheit 12 unter Bezugnahme auf das Flußdiagramm in Fig. 16. Bei der folgenden Beschreibung werden die Prioritätswerte in ihrer Ursprungsform verwendet, um die lokalen Gewinnwerte und die lokalen Verlustwerte zu berechnen.
  • Zunächst ermittelt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 ob Zuweisungen gibt, die noch zugewiesen werden müssen und nimmt aus den Zuweisungen, die noch zugewiesen werden müssen, die Zuweisung d, die über den höchsten Prioritätswert verfügt (Schritt d3 in Fig. 16). Dann findet sie die Zuweisungen, die den Betriebsmittelelementen als Ov(d) zugewiesen sind. Da es keine derartigen Elemente gibt, nimmt sie die Betriebsmittelelemente D0, D1, D2 als zuweisbare Elemente (Schritt d4) (Schritt d7). Da es 3 zuweisbare Betriebsmittelelemente gibt, untersucht sie, um die lokalen Gewinnwerte sowie die lokalen Verlustwerte für die unterschiedlichen Betriebsmittelelemente zu finden, ob es Zuweisungen, die bereits Betriebsmittelelementen zugewiesen wurden, in R1 (d) gibt, das kohärente Beziehungen aufweist. Gibt es keine, dann prüft sie, ob es derartige in Ov(c) der Zuweisung c gibt, die ein Element in R1(d) ist. Die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 sucht dann die Zuweisung f1 aus Ov(c). Anschließend wird der Prioritätswert der Zuweisung c zum lokalen Verlustwert des Betriebsmittelelementes D0 addiert, dem die Zuweisung f1 zugewiesen ist (Schritt d9). Da die Betriebsmittelelemente D1 und D2 die Betriebsmittelelemente mit hohen absoluten Gewinnwerten sind, wird aus diesen das Betriebsmittelelement D1 gewählt und diesem die Zuweisung d zugewiesen (Schritt d10).
  • Als nächstes nimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 die Zuweisung f heraus, die den Prioritätswert auf Rang zwei hat (Schritt d3). Wie bei der Zuweisung d zuvor, werden die Zuweisungen, die bereits einem Betriebsmittelelement zugewiesen wurden, in Ov(f) gesucht. Da es keine derartigen Zuweisungen gibt, nimmt sie die Betriebsmittelelemente D0, D1 und D2 als zuweisbare Betriebsmittelelemente (Schritt d4), (Schritt d7). Da es drei zuweisbare Betriebsmittel gibt, untersucht sie, um die lokalen Gewinnwerte und die lokalen Verlust werte für die unterschiedlichen Betriebsmittelelemente zu finden, ob es in R1 (f) Zuweisungen gibt, die bereits zugewiesen wurden. Da in R1(f) keine vorhanden sind, ändert sie die lokalen Gewinnwerte oder die lokalen Verlustwerte nicht (Schritt d9). Da die lokalen Gewinnwerte und die lokalen Verlustwerte dieselben sind, wird die Zuweisung f dem Betriebsmittel D0 zugewiesen (Schritt d10-d11).
  • Als nächstes entnimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 die Zuweisung e, die den Prioritätswert des dritten Rangs hat (Schritt d3). Die Zuweisungen, die bereits einem Betriebsmittelelement zugewiesen wurden, werden aus Ov(e) gesucht. Da es keine derartigen Zuweisungen gibt, nimmt sie die Betriebsmittelelemente D0, D1, und D2 als zuweisbare Betriebsmittelelemente (Schritt d4), (Schritt d7). Da es mehrere zuweisbare Betriebsmittel gibt, werden, um die lokalen Gewinnwerte und die lokalen Verlustwerte zu finden, die Zuweisungen, die bereits einem Betriebsmittel in R1 (e) zugewiesen wurden, zuerst untersucht. In diesem Fall gibt es keine derartige Zuweisung. Als nächstes werden jene Zuweisungen untersucht, die noch keinem Betriebsmittelelement in R1 (e) zugewiesen sind. Die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 entnimmt anschließend die Zuweisung b. Da der Lebendigkeitsbereich der Zuweisung b jene der Zuweisungen f1 und f2 überlagert, die bereits D0 zugewiesen wurden, wird der Prioritätswert der Zuweisung b zum lokalen Verlustwert des Betriebsmittelelementes D0 addiert (Schritt d9). Anschließend entnimmt die Betriebsmittelelement-Minderzahl- Zuweisungseinheit 12 die Zuweisung f. Da die Zuweisung f dem Betriebsmittelelement D0 zugewiesen wurde, wird der Prioritätswert der Zuweisung f zum lokalen Gewinnwert addiert. Da die absoluten lokalen Gewinnwerte für die Betriebsmittelelemente mit 1,3, 0, 0 rangieren, wird die Zuweisung e dem Betriebsmittelelement D0 zugewiesen, das über den höchsten absoluten lokalen Gewinn verfügt.
  • Als nächstes entnimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 die Zuweisung g, die den Prioritätswert des vierten Rangs hat (Schritt d3). Die Zuweisungen, die bereits einem Betriebsmittelelement zugewiesen wurden, werden aus Ov(g) gesucht. Da es keine derartigen Zuweisungen gibt, nimmt sie die Betriebsmittelelemente D0, D1, und D2 als zuweisbare Betriebsmittelelemente (Schritt d4), (Schritt d7). Um die lokalen Gewinnwerte und die lokalen Verlustwerte zu finden, werden anschließend die Zuweisungen, die bereits einem Betriebsmittelelement in R1 (g) zugewiesen wurden, untersucht. Als Ergebnis werden die Zuweisungen f und Ret gefunden. Da die Zuweisungen f und Ret bereits dem Betriebsmittelelement D0 zugewiesen sind, werden die Prioritätswerte der Zuweisungen f und Ret zum lokalen Gewinnwert des Betriebsmittelelementes D0 (Schritt d9) addiert. Die Zuweisung g wird daraufhin dem Betriebsmittelelement D0 zugewiesen, das über den höchsten absoluten Gewinnwert verfügt.
  • Als nächstes entnimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 die Zuweisung c, die den Prioritätswert des fünften Rangs hat (Schritt d3). Die Zuweisungen, die bereits einem Betriebsmittelelement zugewiesen wurden, werden in Ov(c) gesucht, wobei auf diese Weise die Zuweisung f1 gefunden wird. Da die Zuweisung f1 dem Betriebsmittelelement D0 zugewiesen wurde, werden die Betriebsmittelelemente D1 und D2 als zuweisbare Betriebsmittelelemente genommen (Schritt d4), (Schritt d7). Um anschließend die lokalen Gewinnwerte und die lokalen Verlustwerte für die Betriebsmittelelemente D1 und D2 zu finden, werden die Zuweisungen, die bereits einem Betriebsmittelelement in R1 (c) zugewiesen wurden, untersucht. Als Ergebnis findet die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 die Zuweisung d. Da die Zuweisung d bereits dem Betriebsmittelelement D1 zugewiesen wurde, wird der Prioritätswert der Zuweisung d zum lokalen Gewinnwert des Betriebsmittelelementes D1 addiert (Schritt d9). Anschließend wird die Zuweisung c dem Betriebsmittelelement D1 zugewiesen, das über den höchsten absoluten Gewinnwert verfügt.
  • Als nächstes entnimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 die Zuweisung b, die den Prioritätswert des sechsten Rangs hat (Schritt d3). Die Zuweisungen, die bereits einem Betriebsmittelelement zugewiesen wurden, werden in Ov(b) gesucht, wobei auf diese Weise die Zuweisungen f1, f2, c und d aufgefunden werden. Da die Zuweisungen f1, f2, c und d bereits den Betriebsmittelelementen D0 und D1 zugewiesen wurden, wird das Betriebsmittelelement D2 als zuweisbares Betriebsmittelelement für die Zuweisung b genommen (Schritt d4), (Schritt d7). Anschließend wird die Zuweisung b dem Betriebsmittelelement D2 zugewiesen (Schritt d8).
  • Als nächstes entnimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 die Zuweisung a, die über den Prioritätswert des siebten Rangs verfügt (Schritt d3). Die Zuweisungen, die bereits einem Betriebsmittelelement zugewiesen wurden, werden in Ov(a) gesucht, wobei somit die Zuweisungen f1, b, c und d gefunden werden. Diese Zuweisungen f1, b, c und d wurden bereits den Betriebsmittelelementen D0, D1 und D2 zugewiesen (Schritt d4). Da es kein zuweisbares Betriebsmittelelement gibt, wird die Zuweisung AR als nächstes nicht zugewiesenes Betriebsmittelelement gefunden (Schritt d5). Anschließend wird die Zuweisung a in der Betriebsmittel-Klassifizierungs-Zuweisungsgruppe für das Betriebsmittel AR gespeichert (Schritt d6). Die Betriebsmittel-Klassifizierungs-Zuweisungsgruppe für das Betriebsmittel AR wird dann zu (AR, {a, s, q, r}).
  • Mit Hilfe der Operation, die oben beschrieben wurde, wird die Zuweisungsoperation für die Betriebsmittel-Klassifizierungs-Zuweisungsgruppe für das Betriebsmittel DR ausgeführt und die unterschiedlichen Zuweisungen zugewiesen, wie es unten dargestellt ist.
  • Auf dieselbe Art und Weise wird die Zuweisungsoperation für die Betriebsmittel-Klassifizierungs-Zuweisungsgruppe des Betriebsmittels AR ausgeführt und die unterschiedlichen Betriebsmittelelemente dem Betriebsmittel des Betriebsmittels AR zugewiesen.
  • Nachdem die Zuweisungen den Betriebsmittelelementen von DR und AR zugewiesen wurden, aktiviert die Betriebsmittel-Zuweisungs-Steuereinheit 1 die Betriebsmittelelement-Mehrzahl-Zuweisungseinheit 16, um die verbleibenden Zuweisungen den Betriebsmittelelementen des Mem- Betriebsmittels zuzuweisen. Die Betriebsmittelelement-Mehrzahl-Zuweisungseinheit 16 weist die Zuweisungen den Betriebsmittelelementen des Mem-Betriebsmittels zu. Dadurch teilt sie, wenn die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Auswahleinheit 9 die Betriebsmittel- Klassifizierungs-Zuweisungsgruppen aller Betriebsmittel ausgewählt hat, der Betriebsmittel- Zuweisungs-Steuereinheit 1 den Abschluß des Vorgangs mit (Schritt a16), worauf die Betriebsmittel-Zuweisungssteuereinheit 1 beim Empfang dieser Nachricht den Betrieb des Betriebsmittel-Zuweisungsgerätes beendet.
  • Durch Verwendung der vorliegenden Erfindung auf diese Art und Weise, wird es mit Hilfe des Zuweisungsvorgangs für das Zuweisen von Zuweisungen zu den Betriebsmittelelementen möglich, sehr genau den Zuweisungszustand der Betriebsmittelelemente zu beurteilen, denen die Zuweisungen zugewiesen sind, wobei eine umfassende Kostenbewertung ausgeführt wird. Demzufolge wird die Zahl der Zuweisungen, die dem Speicher zugewiesen werden, deutlich geringer, wobei die Zahl der Übertragungsanweisungen zwischen dem Speicher und den Registern sowie zwischen den Registern an sich verringert wird, so daß es möglich ist, die Programmgröße und die Ausführungszeit des Maschinenspracheprogramms zu verringern, das schließlich erzeugt wird. Wenn die Zielmaschine eine nur geringe Zahl von Registern hat, sind die Verbesserungen der Programmgröße und der Ausführungszeit insbesondere bemerkbar.
  • Wenn es darüber hinaus Betriebsmittel gibt, die in drei oder mehrere Funktionen aufgeteilt sind, dann wird es, nachdem die geeignete Zahl von Betriebsmittelelementen zum Zuweisen der Zuweisungen gewählt werden kann, für die Programmentwicklung der integrierten Verwendung von Mikroprozessoren, die mit mehreren Betriebsmitteln unterschiedlicher Funktionen zum Reduzieren der Hardwarekosten ausgestattet sind, mit Hilfe des Kompilers der vorliegenden Erfindung möglich, ein Maschinenspracheprogramm zu erzeugen, das vollen Nutzen aus den unterschiedlichen Funktionen zieht, die in einem derartigen Mikroprozessor enthalten sind.
  • Zweite Ausführungsform
  • Fig. 21 zeigt den Aufbau eines Betriebsmittel-Zuweisungsgerätes 35 gemäß der zweiten Ausführungsform der vorliegenden Erfindung. In dieser Zeichnung haben die Konstruktionselemente, die jenen beim Betriebsmittel-Zuweisungsgerät 33 der ersten Ausführungsform gleichen, dieselben Bezugszeichen, wobei auf eine Erklärung derselben verzichtet wird, so daß lediglich die Unterschiede beschrieben werden.
  • Zusätzlich zum Aufbau des Betriebsmittel-Zuweisungsgerätes 33 weist das Betriebsmittel- Zuweisungsgerät 35 eine Globalgruppen-Umwandlungseinheit 13 und eine Globalgewinn/-Verlustwert-Initialisierungseingheit 14 auf. Zudem wurde das Betriebsmittel-Zuweisungsgerät 19 anstelle des Betriebsmittel-Zuweisungsgerätes 1 und die Betriebsmittelelement-Minderzahl- Zuweisungseinheit 15 anstelle der Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 installiert.
  • Die Globalgruppen-Umwandlungseinheit 13 nimmt die Zuweisungen, die durch die Betriebsmitte Klassifizierungs-Zuweisungsgruppen-Teilungseinheit 7 zu Gruppen konvertiert wurde, und gruppiert diese weiter zusammen. Die Gruppen, die durch derartiges Gruppieren entstehen, sind die Gruppen von Zuweisungen aus den Betriebsmittel-Klassifizierungs-Zuweisungsgruppen, deren Lebendigkeitsbereiche nacheinander kontinuierlich angeordnet sind, und werden Globalgruppen genannt. Nun folgt eine Erläuterung des Betriebsvorgangs der Globalgruppen-Umwandlungseinheit 13 unter Bezugnahme auf die Zeichnung in Fig. 22. Beim Beispielprogramm, das in Fig. 22 gezeigt ist (dasselbe wie in Fig. 8), sind die Globalgruppen als Gruppen, die aus den Zuweisungen b, e, f, g, Ret und den Zuweisungen c, d bestehen, eingekreist durch die Linien e11 und 12 dargestellt.
  • Die oben genannte Globalgruppen-Umwandlung stellt als ein Element der Gruppe die Zuweisung x1 ein, die kohärente Beziehungen aufweist, die durch Bezugnahme auf die kohärenten Beziehungen R1 (x) gefunden wurden, und bezieht sich anschließend für diese Zuweisung, die in die Gruppe genommen wurde, wiederum auf die kohärenten Beziehungen R1 (x1), wodurch die Zuweisung x2, die darin enthalten ist, als Element der Gruppe eingestellt wird. Von hier wird derselbe Vorgang wiederholt und sich mit Rücksicht auf die Zuweisung, die in die Gruppe genommen wird, auf die Beziehungen R1 (x2), R1 (x3), R1 (x4) ... Bezug genommen sowie die Zuweisungen x1, x2, x3 und x4 als Elemente der Gruppe in der Reihenfolge eingestellt, in der man diese erhält.
  • Die Globalgewinn/-Verlustwert-Initialisierungseinheit 14 erzeugt die Globalgewinnwerttabelle und die Globalverlustwerttabelle entsprechend der unterschiedlichen Globalgruppen, die durch die Globalgruppen-Umwandlungseinheit 13 erzeugt werden, und führt die Initialisierung aus. Die Globalgewinnwerttabelle und die Globalverlustwerttabelle, speichern, wie in Fig. 22 gezeigt, die Informationen entsprechend den Betriebsmittelelementen, denen die Zuweisungen in der Globalgruppe zugewiesen werden können, und den Globalgewinnwert sowie den Globalverlustwert dieser Betriebsmittelelemente.
  • Hier ist der Globalgewinnwert die Summe der globalen Gewinne. Der Globalgewinn kann die Zahl der Übertragungsanweisungen im Programm verringern und somit die Speichergröße sowie die Ausführungszeit des Zielprogramms dadurch reduzieren, daß die Zuweisungen, die zu den Globalgruppen gehören, demselben Betriebsmittelelement zugewiesen werden.
  • Andererseits ist der Globalverlustwert die Summe der globalen Verluste. Der Globalverlust ist der Anstieg der Gesamtzahl von Übertragungsanweisungen im Programm, der dadurch verursacht wird, daß die Zuweisungen, die zu den Globalgruppen gehören, demselben Betriebsmittelelement zugewiesen werden, was einen Anstieg der Speichergröße und der Ausführungszeit des Zielprogramms bedeutet.
  • Beispiele von Globalgruppen, dem globalen Gewinnwert und dem globalen Verlustwert sind in Fig. 22 dargestellt. Die Elementzusammensetzung jeder Globalgruppe ist in den Rahmen in dieser Zeichnung dargestellt, wobei die Zeichenreihen [Globalgruppe G1], [Globalgruppe G2] und [Globalgruppe G3] direkt darunter geschrieben sind. Die Inhalte des Rahmens mit der Bezeichnung [Globalgruppe G1] sind [c] und [d], was anzeigt, daß die Zuweisungen [c] und [d] Elemente der Globalgruppe G1 sind. In derselben Weise sind die Inhalte des Rahmens [Globalgruppe G2][b], [e], [f] und [Ret], was zeigt, daß die Zuweisungen [b], [e], [f] und [Ret] Elemente der Globalgruppe G2 sind. Über diesen Rahmen in Fig. 22 befindet sich ein Rahmen, der die Betriebsmittel- Klassifizierungs-Zuweisungsgruppe für das Betriebsmittel DR zeigt, wobei die Zuweisungen [c], [d] und [b], [e], [f], [Ret] mit Kurvenlinien umgeben sind und diese Kurvenlinien die Elemente der Globalgruppen aus den Zuweisungen der Betriebsmittel-Klassifizierungs-Zuweisungsgruppe darstellen. Oben rechts und unten rechts vom Rahmen mit der Bezeichnung [Globalgruppe G1] befinden sich zwei Tabellen, die jeweils aus sechs Zellen bestehen, die die Globalgewinnwerttabelle und die Globalverlustwerttabelle für die [Globalgruppe G1] sind. In diesen Tabellen zeigt die obere Zellenreihe die Betriebsmittelelemente in der zuvor erwähnten Betriebsmittel- Klassifizierungs-Zuweisungsgruppe, während die untere Reihe die globalen Gewinn- oder Verlustwerte jedes Betriebsmittelelementes darstellt. Die untere Reihe der Globalgewinnwerttabelle G1 ist als [0] [0] [0] geschrieben, wodurch dargestellt wird, daß die Globalgewinnwerte von [D0], [D1] und [D2] allesamt [0] sind. Zudem ist in der unteren Reihe der Globalverlustwerttabelle G1 der Wert [1,5] unter die Zelle für das Betriebsmittelelement [D0] geschrieben, was anzeigt, daß der Globalverlustwert für das Betriebsmittelelement D0[1,5] ist.
  • Nun folgt eine Erläuterung des Operationsablaufs der Globalgewinn/-Verlustwert-Initialisierungseinheit 14. Die Globalgewinn/-Verlustwert-Initialisierungseinheit 14 erzeugt eine Tabelle, die lediglich die gleiche Zahl von Zellen enthält, wie die Zahl der Betriebsmittelelemente in der Zielmaschine. Anschließend schreibt sie die Ausgangswerte des Globalgewinnwertes und des Globalverlustwertes, wobei dies die Initialisierung der Globalgewinnwerte und der Globalverlustwerte der Betriebsmittelelemente ist, denen bereits Zuweisungen zugewiesen wurden, wie etwa die Register, die als Argumentregister, Bruchregister, oder Rückkehrwert-Register und dergleichen verwendet werden, für die Gruppen, die derartige Betriebsmittelelemente enthalten.
  • Dieser Initialisierungsvorgang wird mit Hilfe eines Beispiels einer willkürlichen Zuweisung x erläutert. Zunächst entnimmt die Globalgewinn/-Verlustwert-Initialisierungseinheit 14 die Zuweisung x, die ein Element der Globalgruppe G ist, Wenn diese Zuweisung x bereits einem Betriebsmittelelement zugewiesen wurde, dann wird der Prioritätswert der Zuweisung x als Globalgewinn dieses Betriebsmittelelementes eingeschrieben. Anschließend sucht sie beliebige Zuweisungen aus, die bereits einem Betriebsmittelelement zugewiesen wurden und deren Lebendigkeitsbereich den der Zuweisung x überlagert. Ist eine derartige Zuweisung gefunden, wird der Prioritätswert der Zuweisung x als Globalverlustwert dieses Betriebsmittelelementes eingeschrieben. Neben den oben beschriebenen Betriebsmittelelementen werden die Globalgewinnwerte und die Globalverlustwerte der Betriebsmittelelemente, denen keine Zuweisungen zugewiesen wurden, allesamt auf einen Ausgangswert 0 eingestellt.
  • Die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 15 führt dieselbe Operation wie die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 aus. Der Unterschied besteht, wie im Flußdiagramm von Fig. 25 gezeigt, darin, daß sie, wenn es mehrere Betriebsmittelelemente gibt, denen Zuweisungen zugewiesen werden können, und die absoluten lokalen Gewinnwerte dieser Betriebsmittelelemente gleich sind (Schritte f4, f7, f9, f10 in Fig. 25), den Unterschied zwischen dem Globalgewinnwert und dem Globalverlustwert findet, der in der Globalgewinnwerttabelle und der Globalverlustwerttabelle gegeben ist, und die Zuweisung dem Betriebsmittelelement mit dem höchsten absoluten Gewinn zuweist, der durch diese Differenz gegeben ist (Schritte f11, f12 in Fig. 25). Wenn die Zuweisungen den Betriebsmittelelementen zugewiesen sind, revidiert sie zudem die Globalgewinnwerte und die Globalverlustwerte (Schritt f14, f15).
  • Der oben beschriebene Vorgang ist in Fig. 23 gezeigt. Nun folgt eine Beschreibung von Fig. 23. Fig. 23 ersetzt die Zeichnung aus Fig. 15, wobei oben ein zusätzlicher Pfeil und ein Rahmen hinzugefügt wurden. In dieser Zeichnung ist der absolute lokale Gewinnwert des Betriebsmittelelementes D0 mit [1] und der absolute lokale Gewinnwert des Betriebsmittelelementes D1 ebenfalls mit [1] im Rahmen mit der Bezeichnung [Bewertung des Gewinnwertes/Verlustwertes] dargestellt. Zudem erstreckt sich ein Pfeil von der rechten Seite des Rahmens zu einem Rahmen, in dem die Globalgruppe, die Globalgewinnwerttabelle und die Globalverlustwerttabelle aus Fig. 22 aufgezeichnet sind. Weil der absolute lokale Gewinnwert für D0 und der absolute lokale Gewinnwert für D1 jeweils [1] ist, zeigt dies, daß sich die Betriebsmittelelement-Minderzahl- Zuweisungseinheit 15 auf die Globalgewinnwerttabelle und die Globalverlustwerttabelle bezieht. In dieser Zeichnung sind Globalgewinnwerte für die Betriebsmittelelemente D0, D1, und D2 allesamt jeweils [0], während die Globalverlustwerte [1,5], [0] und [0] betragen. Da D1 und D2 die größten absoluten Globalgewinne haben, weist die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 15 die Zuweisung a dem Betriebsmittelelement D1 zu.
  • Nun folgt eine Erläuterung der Revision der Globalgewinnwerttabelle und der Globalverlustwerttabelle unter Bezugnahme auf die Zeichnung in Fig. 24.
  • In dieser Zeichnung ist die Zuweisung x als Zuweisung eingestellt, die gerade einem Betriebsmittelelement D0 zugewiesen wurde, wobei x1 als Zuweisung eingestellt wurde, deren Lebendigkeitsbereich den der Zuweisung x überlagert.
  • Die Lebendigkeitsbereiche der Zuweisungen sind in dieser Zeichnung mit dicken weißen Linien dargestellt, während die dicke Vollinie den Lebendigkeitsbereich der Zuweisung x anzeigt, die gerade zugewiesen wurde. Ein Pfeil erstreckt sich von der vertikalen Linie für die Zuweisung x, wobei sich der Rahmen, der die Globalgruppe G1 darstellt, an der Spitze des Pfeils befindet, was bedeutet, daß die Zuweisung x ein Element der Globalgruppe G1 ist. Zudem ist zu erkennen, daß die vertikale Linie, die den Lebendigkeitsbereich der Zuweisung x repräsentiert, die vertikale Linie überlagert, die für den Lebendigkeitsbereich der Zuweisung x1 steht, wobei sich ein Pfeil ebenfalls von dieser zweiten vertikalen Linie, die die Zuweisung x1 kennzeichnet, zu dem Rahmen erstreckt, der die Globalgruppe G2 darstellt. Dies zeigt, daß die Zuweisung x1 ein Element der Globalgruppe G2 ist. In derselben Zeichnung verläuft ein Strichlinienpfeil von der Ziffer [2], die für den Prioritätswert der Zuweisung x steht, zur Zelle in der Globalgewinnwerttabelle für die Globalgruppe G1, wodurch dargestellt wird, daß der Prioritätswert [2] der Zuweisung x zum Globalgewinnwert des Betriebsmittelelementes addiert wird, dem die Zuweisung x zugewiesen ist.
  • Ein Strichlinienpfeil verläuft von der Ziffer [3], die den Prioritätswert der Zuweisung x1 repräsentiert, zur Zelle in der Globalgewinnwerttabelle für die Globalgruppe G2, was anzeigt, daß der Prioritätswert [3] der Zuweisung x1 zum Globalgewinnwert des Betriebsmittelelementes addiert wird, dem die Zuweisung x1 zugewiesen ist.
  • Die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 15 findet, wie in dieser Zeichnung dargestellt, die Globalgruppe G1, zu der die Zuweisung x gehört, nachdem die Zuweisung x einem Betriebsmittelelement zugewiesen wurde. Als nächstes nimmt sie die Globalgewinnwerttabelle für die Globalgruppe G1 und addiert den Prioritätswert der Zuweisung x zum Globalgewinnwert des Betriebsmittelelementes, dem die Zuweisung x zugewiesen wurde. Anschließend nimmt sie die Zuweisung x1, deren Lebendigkeitsbereich den der Zuweisung x überlagert. Daraufhin nimmt sie die Globalgewinnwerttabelle für die Globalgruppe G2, zu der die Zuweisung x1 gehört, und addiert den Prioritätswert der Zuweisung x1 zum Globalverlustwert des Betriebsmittelelementes, dem x in der Tabelle zugewiesen wurde. Wenn zudem die Zuweisung x als N-Operationszeichen einer nicht kommutativen Operation, wie oben beschrieben, verwendet wird, dann findet sie die Zuweisung x1 auf, die zum Speichern des Operationsergebnisses dieser Operation verwendet wird, oder wenn das Operationsergebnis durch die Zuweisung x gespeichert werden soll, dann findet sie die Zuweisung x1 auf, die das N-Operationszeichen werden soll, bevor sie in beiden Fällen den Prioritätswert der Zuweisung x1 zum Globalverlustwert der Globalgruppe G1 addiert, zu der die Zuweisung x1 gehört.
  • Alternativ dazu kann die Zahl der zugewiesenen Zuweisungen in einer obigen Globalgruppe ebenfalls bei der Berechnung des Globalgewinnwertes und des Globalverlustwertes verwendet, werden.
  • In diesem Fall werden die Globalgewinnwerte derart berechnet, daß sie der Zahl der Zuweisung gen gleichen, die jedem Betriebsmittelelement in der Globalgruppe zugewiesen wurden, zu der die Zuweisung x gehört, während die Globalverlustwerte derart errechnet werden, daß sie der Zahl der Zuweisungen gleichen, die jedem Betriebsmittelelement in der Globalgruppe zugewiesen wurden, zu der die Zuweisung x1 gehört.
  • Zudem kann der Globalgewinnwert als Summe der lokalen Gewinnwerte verwendet werden.
  • Nun folgt eine Beschreibung des Betriebs des Betriebsmittel-Zuweisungsgerätes 35, das in der oben beschriebenen Art aufgebaut ist, unter Bezugnahme auf das Flußdiagramm in Fig. 26. Fig. 26 ist das Flußdiagramm für die Betriebsmittel-Zuweisungs-Steuereinheit 19.
  • Auf die Beschreibung der Bestandteile, die jenen des Betriebsmittel-Zuweisungsgerätes 33 gleichen, wurde verzichtet, wobei lediglich die Unterschiede erläutert werden. Für das Programm, das in Fig. 8 gezeigt ist, erhält man durch den Betrieb des Betriebsmittel-Zuweisungsgerätes 35 die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen, die oben beschrieben wurden, und anschließend wird die Betriebsmittel-Klassifizierungs-Zuweisungsgruppe (DR, (a, b, c, d, e,f, g}) durch die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Auswahleinheit 9 ausgewählt (Schritte e1 bis e6 in Fig. 26).
  • Die Betriebsmittel-Zuweisungs-Steuereinheit 19 untersucht anschließend die Zahl der Betriebsmittelelemente im Betriebsmittel DR (Schritt e8). Da das Betriebsmittel Mem normalerweise weitaus mehr Betriebsmittelelemente als die Zahl der Zuweisungen haben wird, kann es als Betriebsmittel mit unbegrenzten Betriebsmittelelementen betrachtet werden. Das bedeutet, das Betriebsmittel Mem wird durch die Betriebsmittelelement-Mehrzahl-Zuweisungseinheit 16 betrieben. Da das zuweisbare Betriebsmittel DR ist, das nur über eine begrenzte Anzahl von Betriebsmittelelementen verfügt, aktiviert die Betriebsmittel-Zuweisungs-Steuereinheit 19 die Zuweisungs-Prioritätswert-Berechnungseinrichtung 11 (Schritt e8) (Schritt e9).
  • Nachdem sie die Zuweisungs-Prioritätswert-Berechnungseinrichtung 11 aktiviert hat, aktiviert die Betriebsmittel-Zuweisungs-Steuereinheit 19 die Globalgruppen-Umwandlungseinheit 13 (Schritt e10). Die Globalgruppen-Umwandlungseinheit 13 bildet die drei Globalgruppen, die durch die {numerische Gleichung 5} dargestellt sind. Diese Gruppen werden als Globalgruppentabelle ausgegeben.
  • {Numerische Gleichung 5}
  • G1 = {c, d}, G2 = {b, e, f, g, Ret}, G3 = {a}
  • Als nächstes aktiviert die Betriebsmittel-Zuweisungs-Steuereinheit 19 die Globalgewinn/-Verlustwert-Initialisierungseinheit 14. Die Globalgewinnl-Verlustwert-Initialisierungseinheit 14 erzeugt daraufhin die Globalgewinnwerttabellen und die Globalverlustwerttabellen für die unterschiedlichen Globalgruppen und schreibt die Ausgangswerte ein. Das folgende ist eine Erläuterung des Betriebs für die Globalgruppen G1 und G2.
  • Die Globalgewinn/-Verlustwert-Initialisierungseinheit 14 wählt zunächst die Globalgruppe G1 und entnimmt die Zuweisung c. Dann untersucht sie ob die Zuweisungen f1, f2 oder Ret, die Zuweisungen sind, die bereits Betriebsmittelelementen zugewiesen wurden, als Elemente in Ov(c), gezeigt in Fig. 11A, vorhanden sind. Als Ergebnis findet die Globalgewinn/-Verlustwert-Initialisierungseinheit 14 die Zuweisung f1 und schreibt dementsprechend den Prioritätswert der Zuweisung c [1,5] als Globalverlustwert für das Betriebsmittelelement D0 für die Globalgruppe G1 ein. Anschließend entnimmt sie die Zuweisung d und untersucht wie bei der Zuweisung c Ov(d). Da keine der oben genannten Zuweisungen als Element in Ov(d) erscheinen, werden die Globalgewinnwerte und die Globalverlustwerte nicht revidiert. Die verbleibenden Globalgewinnwerte und Globalverlustwerte werden anschließend als 0 eingeschrieben, wobei die Ausgangswerte der Globalgewinnwerttabelle und der Globalverlustwerttabelle wie unten gezeigt gegeben sind. Globalgewinnwerttabelle für die Globalgruppe G1 Globalverlustwerte für die Globalgruppe G1
  • Anschließend wählt die Globalgewinn/-Verlustwert-Initialisierungseinheit 14 die Globalgruppe G2 und entnimmt die Zuweisung b. In derselben Art und Weise wie bei den Zuweisungen c und d untersucht sie die Elemente von Ov(b), wobei sie f1, f2 und Ret findet. Da die Zuweisungen f1 und f2 gefunden wurden, wird der Prioritätswert der Zuweisung b [0,7] als Globalverlustwert des Betriebsmittelelementes D0 eingeschrieben. Daraufhin werden die Zuweisungen e, f, g genommen und Ov(e), Ov(f) und O(G) untersucht. Da die Zuweisungen f1, f2 und Ret nicht in dieser Elementgruppe vorhanden sind, werden die Globalgewinnwerte und die Globalverlustwerte nicht revidiert. Anschließend nimmt die Globalgewinn/-Verlustwert-Initialisierungseinheit 14 die Zuweisung Ret. Da diese Zuweisung Ret bereits dem Betriebsmittelelement D0 zugewiesen wurde, wird der Prioritätswert der Zuweisung Ret [1] als Globalgewinnwert für das Betriebsmittelelement D0 eingeschrieben. [0] wird anschließend in die verbleibenden Zellen für die anderen Betriebsmittelelemente eingeschrieben. Als Ergebnis der oben beschriebenen Operation sind die Ausgangswerte der Globalgewinnwerttabelle und der Globalverlustwerttabelle »für die Globalgruppe G2 gegeben, wie es unten gezeigt ist (Schritt e11) Globalgewinnwerttabelle für die Globalgruppe G2
  • Globalverlustwerttabelle für die Globalgruppe G2
  • Anschließend wird derselbe Vorgang für die Globalgruppe G3 ausgeführt und die Globalgewinnwerttabellen sowie die Globalverlustwerttabellen ausgegeben, wie es in Fig. 22 gezeigt ist.
  • Als nächstes aktiviert die Betriebsmittel-Zuweisungs-Steuereinheit 19 die Betriebsmittelelement- Minderzahl-Zuweisungseinheit 15, und die Zuweisungen werden den Betriebsmittelelementen zugewiesen. Der Zuweisungsvorgang, der hier ausgeführt wird, betrifft die Betriebsmittel-Klassifizierungs-Zuweisungsgruppe für das Betriebsmittel DR. Nun folgt eine Beschreibung des Betriebsmittel-Zuweisungsvorgangs, der durch die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 15 ausgeführt wird, unter Bezugnahme auf das Flußdiagramm in Fig. 25.
  • Zunächst nimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 15 die Zuweisung d mit dem höchsten Prioritätswert und ermittelt durch Ausführung desselben Vorgangs wie bei der Betriebsmittelelement-Minderzahl-Zuweisungseinheit, daß die zuweisbaren Betriebsmittelelemente mit dem höchsten absoluten lokalen Gewinnwert D1 und D2 sind (Schritte f1, f3-f10). Da es zwei zuweisbare Betriebsmittelelemente gibt, die über denselben absoluten lokalen Gewinnwert verfügen, findet sie das Betriebsmittelelement mit dem höchsten globalen Gewinnwert (Schritt f11). Sie sucht die Globalgruppe G1 aus, zu der die Zuweisung d gehört, und ermittelt durch Bezugnahme auf die Globalgewinnwerttabelle und die Globalverlustwerttabelle für die Globalgruppe G1, daß das Betriebsmittelelement D1 den höchsten absoluten Globalgewinn hat (Schritt f12). Da die Zuweisung d dem Betriebsmittelelement D1 zugewiesen wurde, wird der Prioritätswert der Zuweisung d zum Globalgewinnwert für das Betriebsmittelelement D1 in der Globalgruppe G1 zugewiesen, zu der die Zuweisung d gehört (Schritt f14). Um die Globalverlustwerttabellen der anderen Globalgruppen zu revidieren, untersucht die Betriebsmittelelement- Minderzahl-Zuweisungseinheit 15 zu welchen Globalgruppen die Zuweisungen r, a, b, gehören, die in Fig. 11A als Elemente in Ov(d) dargestellt sind. Beim Ermitteln, daß die Zuweisung b zur Globalgruppe G2 gehört, addiert die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 15 den Prioritätswert der Zuweisung b zum Globalverlustwert für die Globalgruppe G2 (Schritt f15). Wenn demzufolge die Zuweisung d dem Betriebsmittelelement D1 zugewiesen wird, sind die Globalgewinnwerttabelle der Globalgruppe G1 und die Globalverlustwerttabelle der Globalgruppe G2 wie unten gezeigt gegeben. Globalgewinnwerttabelle für die Globalgruppe G1 Globalverlustwerttabelle für die Globalgruppe G2
  • Als nächstes nimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 15 die Zuweisung f mit dem zweithöchsten Prioritätswert und ermittelt durch Ausführen desselben Vorgangs wie bei der Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12, daß die zuweisbaren Betriebsmittelelemente D0, D1 und D2 sind (Schritt f3-f10). Da es drei zuweisbare Betriebsmittelelemente gibt, die über denselben absoluten lokalen Gewinnwert verfügen, sucht sie die Globalgruppe G2 aus, zu der die Zuweisung f gehört, und ermittelt, daß das Betriebsmittelelement D0 den höchsten absoluten Globalgewinn hat. Anschließend wird die Zuweisung f diesem Betriebsmittelelement D0 zugewiesen (Schritt f12). Da sie dem Betriebsmittelelement D0 zugewiesen wurde, addiert die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 15 den Prioritätswert der Zuweisung f zum Globalgewinnwert des Betriebsmittelelementes D0 in der Globalgruppe G2, zu der die Zuweisung f gehört (Schritt f14). Um die Globalverlustwerttabellen für die anderen Globalgruppen zu revidieren, untersucht sie anschließend Ov(f) in derselben Weise wie bei der Zuweisung d zuvor, aber das es keine Elemente in Ov(f) gibt, revidiert sie nicht die Globalverlustwerttabelle für eine der Globalgruppen (Schritt f15). Die Globalgewinnwerttabelle für eine Zuweisung der Zuweisung f ist unten dargestellt. Globalgewinnwerttabelle für die Globalgruppe G2
  • Als nächstes nimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 15 die Zuweisung e mit dem dritthöchsten Prioritätswert und weist durch Ausführen desselben Vorgangs wie bei der Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12, die Zuweisung e dem Betriebsmittelelement D0 zu (Schritt f3-f13). Durch Ermitteln, daß die Zuweisung e zur Globalgruppe G2 gehört, addiert sie den Prioritätswert der Zuweisung e zum Globalgewinnwert für das Betriebsmittelelement D0 (Schritt f14). Um die Globalverlustwerttabellen für die anderen Globalgruppen zu revidieren, untersucht sie anschließend Ov(e) in derselben Weise wie bei der Zuweisung d zuvor, aber das es keine Elemente in Ov(e) gibt, revidiert sie den Globalverlustwert für eine der Globalgruppen (Schritt f15) nicht. Die Globalgewinnwerttabelle für eine Zuweisung der Zuweisung e ist unten dargestellt. Globalgewinnwerttabelle für die Globalgruppe G2
  • Als nächstes nimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 15 die Zuweisung g mit dem vierthöchsten Prioritätswert und weist durch Ausführen desselben Vorgangs wie bei der Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12, die Zuweisung g dem Betriebsmittelelement D0 zu (Schritt f3-f13). Durch Ermitteln, daß die Zuweisung g zur Globalgruppe G2 gehört, addiert sie den Prioritätswert der Zuweisung g zum Globalgewinnwert für das Betriebsmittelelement D0 (Schritt f14). Um die Globalverlustwerttabellen für die anderen Globalgruppen zu revidieren, untersucht sie anschließend Ov(g) in derselben Weise wie bei den Zuweisungen d, f und e zuvor, aber das es keine Elemente in Ov(g) gibt, revidiert sie den Globalverlustwert für eine der Globalgruppen (Schritt f15) nicht. Die Globalgewinnwerttabelle für eine Zuweisung der Zuweisung g ist unten dargestellt. Globalgewinnwerttabelle für die Globalgruppe G2
  • Als nächstes nimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 15 die Zuweisung c mit dem fünfthöchsten Prioritätswert und weist durch Ausführen desselben Vorgangs wie bei der Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12, die Zuweisung c dem Betriebsmittelelement D1 zu (Schritt f3-f13). Durch Ermitteln, daß die Zuweisung c zur Globalgruppe G1 gehört, addiert sie den Prioritätswert der Zuweisung c zum Globalgewinnwert für das Betriebsmittelelement D1 (Schritt f14). Um die Globalverlustwerttabellen für die anderen Globalgruppen zu revidieren, untersucht sie anschließend zu welchen Globalgruppen die Elemente in Ov(c) gehören in derselben Weise wie bei den Zuweisungen d, f, e und g zuvor. Da die Zuweisung b zur Globalgruppe G2 gehört, wird der Prioritätswert der Zuweisung b zum Globalverlustwert des Betriebsmittelelementes D1 für die Globalgruppe G2 addiert (Schritt f15). Die Globalgewinnwerttabelle für die Globalgruppe G1 und die Globalverlustwerttabelle für die Globalgruppe G2 sind für eine Zuweisung der Zuweisung c unten dargestellt. Globalgewinnwerttabelle für die Globalgruppe G1 Globalverlustwerttabelle für die Globalgruppe G2
  • Als nächstes nimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 15 die Zuweisung b mit dem sechsthöchsten Prioritätswert und weist durch Ausführen desselben Vorgangs wie bei der Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12, die Zuweisung b dem Betriebsmittelelement D2 zu (Schritt f3-f8). Durch Ermitteln, daß die Zuweisung b zur Globalgruppe G2 gehört, addiert sie den Prioritätswert der Zuweisung b zum Globalgewinnwert für das Betriebsmittelelement D2 (Schritt f14). Um die Globalverlustwerttabellen für die anderen Globalgruppen zu revidieren, untersucht sie anschließend zu welchen Globalgruppen die Elemente in Ov(b) gehören in derselben Weise wie bei den Zuweisungen d, f, e, g und c zuvor. Da die Zuweisungen c und d zur Globalgruppe G1 gehören, werden die Prioritätswerte der Zuweisungen c und d zum Globalverlustwert des Betriebsmittelelementes D1 addiert (Schritt f15). Die Globalgewinnwerttabelle für die Globalgruppe G2 und die Globalverlustwerttabelle für die Globalgruppe G1 sind für eine Zuweisung der Zuweisung c unten dargestellt. Globalgewinnwerttabelle für die Globalgruppe G2 Globalverlustwerttabelle für die Globalgruppe G1
  • Als nächstes nimmt die Betriebsmittelelement-Minderzahl-Zuweisungseinheit 15 die Zuweisung a mit dem siebthöchsten Prioritätswert und führt denselben Vorgang wie bei der Betriebsmittelelement-Minderzahl-Zuweisungseinheit 12 aus (Schritt f3-f6).
  • Als Ergebnis des obigen Zuweisungsvorgangs werden die Betriebsmittelelemente des Betriebsmittels DR mit Zuweisungen derart gepaart, wie es unten gezeigt ist.
  • Auch wenn der Zuweisungsvorgang für das Betriebsmittel AR ausgeführt wird, werden die Paarungen der Betriebsmittelelemente und der Zuweisungen ausgebildet, wie es unten gezeigt ist.
  • Die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Auswahleinheit 9 nimmt anschließend die Betriebsmittel-Klassifizierungs-Zuweisungsgruppe für das Betriebsmittel Mem (Schritt e6). Da das Betriebsmittel Mem einen Überschuß an Betriebsmittelelementen hat, aktiviert die Betriebsmittel-Zuweisungs-Steuereinheit 19 die Betriebsmittelelement-Mehrzahl-Zuweisungseinheit 16 (Schritt e13). Die Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Auswahleinheit 9 informiert daraufhin die Betriebsmittel-Zuweisungs-Steuereinheit 19, daß es keine weiteren Betriebsmittel zur Auswahl gibt (Schritt e6). Beim Empfang des Hinweises von der Betriebsmittel-Klassifizierungs-Zuweisungsgruppen-Auswahleinheit 9 beendet die Betriebsmittel-Zuweisungs-Steuereinheit 19 daraufhin den Vorgang (Schritt e7).
  • Durch Anwendung der vorliegenden Erfindung auf diese Art und Weise, kann durch Bezugnahme über einen weiten Bereich, wie die kohärenten Bereiche für alle Zuweisungen im Programm beschaffen sind, die Betriebsmittelzuweisung effizient ausgeführt werden. Demzufolge gibt es eine beträchtliche Verbesserung der Programmgröße und der Ausführungszeit des Maschinenspracheprogramms, das schließlich erzeugt wird.
  • Obwohl die vorliegende Erfindung umfassend mit Hilfe von Beispielen auf die beiliegenden Zeichnungen erläutert wurde, wird darauf Wert gelegt, daß unterschiedliche Veränderungen und Modifikationen, wie jene, die dem Fachmann verständlich sein werden, vorgenommen werden können, ohne vom Geltungsbereich der vorliegenden Erfindung abzuweichen, wie er in den anhängenden Ansprüchen festgelegt ist.

Claims (40)

1. Betriebsmittelzuweisungsgerät (33, 35), das von einem Kompiler verwendet wird, der Programme, die in einer höheren Programmiersprache geschrieben sind, zu Programmen kompiliert, die in Maschinensprache geschrieben sind, zum Zuweisen von Zuweisungen, die eine Paarbildung von Variablen und Lebendigkeitsbereichen in einem Programm sind, um Betriebsmittelelemente zu trennen, die Betriebsmittel bilden, unterteilt entsprechend der Funktion, wie etwa Register und Speicher, gemäß einem Prioritätswert der Zuweisung, dadurch gekennzeichnet, daß das Gerät enthält:
eine Zuweisungsspeichereinrichtung (3) zum Speichern der Zuweisungen in einem Programm und deren Prioritätswerte;
eine erste Betriebsmittelelement-Zuweisungseinrichtung (7) zum entnehmen einer Zuweisung mit einem höchsten Prioritätswert aus der Zuweisungsspeichereinrichtung (3) und um die Zuweisung mit dem höchsten Prioritätswert einem Betriebsmittelelement zuzuweisen;
eine Zuweisungsergebnis-Speichereinrichtung (8) zum Speichern von Zuweisungsergebnissen;
eine Zuweisungs-Auffindeeinrichtung (7), um aus der Zuweisungsspeichereinrichtung (3) eine Zuweisung aufzufinden, die den nächsten höchsten Prioritätswert nach einem Prioritätswert einer Zuweisung hat, die gerade zugewiesen worden ist;
eine Beeinflussungszuweisungs-Extraktionseinrichtung (5) zum Extrahieren von Zuweisungen, deren Lebendigkeitsbreiche einen Lebendigkeitsbereich der Zuweisung beeinflussen, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgefunden wurde;
eine Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung (9) zum Ermitteln ob es Betriebsmittelelemente von Betriebsmittelelementen gibt, die dieselbe Funktion ausführen wie jedes der Betriebsmittelelemente, denen die Zuweisungen, die durch die Beeinflussungszuweisungs- Extraktionseinrichtung (5) extrahiert wurden, durch Bezugnahme auf die Zuweisungsergebnis-Speichereinrichtung (8) zugewiesen wurden;
eine Kohärentzuweisungs-Auffindeeinrichtung (6) zum Auffinden von Zuweisungen für die durch Bezugnahme auf den Startpunkt und den Endpunkt des Lebendigkeitsbereiches ein Startpunkt mit dem Endpunkt der Zuweisung zusammenfällt, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgefunden wurde, und von Zuweisungen, für die ein Endpunkt mit dem Startpunkt der Zuweisung zusammenfällt, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgefunden wurde;
eine Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung (9) zum Ermitteln der Betriebsmittelelemente, denen die Zuweisungen, die durch die Kohärentzuweisungs-Auffindeeinrichtung (6) aufgefunden wurden, zugewiesen wurden, indem auf die Zuweisungsergebnis-Speichereinrichtung (8) Bezug genommenwird;
eine zweite Betriebsmittelelement-Zuweisungseinrichtung
um, wenn es nur ein Betriebsmittelelement gibt, das durch die Demselben Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurde, die Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgefunden wurde, zuzuweisen;
um die Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgenommen wurde, einem Betriebsmittelelement zuzuweisen, das das Ermittlungsergebnis derselben Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement- Ermittlungseinrichtung (9) und darüber hinaus das Ermittlungsergebnis der Nachfolge-Betriebsmittelelement-Zuweisungseinrichtung (9) ist, wenn es mehrere Betriebsmittelelemente gibt, die durch dieselbe Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurden, und ein Betriebsmittelelement existiert, das durch die Nachfolge-Betriebsmittelelement- Ermittlungseinrichtung ermittelt wurde, und
um die Zuweisungsergebnisse in der Zuweisungsergebnis-Speichereinrichtung (8) zu speichern; sowie
eine Steuereinrichtung (1, 19), um die Zuweisungs-Auffindeeinrichtung (7) wiederholt zu aktivieren, bis alle der Zuweisungen zugewiesen wurden.
2. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 1, weiterhin enthaltend:
eine Reserviertzuweisungs-Extraktionseinrichtung zum Extrahieren von Zuweisungen im Programm, die einem zuvor ermittelten Betriebsmittelelement zugewiesen werden sollen;
eine Reserviertbetriebsmittelelement-Speichereinrichtung zum Speichern der Betriebsmittelelemente, denen die Zuweisungen zugewiesen werden sollen, die durch die Reserviertzuweisungs-Extraktionseinrichtung extrahiert wurden; und
eine Reserviertzuweisungseinrichtung, um die Zuweisungen, die durch die Reserviertzuweisungs-Extraktionseinrichtung extrahiert wurden, den entsprechenden Betriebsmittelelementen aus den Betriebsmittelelementen zuzuweisen, die durch die Reserviertbetriebsmittelelement-Speichereinrichtung gespeichert wurden, und die Zuweisungsergebnisse durch die Zuweisungsergebnis-Speichereinrichtung (8) zu speichern.
3. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 1 oder 2, bei dem die zweite Betriebsmittelelement-Zuweisungseinrichtung enthält:
eine Zuweisungseinrichtung, um, wenn es nur ein Betriebsmittelelement gibt, das durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement- Ermittlungseinrichtung (9) ermittelt wurde, die Zuweisungen, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgenommen wurden, dem Betriebsmittelelement zuzuweisen;
eine zweite Zuweisungseinrichtung, um die Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgenommen wurde, einem der Betriebsmittelelemente zuzuweisen, die durch die Demselben-Betriebsmittel-verbleibendes- Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurden, wenn es mehrere Betriebsmittelelemente gibt, die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurden, und kein entsprechendes Betriebsmittelelement vorhanden ist, das durch die Nachfolge- Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurde; und
eine dritte Zuweisungseinrichtung, um die Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgenommen wurde, einem der Betriebsmittelelemente zuzuweisen, die als Ermittlungsergebnis der Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung (9) und darüber hinaus als Ermittlungsergebnis der Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurden, wenn es mehrere Betriebsmittelelemente gibt, die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurden und ein Betriebsmittelelement vorhanden ist, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurde.
4. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 3, weiterhin enthaltend:
eine Gewinnwert-Berechnungseinrichtung (12, 15) zum Errechnen eines Gewinnwertes, der anzeigt, wie die Speichergröße und/oder die Ausführungszeit für ein Maschinenspracheprogramm nach dem Kompilieren verringert sind, wenn eine Zuweisung einem der Betriebsmittelelemente zugewiesen ist, die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurden, für jedes der Betriebsmittelelemente die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurden;
eine Verlustwert-Berechnungseinrichtung (12, 15) zum Berechnen des Verlustwertes, der anzeigt, wie die Speichergröße und/oder die Ausführungszeit für ein Maschinenspracheprogramm nach dem Kompilieren zugenommen haben, wenn eine Zuweisung einem der Betriebsmittelelemente zugewiesen ist, die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurden für jedes der Betriebsmittelelemente die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurden; und
eine Maximaldifferenz-Betriebsmittelelement-Ermittlungseinrichtung (12, 15) zum Berechnen einer Differenz zwischen dem Gewinnwert und dem Verlustwert und zum Ermitteln, welche Betriebsmittelelemente die größte Differenz aufweisen;
wobei die dritte Zuweisungseinrichtung die Zuweisungen, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgefunden wurden, einem der Betriebsmittelelemente zuweist, die durch die Maximaldifferenz-Betriebsmittelelement-Ermittlungseinrichtung (12, 15) ermittelt wurden.
5. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 4, bei dem die Gewinnwert-Berechnungseinrichtung (12, 15) den Gewinnwert für das Betriebsmittelelement berechnet, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurde, basierend auf den Prioritätswerten der Zuweisungen, die dem Betriebsmittelelement zugewiesen sind, wobei die Gewinnwerte der Betriebsmittelelemente abseits des Betriebsmittelelementes, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurde, auf 0 eingestellt sind.
6. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 5, weiterhin enthaltend:
eine Sekundär-Beeinflussungszuweisungs-Auffindeeinrichtung, zum Auffinden von Zuweisungen, deren Lebendigkeitsbereiche die Lebendigkeitsbereiche von Zuweisungen beeinflussen, die durch die Kohärentzuweisungs-Auffindeeinrichtung (6) aufgefunden wurden, jedoch nicht die aufgefundenen Ergebnisse der Beeinflussungszuweisungs-Extraktionseinrichtung (5) sind; und
eine erste Verlustauftritts-Betriebsmittelelement-Ermittlungseinrichtung zum Ermitteln welchen Betriebsmittelelementen die Zuweisungen, die die Auffindeergebnisse der Sekundär-Beeinflussungszuweisungs-Auffindeeinrichtung sind, zugewiesen sind, indem auf die Zuweisungsergebnis-Speichereinrichtung (8) Bezug genommen wird;
wobei die Verlustwert-Berechnungseinrichtung (12, 15) Verlustwerte der Betriebsmittelelemente berechnet, die durch die erste Verlustauftritts-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden, basierend auf Prioritätswerten der Zuweisungen, die durch die Kohärentzuweisungs-Auffindeeinrichtung (6) ermittelt wurden, und deren Lebendigkeitsbereiche darüber hinaus den Lebendigkeitsbereich der Zuweisung beeinflußt, die jedem der Betriebsmittelelemente zugewiesen ist, wobei die Verlustwerte aller Betriebsmittelelemente abseits des Betriebsmittelelementes, das durch die Verlustauftritts-Betriebsmittelelement- Ermittlungseinrichtung ermittelt wurde, auf 0 eingestellt sind.
7. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 6, weiterhin enthaltend:
eine Nicht-Kommutativoperationsdefinitions-Ermittlungseinrichtung zum Ermitteln, ob die Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgenommen ist, durch eine nicht kommutative Operation, wie etwa Subtraktion und Division definiert ist; und
eine zweite Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung, um, wenn die Nicht-Kommutativoperationsdefinitions-Ermittlungseinrichtung ermittelt, daß die Zuweisung als nicht kommutative Operation definiert ist, ein Betriebsmittelelement aufzufinden, dem eine Zuweisung zugewiesen ist, die sich auf einer rechten Seite eines Operationszeichens der nicht kommutativen Operation befindet;
wobei, wenn die zweite Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung das Betriebsmittelelement aufgefunden hat, die Verlustwert-Berechnungseinrichtung (12, 15) die Prioritätswerte der Zuweisungen, die dem Betriebsmittelelement zugewiesen sind, zu den Verlustwerten des Betriebsmittelelementes addiert, das das Ermittlungsergebnis der zweiten Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung ist.
8. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 7, weiterhin enthaltend:
eine Sekundär-Beeinflussungszuweisungs-Auffindeeinrichtung zum Auffinden von Zuweisungen, die über Lebendigkeitsbereiche verfügen, die die Lebendigkeitsbereiche der Zuweisungen beeinflussen, die durch die Kohärentzuweisungs-Auffindeeinrichtung (6) aufgefunden wurden, jedoch nicht dis aufgefundenen Ergebnisse der Beeinflussungszuweisungs-Extraktionseinrichtung (5) sind; und
eine erste Verlustauftritts-Betriebsmittelelement-Ermittlungseinrichtung, zum Ermitteln, welchen Betriebsmittelelementen die Zuweisungen, die die Auffindeergebnisse der Sekundär-Beeinflussungszuweisungs-Auffindeeinrichtung sind, zugewiesen sind, indem auf die Zuweisungsergebnis-Speichereinrichtung (8) Bezug genommen wird;
wobei die Verlustwert-Berechnungseinrichtung (12, 15) die Verlustwerte der Betriebsmittelelemente berechnet, die durch die erste Verlustauftritts-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden, basierend auf den Ausführungsfrequenzen jeder Zuweisung, die durch die Kohärentzuweisungs-Auffindeeinrichtung (6) ermittelt wurden, und deren Lebendigkeitsbereich den Lebendigkeitsbereich der Zuweisung beeinflußt, die jedem Betriebsmittelelement zugewiesen ist, wobei die Verlustwerte jedes Betriebsmittelelementes abseits des Betriebsmittelelementes, das durch die Verlustauftritts-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wird, auf 0 eingestellt sind.
9. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 4 oder 8, weiterhin enthaltend:
eine Globalgruppen-Erzeugungseinrichtung zum Auffinden mehrerer Zuweisungen, deren Lebendigkeitsbereich nacheinander verbunden sind, aus den Zuweisungen, die in der Zuweisungs-Speichereinrichtung (3) gespeichert sind, und zum Einstellen der aufgefundenen Zuweisungen als Globalgruppe;
eine Globalgruppen-Auffindeeinrichtung, zum Auffinden einer Globalgruppe, die die Zuweisung enthält, die durch die Zuweisungs-Auffindeeinrichtung aufgefunden wurde, wenn es mehrere Betriebsmittelelemente gibt, die durch die Maximal-Betriebsmittelelement-Ermittlungseinrichtung (12, 15) ermittelt wurden;
eine Globalgewinnwert-Berechnungseinrichtung zum Berechnen eines Globalgewinnwertes, der anzeigt, wie die Speichergröße und/oder die Ausführungszeit verringert sind, wenn eine noch nicht zugewiesene Zuweisung einem gemeinsamen Betriebsmittelelement zugewiesen ist, für jedes der Betriebsmittelelemente, die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement- Ermittlungseinrichtung (9) ermittelt wurden; und
eine Globalverlust-Berechnungseinrichtung zum Berechnen eines Globalverlustes, der anzeigt, wie die Speichergröße und/oder die Ausführungszeit erhöht sind, wenn eine noch nicht zugewiesene Zuweisung einem gemeinsamen Betriebsmittelelement zugewiesen ist, für jedes der Betriebsmittelelemente, die durch die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurden;
wobei für den Fall, daß mehrere Betriebsmittelelemente durch die Maximaldifferenz-Betriebsmittelelement-Ermittlungseinrichtung (12, 15) ermittelt wurden, die dritte Zuweisungseinrichtung eine Differenz zwischen dem Globalgewinnwert und dem Globalverlustwert errechnet und anschließend die aufgenommene Zuweisung einem Betriebsmittelelement zuweist, für das die Differenz am größten ist.
10. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 9, bei dem die Globalgewinnwert-Berechnungseinrichtung enthält:
eine erste Globalgruppen-Auffindeeinheit, um, sobald die Zuweisungs-Auffindeeinrichtung eine Zuweisung aufgefunden hat, eine Globalgruppe aufzufinden, zu der die aufgefundene Zuweisung gehört;
eine Globalgewinnwert-Speichereinheit zum Speichern einer Summe der Gewinnwerte für jedes Betriebsmittelelement, das einer Globalgruppe entspricht, als Globalgewinnwert; und
eine erste Gesamtwert-Handhabungseinheit, um, sobald die Gewinnwert- Berechnungseinrichtung (12, 15) einen Gewinnwert eines Betriebsmittelelementes für die Zuweisung berechnet hat, den Gewinnwert zum Globalgewinnwert des Betriebsmittelelementes zu addieren.
11. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 10, bei dem die Globalverlust-Berechnungseinrichtung enthält:
eine Beeinflussungsglobalgruppen-Auffindeeinheit, um, sobald die Zuweisungs-Auffindeeinrichtung eine Zuweisung aufgefunden hat, Globalgruppen aufzufinden, die die Zuweisungen enthalten, die die Auffindungsergebnisse der Beeinflussungszuweisungs-Extraktionseinrichtung (5) hinsichtlich der aufgenommenen Zuweisung sind;
eine zweite Summenspeichereinheit zum Speichern der Summe der Prioritätswerte der Zuweisungen, die zur Globalgruppe gehören, als Globalverlustwerte;
entsprechend jedem Betriebsmittelelement; und
eine zweite Summenhandhabungseinheit, um, sobald die Gewinnwert- Berechnungseinrichtung (12, 15) den Gewinnwert des Betriebsmittelelementes für die Zuweisung berechnet hat, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgefunden wurde, den Prioritätswert der Zuweisung für das Betriebsmittelelement, das das Auffindungsergebnis der Beeinflussungszuweisungs-Extraktionseinrichtung (5) ist, zur Summe des Globalverlustwertes für das Betriebsmittelelement zu addieren.
12. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 9 oder 11, bei dem die Globalgewinnwert-Berechnungseinrichtung enthält:
eine erste Globalgruppen-Auffindeeinheit, um, sobald die Zuweisungs-Auffindeeinrichtung eine Zuweisung aufgefunden hat, die Globalgruppe aufzufinden, zu der die Zuweisung gehört;
eine erste Summenspeichereinheit zum Speichern der Anzahl der Zuweisungen in einer Globalgruppe, die einem Betriebsmittelelement zugewiesen ist, als Globalgewinnwert, entsprechend jedem der Betriebsmittelelemente; und
eine erste Summenhandhabungseinheit, um sobald die Gewinnwert- Berechnungseinrichtung (12, 15) den Gewinnwert eines Betriebsmittelelementes für eine Zuweisung berechnet hat, 1 zum Globalgewinnwert des Betriebsmittelelementes zu addieren.
13. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 12, bei dem die Globalverlustwert-Berechnungseinrichtung enthält:
eine Beeinflussungsglobalgruppen-Auffindeeinheit, um, sobald die Zuweisungs-Auffindeeinrichtung eine Zuweisung aufgefunden hat, die Globalgruppen aufzufinden, die die Zuweisungen enthalten, die das Auffindeergebnis der Beeinflussungszuweisungs-Extraktionseinrichtung (5) hinsichtlich der aufgenommenen Zuweisung sind;
eine zweite Summenspeichereinheit zum Speichern einer Zahl von Zuweisungen, die Betriebsmittelelementen zugewiesen sind, die zu einer Globalgruppe gehören, als Globalverlustwerte, entsprechend jedem Betriebsmittelelement; und
eine zweite Summenhandhabungseinheit, um 1 zum Globalverlustwert des Betriebsmittelelementes zu addieren, sobald die Gewinnwert-Berechnungseinrichtung (12, 15) den Gewinnwert eines Betriebsmittelelementes für eine Zuweisung berechnet hat, die durch die Zuweisungs-Auffindeienrichtung (7) aufgefunden wurde.
14. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 13, weiterhin enthalten:
eine Nicht-kommutativ-Operations-Operationszeichen-Ermittlungseinrichtung zum Ermitteln, ob die sich Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgenommen wurde, auf einer rechten Seite eines Operationszeichens einer nicht kommutativen Operation, wie etwa Subtraktion und Division befindet; und
einer dritte Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung zum Auffinden eines Betriebsmittelelementes, für das die Zuweisung durch die nichtkommutative Operation definiert ist, sobald die Nicht-kommutativ-Operations-Operationszeichen-Ermittlungseinrichtung ermittelt hat, daß sich die Zuweisung auf der rechten Seite befindet;
wobei, sobald die dritte Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung das Betriebsmittelelement aufgefunden hat, die Verlustwert-Berechnungseinrichtung (12, 15) die Prioritätswerte der Zuweisungen, die dem Betriebsmittelelement zugewiesen sind, zum Verlustwert und zum Globalverlustwert des Betriebsmittelelementes addiert, das das Auffindeergebnis der dritten Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung ist.
15. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 14, bei dem die Reserviertzuweisungs-Extraktionseinrichtung Zuweisungen extrahiert, die Parameter für Funktionsabrufe vom Programm speichern, und die Reserviertbetriebsmittelelement-Speichereinrichtung Parameterregister speichert, denen die Zuweisungen zugewiesen werden sollen.
16. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 14, bei dem die Reserviertzuweisungs-Extraktionseinrichtung Zuweisungen extrahiert, die Rückkehrwerte für Funktionsabrufe vom Programm speichern, und die Reserviertbetriebsmittelelement-Speichereinrichtung Rückkehrwerteregister speichert, denen die Zuweisungen zugewiesen werden sollen.
17. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 14, bei dem die Reserviertzuweisungs-Extraktionseinrichtung die Zuweisungen extrahiert, deren Werte vom Programm geändert werden können, und die Reserviertbetriebsmittelelement- Speichereinrichtung beschädigte Register speichert, denen die Zuweisungen zugewiesen werden sollen.
18. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 4 oder 11, bei dem die Gewinnwert-Berechnungseinrichtung (12, 15) den Gewinnwert für das Betriebsmittelelement berechnet, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurde, basierend auf den Prioritätswerten der Zuweisungen berechnet, die dem Betriebsmittelelement zugewiesen sind, wobei die Gewinnwerte der Betriebsmittelelemente abseits des Betriebsmittelelementes, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurde, auf 0 eingestellt sind.
19. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 18, weiterhin enthaltend:
eine Sekundär-Beeinflussungszuweisungs-Auffindeeinrichtung zum Auffinden von Zuweisungen, die über Lebendigkeitsbereiche verfügen, die die Lebendigkeitsbereiche der Zuweisungen beeinflussen, die durch die Kohärent-Zuweisungs-Auffindeeinrichtung (6) aufgefunden wurden, jedoch nicht die aufgefundenen Ergebnisse der Beeinflussungs-Zuweisungs-Extraktionseinrichtung (5) sind; und
eine erste Verlustauftritts-Betriebsmittelelement-Ermittlungseinrichtung, um zu ermitteln, welchen Betriebsmittelelementen die Zuweisungen, die die Auffindeergebnisse der Sekundär-Beinflussungs-Zuweisungs-Auffindeeinrichtung sind, zugewiesen sind, indem auf die Zuweisungsergebnis-Speichereinrichtung (8) Bezug genommen wird;
wobei die Verlustwert-Berechnungseinrichtung (12, 15) Verlustwerte der Betriebsmittelelemente berechnet, die durch die erste Verlustauftritts-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wurden, basierend auf den Prioritätswerten für jede Zuweisung, die durch die Kohärent-Zuweisungs-Auffindeeinrichtung (6) ermittelt wurden, und deren Lebendigkeitsbereiche darüber hinaus den Lebendigkeitsbereich der Zuweisung beeinflussen, die jedem Betriebsmittelelement zugewiesen ist, wobei die Verlustwerte aller Betriebsmittelelemente abseits des Betriebsmittelelementes, das durch die Verlustauftritts-Betriebsmittelelement- Ermittlungseinrichtung ermittelt wurde, auf 0 eingestellt sind.
20. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 19, weiterhin enthaltend:
eine Nicht-Kommutativ-Operationsdefinitions-Ermittlungseinrichtung zum Ermitteln, ob die Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgenommen ist, durch eine nicht kommutative Operation, wie etwa einer Subtraktion oder Division definiert ist; und
eine zweite Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung, um, wenn die Nicht-Kommutativ-Operationsdefinitions-Ermittlungseinrichtung ermittelt, daß die Zuweisung als nicht kommutative Operation definiert ist, ein Betriebsmittelelement aufzufinden, dem eine Zuweisung zugewiesen ist, die sich auf einer rechten Seite eines Operationszeichens der nicht kommutativen Operation befindet;
wobei, sobald die zweite Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung das Betriebsmittelelement aufgefunden hat, die Verlustwert-Berechnungseinrichtung (12, 15) die Prioritätswerte der Zuweisungen, die dem Betriebsmittelelement zugewiesen sind, zum Verlustwert und dem Globalverlustwert des Betriebsmittelelementes addiert, das das Ermittlungsergebnis der zweiten Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung ist.
21. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 19 oder 20, weiterhin enthaltend:
eine Nicht-Kommutativoperations-Operationszeichen-Ermittlungseinrichtung zum ermitteln, ob die sich Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgenommen ist, auf einer rechten Seite eines Operationszeichens einer nicht kommutativen Operation, wie etwa einer Subtraktion oder Division befindet; und
eine dritte Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung zum Auffinden eines Betriebsmittelelementes, dem die Zuweisung, die durch die nichtkommutative Operation definiert ist, zugewiesen ist, sobald die Nicht-Kommutativoperations-Operationszeichen-Ermittlungseinrichtung ermittelt hat, das sich die Zuweisung auf der rechten Seite befindet;
wobei, sobald die dritte Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung das Betriebsmittelelement aufgefunden hat, die Verlustwert-Berechnungseinrichtung (12, 15) die Prioritätswerte der Zuweisungen, die dem Betriebsmittelelement zugewiesen sind, zum Verlustwert und zum Globalverlustwert des Betriebsmittelelementes addiert, das das aufgefundene Ergebnis der dritten Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung ist.
22. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 4 oder 21, weiterhin enthaltend:
eine Schleifenverschachtelungs-Tiefenpegel-Auffindeeinrichtung zum Auffinden eines Schleifenverschachtelungs-Tiefenpegels jeder Schleife im Programm;
wobei die Gewinnwert-Berechnungseinrichtung (12, 15) den Gewinnwert für das Betriebsmittelelement, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurde, auf der Basis der Schleifenverschachtelungs- Tiefenpegel der Zuweisungen berechnet, die dem Betriebsmittelelement zugewiesen sind, und die Gewinnwerte der Betriebsmittelelemente abseits des Betriebsmittelelementes, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wird, auf 0 eingestellt sind.
23. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 22, weiterhin enthaltend:
eine Sekundär-Beeinflussungs-Zuweisungs-Auffindeeinrichtung (5) zum Auffinden von Zuweisungen, die über Lebendigkeitsbereiche verfügen, die die Lebendigkeitsbereiche der Zuweisungen beeinflussen, die durch die Kohärent-Zuweisungs-Auffindeeinrichtung (6) aufgefunden werden, jedoch nicht die aufgefundenen Ergebnisse der Beeinflussungs-Zuweisungs-Extraktionseinrichtung (5) sind; und
eine erste Verlustauftritts-Betriebsmittelelement-Ermittlungseinrichtung, um zu ermitteln, welchen Betriebsmittelelementen die Zuweisungen, die die Auffindungsergebnisse der Sekundär-Beeinflussungs-Zuweisungs-Auffindeeinrichtung sind, zugewiesen sind, indem auf die Zuweisungsergebnis-Speichereinrichtung (8) Bezug genommen wird;
wobei die Verlustwert-Berechnungseinrichtung (12, 15) die Verlustwerte der Betriebsmittelelemente berechnet, die durch die erste Verlustauftritts-Betniebsmittelelement-Ermittlungseinrichtung ermittelt werden, basierend auf den Schleifenverschachtelungs-Tiefenpegeln jeder Zuweisung, die durch die Kohärent Zuweisungs-Auffindeeinrichtung (6) ermittelt werden, und deren Lebendigkeitsbereiche darüber hinaus den Lebendigkeitsbereich der Zuweisung beeinflussen, die dem Betriebsmittelelement zugewiesen ist, und die Verlustwerte aller Betriebsmittelelemente abseits des Betriebsmittelelementes, das durch die Verlustauftritts- Betriebsmittelelement-Ermittlungseinrichtung ermittelt wird, auf 0 eingestellt sind.
24. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 23, weiterhin enthaltend:
eine Nicht-Kommutativoperation-Definitions-Ermittlungseinrichtung zum Ermitteln, ob die Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgenommen wird, durch eine nicht kommutative Operation, wie etwa einer Subtraktion oder Division, definiert ist; und
ein zweite Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung, um, wenn die Nicht-Kommutativoperation-Definitions-Ermittlungseinrichtung ermittelt, daß die Zuweisung als nicht kommutative Operation definiert ist, ein Betriebsmittelelement aufzufinden, dem eine Zuweisung zugewiesen ist, die sich auf einer rechten Seite eines Operationszeichens der nicht-kommutativen Operation befindet;
wobei, sobald die zweite Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung das Betriebsmittelelement aufgefunden hat, die Verlustwert-Berechnungseinrichtung (12, 15) die Schleifenverschachtelungs-Tiefenpegel der Zuweisungen, die den Betriebsmittelelementen zugewiesen sind, zum Verlustwert des Betriebsmittelelementes addiert, das das Ermittlungsergebnis der zweiten Verlustauftritts- Betriebsmittelelement-Auffindeeinrichtung ist.
25. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 24, weiterhin enthaltend:
eine Nicht-Kommutativoperation-Operationszeichen-Ermittlungseinrichtung zum Ermitteln, ob sich die Zuweisung, die durch Zuweisungs-Auffindeeinrichtung (7) aufgenommen ist, auf einer rechten Seite eines Operationszeichens einer nichtkommutativen Operation, wie etwa einer Subtraktion oder Division befindet; und
eine dritte Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung zum Auffinden eines Betriebsmittelelementes, dem die Zuweisung zugewiesen ist, die durch die nicht ommutative Operation definiert ist, sobald die Nicht-Kornmutativoperation-Operationszeichen-Ermittlungseinrichtung ermittelt hat, daß sich die Zuweisung auf der rechten Seite befindet;
wobei, sobald die dritte Verlustauftritts-Betriebsmittelelement-Auffindeeinrichtung das Betriebsmittelelement aufgefunden hat, die Verlustwert-Berechnungseinrichtung (12, 15) die Schleifenverschachtelungs-Tiefenpegel der Zuweisungen, die dem Betriebsmittelelement zugewiesen sind, zum Verlustwert des Betriebsmittelelementes addiert, das das aufgefundene Ergebnis der dritten Verlustauftritts- Betriebsmittelelement-Auffindeeinrichtung ist.
26. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 4, bei dem die Gewinnwert-Berechnungseinrichtung (12, 15) den Gewinnwert für das Betriebsmittelelement berechnet, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurde, basierend auf einer Anzahl von Zuweisungen aus den aufgefundenen Ergebnissen der Kohärent-Zuweisungs-Auffindeeinrichtung (6), die dem Betriebsmittelelement zugewiesen sind, wobei die Gewinnwerte der Betriebsmittelelemente abseits des Betriebsmittelelementes, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt würde, auf 0 eingestellt sind.
27. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 26, weiterhin enthaltend:
eine Sekundär-Beeinflussungs-Zuweisungs-Extraktionseinrichtung (5) zum Auffinden von Zuweisungen, die über Lebendigkeitsbereiche verfügen, die die Lebendigkeitsbereiche der Zuweisungen beeinflussen, die durch die Kohärent- Zuweisungs-Auffindeeinrichtung (6) aufgefunden wurden, jedoch nicht die aufgefundenen Ergebnisse der Beeinflussungs-Zuweisungs-Extraktionseinrichtung (5) sind; und
eine erste Verlustauftritts-Betriebsmittelelement-Ermittlungseinrichtung, um zu Ermitteln, welchen Betriebsmittelelementen die Zuweisungen, die die Auffindeergebnisse der Sekundär-Beeinflussungs-Zuweisungs-Auffindeeinrichtung sind, zugewiesen sind, indem auf die Zuweisungsergebnis-Speichereinrichtung (8) Bezug benommen wird;
wobei die Verlustwert-Berechnungseinrichtung (12, 15) die Verlustwerte der Betriebsmittelelemente berechnet, die durch die erste Verlustauftritts-Betriebsmittelelement-Ermittlungseinrichtung ermittelt werden, basierend auf der Anzahl von zugewiesenen Zuweisungen, die durch die Kohärent-Zuweisungs-Auffindeeinrichtung (6) ermittelt wird, und deren Lebendigkeitsbereich darüber hinaus die Lebendigkeitsbereiche der Zuweisungen beeinflußt, die dem Betriebsmittelelement zugewiesen sind, wobei die Verlustwerte sämtlicher Betriebsmittelelemente abseits des Betriebsmittelelementes, das durch die Verlustauftritts-Betriebsmittelelement- Ermittlungseinrichtung ermittelt wurde, auf 0 eingestellt sind.
28. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 4, weiterhin enthaltend:
eine Ausführungsfrequenz-Speichereinrichtung zum Speichern einer Frequenz, die anzeigt, wie oft jeder Schritt im Programm ausgeführt wird in Übereinstimmung mit jedem Schritt im Programm; und
eine Ausführungsfrequenz-Summiereinrichtung, zum Summieren der Frequenzen der Schritte im Programm für jede Zuweisung, die in der Zuweisungs- Speichereinrichtung (3) gespeichert ist, die die entsprechenden summierten Werte als Ausführungsfrequenz für jede Zuweisung einstellt;
wobei die Gewinnwert-Berechnungseinrichtung (12, 15) den Gewinnwert für das Betriebsmittelelement berechnet, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wird, basierend auf den Ausführungsfrequenzen der Zuweisungen, die dem Betriebsmittelelement zugewiesen sind, wobei die Gewinnwerte für die Betriebsmittelelemente abseits des Betriebsmittelelementes, das durch die Nachfolge-Betriebsmittelelement-Ermittlungseinrichtung (9) ermittelt wurde, auf 0 eingestellt sind.
29. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 28, weiterhin enthaltend:
eine Sekundär-Beeinflussungs-Zuweisungs-Extraktionseinrichtung (5) zum Auffinden von Zuweisungen, die über Lebendigkeitsbereiche verfügen, die die Lebendigkeitsbereiche der Zuweisungen beeinflussen, die durch die Kohärent- Zuweisungs-Auffindeeinrichtung (6) aufgefunden werden, jedoch nicht die aufgefundenen Ergebnisse der Beeinflussungs-Zuweisungs-Extraktionseinrichtung (5) sind; und
eine erste Verlustauftritts-Betriebsmittelelement-Ermittlungseinrichtung, um zu ermitteln, welchen Betriebsmittelelementen die Zuweisungen, die die Auffindeergebnisse der Sekundär-Beeinflussungs-Zuweisungs-Auffindeeinrichtung sind, zugewiesen sind, indem auf die Zuweisungsergebnis-Speichereinrichtung (8) Bezug genommen wird;
wobei die Verlustwert-Berechnungseinrichtung (12, 15) die Verlustwerte der Betriebsmittelelemente berechnet, die durch die erste Verlustauftritts-Betriebsmittelelement-Ermittlungseinrichtung ermittelt werden, basierend auf den Ausführungsfrequenzen jeder Zuweisung, die durch die Kohärent-Zuweisungs-Auffindeeinrichtung (6) ermittelt werden, und deren Lebendigkeitsbereich darüber hinaus den Lebendigkeitsbereich der Zuweisung beeinflußt, die jedem der Betriebsmittelelemente zugewiesen ist, wobei die Verlustwerte aller Betriebsmittelelemente abseits des Betriebsmittelelementes, das durch die Verlustauftritts-Betriebsmittelelement-Ermittlungseinrichtung ermittelt wird, auf 0 eingestellt sind.
30. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 1, weiterhin enthaltend:
eine Kosten-Speichereinrichtung (3), um für jedes Betriebsmittel die Kosten zu speichern, die die Kodegröße und/oder die Ausführungszeit jeder Anweisung zeigen, die das Betriebsmittel in Anspruch nimmt;
eine Kosten-Ermittlungseinrichtung (4), um die Kosten für jedes Betriebsmittel durch Bezugnahme auf die Kosten-Speichereinrichtung (3) für jede Anweisung in einem Programm zu ermitteln, die im Lebendigkeitsbereich einer Variablen in einer Zuweisung verwendet wird;
eine Kosten-Summiereinrichtung (4), um die durch die Kosten-Ermittlungseinrichtung (4) ermittelten Kosten jeder Zuweisung für jedes Betriebsmittel zu summieren; und
eine Prioritätswert-Berechnungseinrichtung zum Berechnen des Prioritätswertes auf der Basis des Kostengesamtwertes, der für jede der Zuweisungen und die Lebendigkeitsbereiche der unterschiedlichen Zuweisungen berechnet wurde.
31. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 30, weiterhin enthaltend:
eine Betriebsmittel-Klassifizierungs-Zuweisungs-Zuführeinrichtung, um sämtliche Zuweisungen, die demselben Betriebsmittel zugewiesen werden können, der Zuweisungs-Speichereinrichtung (3) zuzuführen,
wobei die Betriebsmittel-Klassifizierungs-Zuweisungs-Zuführeinrichtung enthält:
eine Betriebsmittel-Ermittlungseinrichtung (9), um zu ermitteln, welches Betriebsmittel die geringsten Gesamtkosten aller summierten Kosten für die unter-- schiedlichen Zuweisungen hat, die mit der Kosten-Summiereinrichtung (4) berechnet wurden;
eine Betriebsmittel-Klassifizierungsgruppen-Konvertiereinrichtung, um auf die unterschiedlichen Zuweisungen und die Betriebsmittel Bezug zu nehmen, die den Zuweisungen entsprechen, die durch dis Betriebsmittel-Ermittlungseinrichtung (9) ermittelt wurden, und um die Zuweisungen zu Gruppen zu konvertieren, wenn sie als dieselben Ermittlungsergebnisse habend erhalten wurden, um Betriebsmittel-Klassifizierungsgruppen zu bilden;
eine Betriebsmittel-Klassifizierungsgruppen-Auswahleinrichtung, zum Auswählen einer Gruppe aus der Vielzahl der klassifizierten Gruppen, die durch die Betriebsmittel-Klassifizierungsgruppen-Konvertiereinrichtung ausgebildet werden;
eine Betriebsmittel-Klassifizierungsgruppen-Schreibeinrichtung, um die Betriebsmittel-Klassifizierungsgruppe, die durch die Betriebsmittel-Klassifizierungsgruppen-Auswahleinrichtung ausgewählt wurde, in die Zuweisungs-Speichereinrichtung (3) zu schreiben; und
eine Steuereinrichtung (1, 19), um eine Auswahl einer nächsten Betriebsmittel-Klassifizierungsgruppe anzuzeigen, wenn alle Zuweisungen, die in der Zuweisungs-Speichereinrichtung (3) gespeichert sind, durch die Zuweisungs-Auffindeeinrichtung (7) aufgenommen worden sind.
32. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 31, weiterhin enthaltend:
eine Betriebsmittel-Klassifizierungsgruppen-Kostensummiereinrichtung, zum Summieren der gesamten Kostenwerte der Zuweisungen, die durch die Kosten- Summiereinrichtung (4) gefunden wurden, für jede der Betriebsmittel-Klassifizierungsgruppen, die durch die Betriebsmittel-Klassifizierungsgruppen-Konverteiereinrichtung ausgebildet werden;
wobei die Betriebsmittel-Klassifizierungsgruppen-Auswahleinrichtung eine Betriebsmittel-Klassifizierungsgruppe mit den höchsten Gesamtkosten, die durch Gruppenkosten-Summiereinrichtung summiert werden, aus noch nicht ausgewählten Betriebsmittel-Klassifizierungsgruppen auswählt.
33. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 32, bei dem die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung (9):
eine erste Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung zum Ermitteln der Betriebsmittel-Klassifizierungsgruppe, zu der die Zuweisung gehört, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgefunden wird;
eine zweite Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung, um, wenn allen Betriebsmittelelementen des Betriebsmittels, das der Betriebsmittelelement-Klassifizierungsgruppe entspricht, Zuweisungen zugewiesen sind, die durch die Beeinflussungs-Zuweisungs-Extraktionseinrichtung (5) aufgefunden wurden, die Betriebsmittel-Klassifizierungsgruppe für eine Zuweisung mit einer höheren Kostenwertsumme für die Zuweisung zu ermitteln als das erste ermittelte Betriebsmittel, darüber hinaus aber mit einem geringsten Gesamtkostenwert; und
eine erste Übertragungseinrichtung, um, sobald die zweite Betriebsmittel- Klassifizierungsgruppen-Ermittlungseinrichtung eine Betriebsmittel-Klassifizierungsgruppe ermittelt hat, eine Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung von der Betriebsmittel-Klassifizierungsgruppe aufgefunden wurde, die durch die erste Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung ermittelt wurde, zur Betriebsmittel-Klassifizierungsgruppe zu übertragen, die durch die zweite Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung ermittelt wurde.
34. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 33, bei der die Kosten- Summiereinrichtung (4) weiterhin enthält:
eine Schleifenverschachtelungs-Tiefenpegel-Auffindeeinrichtung zum Auffinden des Schleifenverschachtelungs-Tiefenpegels der Verschachtelungsvorgänge für die unterschiedlichen Anweisungen, die die Variable in einer Zuweisung verwenden;
wobei die Kosten-Summiereinrichtung (4) den Schleifenverschachtelungs- Tiefenpegel zu den Kosten addiert, die durch die Kosten-Auffindeeinrichtung (4) aufgefunden werden.
35. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 31, weiterhin enthaltend:
eine Gruppenelementzahl-Auffindeeinrichtung zum Auffinden einer Anzahl der Zuweisungen, die zu einer Betriebsmittel-Klassifizierungsgruppe gehören;
wobei die Betriebsmittel-Klassifizierungsgruppen-Auswahleinrichtung die Betriebsmittel-Klassifizierungsgruppe mit einer größten Anzahl von Zuweisungen, die durch die Gruppenelementzahl-Auffindeeinrichtung aufgefunden werden, aus den noch nicht gewählten Betriebsmittel-Klassifizierungsgruppen auswählt.
36. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 35, bei dem die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung (9) weiterhin enthält:
eine erste Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung zum Ermitteln der Betriebsmittel-Klassifizierungsgruppe, zu der die Zuweisung gehört, die durch die Betriebsmittel-Auffindeeinrichtung ermittelt wird;
eine zweite Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung zum Ermitteln der Betriebsmittel-Klassifizierungsgruppe mit einer nächst höheren Anzahl von Zuweisungen, wenn sämtlichen Betriebsmittelelemente des Betriebsmittels, das der Betriebsmittel-Klassifizierungsgruppe entspricht, die das Ermittlungsergebnis der ersten Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung ist, Zuweisungen zugewiesen worden sind, die durch die Beinflussungs- Zuweisungs-Extraktionseinrichtung (5) aufgefunden wurden; und
eine erste Übertragungseinrichtung, um, sobald die zweite Betriebsmittel- Klassifizierungsgruppen-Ermittlungseinrichtung eine Betriebsmittel-Klassifizierungsgruppe ermittelt hat, eine Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung aus der Betriebsmittel-Klassifizierungsgruppe aufgefunden wurde, die durch die erste-Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung ermittelt wurde, zur Betriebsmittel-Klassifizierungsgruppe zu übertragen, die durch die zweite Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung ermittelt wurde.
37. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 31, weiterhin enthaltend:
eine Betriebsmittelelementzahl-Auffindeeinrichtung zum Auffinden einer Anzahl von Betriebsmittelelementen in einem Betriebsmittel entsprechend einer Betriebsmittel-Klassifizierungsgruppe;
wobei die Betriebsmittel-Klassifizierungsgruppen-Auswahleinrichtung die Betriebsmittel-Klassifizierungsgruppen in der Reihenfolge der Anzahl der Betriebsmittelelemente auswählt, die durch die Betriebsmittelelementzahl-Auffindeeinrichtung aufgefunden wurden, beginnend mit einer geringsten Anzahl.
38. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 37, bei dem die Demselben-Betriebsmittel-verbleibendes-Betriebsmittelelement-Ermittlungseinrichtung (9) weiterhin enthält:
eine erste Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung zum Ermitteln der Betriebsmittel-Klassifizierungsgruppe, zu der eine Zuweisung gehört, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgefunden wurde;
eine zweite Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung zum Ermitteln der Betriebsmittel-Klassifizierungsgruppe mit einer nächst geringeren Zahl von Betriebsmittelelementen, wenn allen Betriebsmittelelementen des Betriebsmittels, das einer Betriebsmittel-Klassifizierungsgruppe entspricht, Zuweisungen zugewiesen wurden, die durch die Beeinflussungs-Zuweisungs-Extraktionseinrichtung (5) aufgefunden wurden; und
eine erste Übertragungseinrichtung, um, sobald die zweite Betriebsmittel- Klassifizierungsgruppen-Ermittlungseinrichtung eine Betriebsmittel-Klassifizierungsgruppe ermittelt hat, eine Zuweisung, die durch die Zuweisungs-Auffindeeinrichtung (7) von der Betriebsmittel-Klassifizierungsgruppe aufgefunden wurde, die durch die erste Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung ermittelt wurde, zur Betriebsmittel-Klassifizierungsgruppe zu übertragen, die durch die zweite Betriebsmittel-Klassifizierungsgruppen-Ermittlungseinrichtung ermittelt wurde.
39. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 30, weiterhin enthaltend:
eine Betriebsmittelelementzahl-Ermittlungseinrichtung, um auf die Zuweisungsergebnis-Speichereinrichtung (8) Bezug zu nehmen und eine Anzahl von Betriebsmittelelementen, die bereits zugewiesen wurden, aus dem Auffindeergebnis der Beeinflussungs-Zuweisungs-Extraktionseinrichtung (5) im Hinblick auf die Zuweisung zu finden, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgefunden wird, wobei
die Prioritätswert-Berechnungseinrichtung den Prioritätswert der Zuweisungen, die durch die Zuweisungs-Speichereinrichtung (3) gespeichert werden, auf der Basis der Ermittlungsergebnisse der Betriebsmittelelementzahl-Ermittlungseinrichtung neu berechnet.
40. Betriebsmittelzuweisungsgerät (33, 35) nach Anspruch 30, weiterhin enthaltend:
eine Betriebsmittelelementzahl-Ermittlungseinrichtung, um auf die Zuweisungsergebnis-Speichereinrichtung (8) Bezug zu nehmen und eine Anzahl von Betriebsmittelelementen, die bereits zugewiesen wurden, aus den Auffindeergebnissen der Kohärent-Zuweisungs-Auffindeeinrichtung (6) im Hinblick auf die Zuweisung zu finden, die durch die Zuweisungs-Auffindeeinrichtung (7) aufgefunden wird, wobei
die Prioritätswert-Berechnungseinrichtung den Prioritätswert der Zuweisungen, die durch die Zuweisungs-Speichereinrichtung (3) gespeichert werden, auf der Basis der Ermittlungsergebnisse der Betriebsmittelelementzahl-Ermittlungseinrichtung neu berechnet.
DE69428247T 1993-10-20 1994-10-20 Betriebsmittelzuweisungsgerät Expired - Fee Related DE69428247T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26281493A JP3299611B2 (ja) 1993-10-20 1993-10-20 資源割付装置

Publications (2)

Publication Number Publication Date
DE69428247D1 DE69428247D1 (de) 2001-10-18
DE69428247T2 true DE69428247T2 (de) 2002-04-18

Family

ID=17380988

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69428247T Expired - Fee Related DE69428247T2 (de) 1993-10-20 1994-10-20 Betriebsmittelzuweisungsgerät

Country Status (4)

Country Link
US (1) US5684994A (de)
EP (1) EP0650121B1 (de)
JP (1) JP3299611B2 (de)
DE (1) DE69428247T2 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1149476C (zh) * 1995-03-16 2004-05-12 松下电器产业株式会社 资源分配装置
JP3060907B2 (ja) * 1995-07-28 2000-07-10 日本電気株式会社 言語処理プログラムの処理方式
US6442584B1 (en) * 1997-05-16 2002-08-27 Sybase, Inc. Methods for resource consolidation in a computing environment
EP0947922B1 (de) 1998-04-01 2006-09-27 Matsushita Electric Industrial Co., Ltd. Kompiler
US6584611B2 (en) * 1999-02-17 2003-06-24 Elbrus International Limited Critical path optimization—unload hard extended scalar block
US6434743B1 (en) * 1999-04-23 2002-08-13 Sun Microsystems, Inc. Method and apparatus for allocating stack slots
US7518993B1 (en) * 1999-11-19 2009-04-14 The United States Of America As Represented By The Secretary Of The Navy Prioritizing resource utilization in multi-thread computing system
JP2001290652A (ja) * 2000-04-04 2001-10-19 Matsushita Electric Ind Co Ltd プログラム変換装置、プログラム変換方法及び記録媒体
FR2823871B1 (fr) * 2001-04-20 2003-07-04 Canon Kk Procede et dispositif de generation du code executable d'un programme d'ordinateur
US7320131B1 (en) * 2001-06-06 2008-01-15 Cisco Technology, Inc. Methods and apparatus for selecting a server to process a request
JP3956112B2 (ja) 2002-06-12 2007-08-08 インターナショナル・ビジネス・マシーンズ・コーポレーション コンパイラ、レジスタ割当装置、プログラム、記録媒体、コンパイル方法、及びレジスタ割当方法
US7313552B2 (en) * 2004-03-19 2007-12-25 Sybase, Inc. Boolean network rule engine
US7478374B2 (en) * 2004-03-22 2009-01-13 Intel Corporation Debug system having assembler correcting register allocation errors
US7590508B1 (en) 2004-10-22 2009-09-15 Sprint Communications Company L.P. Method and system for forecasting usage costs and computer capacity
US20070038984A1 (en) * 2005-08-12 2007-02-15 Gschwind Michael K Methods for generating code for an architecture encoding an extended register specification
US20070143762A1 (en) * 2005-12-16 2007-06-21 Arnold Kevin M Assigning tasks in a distributed system based on ranking
US7831960B2 (en) * 2006-06-08 2010-11-09 Oracle America, Inc. Configuration tool with multi-level priority semantic
JP4721975B2 (ja) * 2006-07-28 2011-07-13 パナソニック株式会社 コンパイラ装置およびコンパイル方法
JP4785710B2 (ja) * 2006-11-14 2011-10-05 富士通株式会社 資源に対する重要度算出方法及び装置
JP5165969B2 (ja) * 2007-08-29 2013-03-21 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムのコンパイルのために変数にレジスタを割り付ける技術
JP2009181279A (ja) * 2008-01-30 2009-08-13 Sanyo Electric Co Ltd 情報処理装置および割当方法
JP2011181114A (ja) * 2011-06-23 2011-09-15 Panasonic Corp プログラム変換装置、プログラム変換方法及び記録媒体
US20130321040A1 (en) * 2012-05-31 2013-12-05 General Electric Company Method and system for using demand response to provide frequency regulation
US10310863B1 (en) * 2013-07-31 2019-06-04 Red Hat, Inc. Patching functions in use on a running computer system
US9823842B2 (en) 2014-05-12 2017-11-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
CN110347512B (zh) * 2019-07-12 2023-05-12 北京天云融创软件技术有限公司 一种多组件异构资源需求的资源调度方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4885684A (en) * 1987-12-07 1989-12-05 International Business Machines Corporation Method for compiling a master task definition data set for defining the logical data flow of a distributed processing network
US4961141A (en) * 1988-12-16 1990-10-02 International Business Machines Corporation Generating efficient code for a computer with dissimilar register spaces
US5274811A (en) * 1989-06-19 1993-12-28 Digital Equipment Corporation Method for quickly acquiring and using very long traces of mixed system and user memory references
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
JPH0816871B2 (ja) * 1990-12-07 1996-02-21 富士ゼロックス株式会社 プログラム翻訳装置およびプログラム翻訳方法
CA2060555A1 (en) * 1991-04-24 1992-10-25 Robert J. Bullions, Iii System and method for draining an instruction pipeline
US5226164A (en) * 1991-04-24 1993-07-06 International Business Machines Corporation Millicode register management and pipeline reset
DE69311330T2 (de) * 1992-03-31 1997-09-25 Seiko Epson Corp., Tokio/Tokyo Befehlsablauffolgeplanung von einem risc-superskalarprozessor

Also Published As

Publication number Publication date
US5684994A (en) 1997-11-04
EP0650121A2 (de) 1995-04-26
JP3299611B2 (ja) 2002-07-08
JPH07121377A (ja) 1995-05-12
EP0650121B1 (de) 2001-09-12
DE69428247D1 (de) 2001-10-18
EP0650121A3 (de) 1996-12-04

Similar Documents

Publication Publication Date Title
DE69428247T2 (de) Betriebsmittelzuweisungsgerät
DE69613732T2 (de) Betriebsmittelzuweisungsgerät
DE69129067T2 (de) Verfahren um die skalaren datenabhängigkeiten für einen optimisationskompiler darzustellen
DE69620057T2 (de) Optimierer
DE69726339T2 (de) Verfahren und Apparat zur Sprachübersetzung
DE3586374T2 (de) Verfahren zur elimination globaler gemeinsamer unterexpressionen und zur kodeverschiebung in einem optimierenden kompilierer.
DE69127011T2 (de) Speicherverwaltungsverfahren mit Hilfe einer Baumstruktur
DE69030425T2 (de) Verfahren und Vorrichtung zur Kompilierung von Rechnerprogrammen mit Registerzuweisung zwischen Prozeduren
DE69024515T2 (de) Gerät zur Streckenmessung und -analyse zur Leistungsabschätzung von Software-Entwürfen
DE69909945T2 (de) Verfahren und Anordnung zur Korrelation von Profildaten dynamisch erzeugt durch ein optimiertes ausführbares Programm mit Quellcodeanweisungen
DE69524511T2 (de) Kompiler mit verbesserter Untersuchung von Interferenz von Lebendigkeitsbereichen
DE102013215438A1 (de) System zum Unterstützen einer flexiblen Farbzuweisung in komplexen Dokumenten
DE69230127T2 (de) Diagrammerkennungssystem
DE3485999T2 (de) Hochgeschwindigkeitverarbeitungssystem fuer rechneranlage.
DE69905776T2 (de) Sprachenverarbeitungsverfahren mit geringem Aufwand und Speicherbedarf bei der Profildatensammlung
DE112012004809B4 (de) Kantenverfolgung mit Hysterese-Schwellenwertbildung
DE112013001747T5 (de) Optimieren des Verbindens von Anweisungen
DE102009038454A1 (de) System und Verfahren zum Reduzieren einer Ausführungsdivergenz in Parallelverarbeitungsarchitekturen
WO2010124853A2 (de) Verfahren zur erzeugung mindestens einer anwendungsbeschreibung
DE112013001735T5 (de) Optimieren des Verbindens von Anweisungen
DE19600428C2 (de) Vorrichtung und Verfahren zum Reduzieren eines durch einen Prozeß verwendeten tatsächlichen Arbeitssatzes eines Prozesses in einem Computersystem mit virtuellem Speicher
DE69712965T2 (de) Verfahren, System und Rechnerprogrammprodukt zur Registerzuweisung unter Verwendung mehrerer Interferenzgraphen
DE10017551A1 (de) Verfahren zur zyklischen, interaktiven Bildanalyse sowie Computersystem und Computerprogramm zur Ausführung des Verfahrens
DE102012025349B4 (de) Bestimmung eines Ähnlichkeitsmaßes und Verarbeitung von Dokumenten
DE102012210482A1 (de) Verfahren und System zum Migrieren von Geschäftsprozessinstanzen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee