DE2312193A1 - Uebersetzer und quellencode-erzeuger fuer eine problemorientierte sprache fuer rechenanlagen - Google Patents

Uebersetzer und quellencode-erzeuger fuer eine problemorientierte sprache fuer rechenanlagen

Info

Publication number
DE2312193A1
DE2312193A1 DE19732312193 DE2312193A DE2312193A1 DE 2312193 A1 DE2312193 A1 DE 2312193A1 DE 19732312193 DE19732312193 DE 19732312193 DE 2312193 A DE2312193 A DE 2312193A DE 2312193 A1 DE2312193 A1 DE 2312193A1
Authority
DE
Germany
Prior art keywords
code
language
computer
input
instructions
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.)
Ceased
Application number
DE19732312193
Other languages
English (en)
Inventor
Byron Boyd Claghorn
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.)
Unisys Corp
Original Assignee
Burroughs Corp
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 Burroughs Corp filed Critical Burroughs Corp
Publication of DE2312193A1 publication Critical patent/DE2312193A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis

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)
  • Executing Machine-Instructions (AREA)

Description

Aktenzeichen: Neuanmeldung
datum: 2. März 1973
BURROUGHS CORPORATION,
eine Gesellschaft nach den Gesetzen des Staates Michigan, Second Avenue at Burroughs, Detroit, Michigan 48232, Vereinigte Staaten von Amerika.
Übersetzer und Quellencode-Erzeuger für eine problemorientierte Sprache für Rechenanlagen.
Die Erfindung beschäftigt sich mit einem Verfahren zur Erzeugung von digitalen Rechenbefehlen für die Lösung eines in Form von problemorientiert geschriebenen Daten in eine Datenverarbeitungsanlage eingegebenen Problems. Die Verwendungsmöglichkeit von Rechenanlagen als Werkzeug zum Lösen von Problemen 1st bislang noch nicht in vollem Umfang ausgenutzt worden. Einer der Hauptgründe, warum Rechner bisher nicht so wirkungsvoll eingesetzt wurden, wie es theoretisch ihren Möglichkeiten entspräche, liegt darin, daß der Benutzer, der ein Problem lösen wollte, erst über eine Reihe von beruflichen Ausbildungsstufen, z.B. als Systeatprogrammierer, Zugang zu den Rechner und zu seiner Benutzung für .die Problemlösung erhielt. Dieses Inter-
HZ/gs
309840/0825
face-Problem beruht weitgehend auf der Kompliziertheit des Rechenverfahrens und auf den Schwierigkeiten, die auch bei der Verwendung der hochentwickelten Programmiersprachen, wie z.B. COBOL und FORTRAN auftraten. ·
In jedem Falle besteht ein wesentliches Erfordernis in der F ähigkeit, das Problem in eindeutiger und genauer Sprache zu formulieren. Tatsächlich bildet daher die Entwicklung der Schreibweise für die Formulierung eines Problems einen Teil des Verfahrens zur Problemlösung. Jeder Problembereich oder jede Klasse von Problemen besitzt ein besonderes Bezeichnungssystem; z.B. benutzt ein Ingenieur bei der Darstellung eines Wärmeleitungsproblems ein Bezeichnungssystem, das für die' Thermody namik eigentümlich ist. Diese Schreibweise unterscheidet sich vollkommen von dem Bezeichnungssystem eines Arztes, der das Befinden eines Patienten diagnostiziert und die Symptome einer Krankheit beschreibt. Es ist daher offensichtlich, daß das Vermögen, ein sachgemäßes und bekanntes Bezeichnungssystem zu benutzen, von großer Bedeutung für die Lösung des Problems ist· Leider wirken die Strenge und die manchmal seltsame und unbekannte Schreibweise einer Compilersprache leicht als Erschwerung bei der Formulierung eines Problems. Soll daher der Rechner ein bequemes Hilfsmittel für die Lösung von Problemen werden, so muß das Bezeichnungssystem in natürlicher Weise und mit möglichst wenigen künstlichen Zwangsbedingungen aus dem individuellen Denkprozeß hervorgehen.
Ein weiteres wichtiges Merkmal ist das iterative Vorgehen beim Aufsuchen von Problemlösungen. In den meisten Fällen formuliert der Benutzer eine Auegangssituation in bekannten Ausdrücken und legt bestimmte sachdienliche
309840/0825
Parameter dieser Ausgangslage fest. Nach Prüfung der Ergebnisse der ersten Problemlösung kann der Benutzer sich dafür entscheiden, die Formulierung des Problems zu erweitern oder die Ausgangsparameter zu modifizieren, um verschiedene Änderungen abzuschätzen. Eine Reihe von Vorteilen sprechen für die Verwendung eines Rechners in diesem Bereich, unter anderem die Geschwindigkeit, mit der man die Ergebnisse erhalten kann und die Möglichkeit, eine größere Anzahl von Abänderungen unter verschiedenen Bedingungen abzuschätzen.
Bekanntlich lassen sich die meisten Probleme in große Klassen einteilen, in denen die Formulierung der Probleme in einer besonderen Schreibweise oder einer spezialisierten Sprache möglich ist. Die Kennzeichen des Verfahrens zur Problemlösung deuten also darauf hin, daß eine vom Benutzer bestimmbare Schreibweise, d.h. eine -ein« problemorientierte Sprache, (POL= Problem Orient ated Language^ die erste Voraussetzung für den Vorgang der Problemlösung ist. In der Vergangenheit verlangte die Erzeugung einer problemorientierten Sprache (POL) eine mühseliges Verfahren, wobei der mit dem Problem Beschäftigte, z.B. ein Ingenieur, Wissenschaf tier. .oder Geschäftsmann, und ein Systemspezialist oder Programmierer in gemeinsamer Anstrengung zunächst die zu verwendende POL bestimmen mußten und dann die ermüdende Aufgabe hatten, eine Verwirklichung dieser POL in einer Compiler- oder Assembler-Sprache zu schreiben. Der nötige Arbeitsaufwand wuchs gewöhnlich exponentiell mit der wachsenden Breite des Problems an, und es ergaben sich allzu oft ziemlich begrenzte und nicht flexible problemorientierte Sprachen.
Angesichts dieser Probleme wurde die vorliegende Erfindung entwickelt, um den Vorgang der Schaffung einer
309840/0825
am Benutzer orientierten, für den Rechner verwendbaren Sprache so weit wie möglich zu automatisieren, sowie um nach Möglichkeit die Verwendung von ausgebildeten Programmieren für Datenverarbeitungsanlagen zu vermeiden. Es ist hervorzuheben, daß das erfindungsgemäße Verfahren ohne Bezug auf eine besondere Gestaltung eines ÖigitaIi-Rechners entwickelt wurde, und daß keine bestimmte Programmiersprache vorausgesetzt wird. Es ist daher für den Fachmann selbstverständlich, daß die Verwirklichung des erfindungsgemäßen Verfahrens nicht en einen besonderen Rechnertyp oder an eine besondere Programmiersprache gebunden ist.
Die vorliegende Erfindung soll ein Verfahren schaffen, dae sich zur Verwendung in einem Digital-Allzweckrechner für die Erzeugung ÜRäfChisr-^ Rechenbefehle eignet, die in einem Digital-AHzweckrechner ^ie Verarbeitung eines in einer von dem Benutzer angegebenen Sprache aufgezeichneten Problems bewirken. Ferner soll die Erfindung ein Verfahren zur Analysierung der Grammatik und der Syntax einer problemorientieren Sprache schaffen· Weiterhin soll die Erfindung ein verallgemeinertes Verfahren zur Erzeugung eines ^^^^.JRechner-Quellencodes in einer beliebigen Compiler-Sprache liefern»
Diese und weitere Merkmale der Erfindung werden nachfolgend in Form eines Verfahrens oder eines Vorganges beschrieben, der in einem ij&Jyij^ifciia^Allzweckrechner verwirklicht werden kann.
Der erste Schritt des Arbeitsvorgangs besteht in der Ausstattung des Generators für den Sprachenübersetzer mit der Grammatik der problsmorientierten Sprache« Diese Grammatik wird als Hilfsmittel für die Lösung der allgemeinen Klasse von Problemen ausgebildet, an welcher der
309840/0825
Benutzer interessiert ist. Die Grammatik der problemorientierten Sprache (POL) besteht aus der Syntax, welche die logische Struktur der Sprache darstellt, und aus den semantischen Funktionen, welche die tatsächlichen von der Sprache ausgeführten Prozeduren oder Funktionen darstellen. Der Generator für den Übersetzer der problemorientierten Sprache (POL) verwandelt die Sytax der problemorientierten Sprache in eine Grammatiktafel, die eine Netzwerkstruktur-Darstellung der Sprachstruktur mit der Bezeichnung der passenden semantischen Funktionen ist. Wenn die Sprachenstruktur keine logischen Fehler enthält, wandelt der ■ ' Pol- generator die Grammatiktafel in einen Befehlscode um. Nach der Einführung des Befehlscodes in die POL-Grammatikdatei erzeugt der POL-Übersetzer-Generator einen problemorientierten Übersetzer in Form eines Digital-Rechner-Quellencodes.
An dieser Stelle ist ein Übersetzer für problemorientierte Sprache entstanden, welcher Daten, die in dieser problemorientierten Sprache aufgezeichnet sind, aufnehmen und in Verbindung mit dem in der Grammatikdatei gespeicherten Befehlscode in Parameter,<J#fin±tioia*-Anweisungen umwandeln kann, die als Eingangssignale für den Quellencode-Generator dienen. Der nächste Schritt des ;_ __L Verfahrens besteht in der Belieferung der Skelett l-*u· Mischdateien mit einer Reihe von Prozeßsteuer-Anweisungen und Quellensprachen-Routinen durch die Dateilade-Routinen. Diese Prozeßsteuer-Anweisungen haben die Funktion, den Quellencode—Generator beim Aufbau einzelner Quellencode-Anweisungen zu steuern· Vor dem Aufbau dieser einzelnen Quellencode-Befehle, bildet der Quellencode-Generator eine Γιιι inn 11 ijj^flh|tiuüä,'i Tafel in dem Speicher des Rechners aus den Parameter-Anweisungen, die von dea POL-Übersetzer (Übersetzer für
309840/0825
problemorientierte Sprache) erzeugt worden sind. Der Quellencode-Generator, der die in der. Skeletel-Datei (Skeletal File) gespeicherteren Prozeßsteueranweisungen verarbeitet, wählt die geeigneten Quellensprach-Prozeduren aus, die in der Misch-Datei gespeichert worden sind und anzeigen, wann diese Quellensprachprozeduren in' den Quellensprach-Code einzuschließen sind. Die meisten der Quellensprach-Routinen, die für die tatsächlichen Arbeitsgänge und Berechnungen für die Lösung der Problemklasse benötigt werden, für welche die problemorientierte Sprache (POL) bestimmt ist, werden in der Misch-Datei gespeichert. Zusätzlich zu den in der Misch-Datei gespeicherten Quellensprach-Routinen können bestimmte Prozeßsteuer-Anweisungen eingeführt werden, die in die Quellensprach-Routinen eingefügt werden können, um diese Quellensprach-Routinen enger auf die Parameter des speziellen zu lösenden Problems des Benutzers abzustimmen. Die Misch-Datei kann daher sowohl Quellensprach-Routinen als Prozeßsteuer-Anweisungen enthalten.
Nachdem der POL-Übersetzer erzeugt worden ist und die Prozeßsteueranweisungen und die Quellencode-Routinen dem Quellencode-Generator zugeführt worden sind, ist das gesamte System bereit für die Erzeugung eines Di— gital-Rechner-Quellen-Code in Abhängigkeit von in Form der problemorientierten Sprache (POL) eingegebenen Daten. An dieser Stelle des Arbeitsverfahrens führt der Benutzer dem POL-Übersetzer Problemdaten zu; diese Daten erscheinen in der Form der problemorientierten Sprache. Unter Benutzung des in der Grammatik-Datei enthaltenen Befehls-Code wandelt der problemorientierte Übersetzer diese Daten in Parameter-BefiiriLfclöfct-Anweisungen um. Der Quellencode-Generator nimmt automatisch diese von dem POL-Übersetzer erzeugten Parameterbestim-
309840/0825
mungs-Anweisungen auf und bildet eine Parametertafel in dem Rechnerspeicher. An dieser Stelle des ■"■-" "."":■ ■·.<■ Verfahrens gelangt der Code-Generator unter die Steuerung der Prozeßsteuer-Anweisungen in der Skftl*fe«l#ftten, und unter Benutzung der Parametertafeln und der Quellensprach-Routinen in der Misch-Datei erzeugt das System einen Quellensprach-Code, der sich für die Qewinnung der exakten Lösung der eingegebenen Problemdaten eignet.
Der auf diese Weise erzeugte Quellencode kann einem Compiler zugeführt und dann auf einem !Digital- Rechner ausgeführt werden und liefert eine spezifische Antwort auf das Problem, zu welchem der Benutzer Daten eingegeben hat. Zusätzlich kann als Nebenprodukt des Verfahrens die Aufstellung des Quellencode als Programmdokumentation betrachtet werden.
Die nachfolgende ausführliche Beschreibung der Erfindung stützt sich auf die beigefügten Zeichnungen. Es zeigen:
Fig. 1 ein Flußdiagramm, das die gesamte Logik und die Programmbestandteile der Erfindung darstellt;
Fig. 2 ein Flußdiagramm mit der Darstellung der gesamten Logik des Generators für den Übersetzer der problemorientierten Sprache (Problem orientated language translator generator);
Fig. 3,4 und 5 Flußdiagramme mit der Darstellung
der Logik von Unterprogrammen in dem Generator für den Übersetzer der problemorientierten Sprache;
Fig. 6 eine Möglichkeit für die Darstellung der Gramraatikdatei in einem Rechnerspeicher;
Fig. 7 ein Flußdiagramm mit der Darstellung der
gesamten Logik des Übersetzers der problemorientierten Sprache (Problem orientated language translator);
Fig. 8 ein Flußdiagramm mit der Darstellung der ge-
309840/0825
\ samten Logik des verallgemeinerten Quellencode-Generators (GENOL);
Fig. 9,10,11,12,13,14 und 15 Beispiele von GENOL-Steueranweisungen und der programmatischen Logik, die sie ingangsetzen;
Fig. 16 und 17 ein repräsentatives Beispiel einer Reihe von GENOL-=Steueranweisungen und den von diesen Anweisungen erzeugten Zeichen und
Fig. 18 ein schematisches Blockschaltbild einer
Ausführungsform der vorliegenden Erfindung.
Das in Fig. 1 gezeigte Flußdiagramm zeigt die gesamte Logik dieses Verfahrens zur Erzeugung eines Digital-Rechner-Quellencode für die Lösung eines angegebenen Problems bei Benutzung in einem Digital-Allzweckrechner. Die logischen Blöcke in dem äußeren Block 46 bezeichnen die einzelnen Schritte des Verfahrens, während die Symbole außerhalb des äußeren Blockes 46 den Eingang 12 und die Ausgänge 10,40,42,44 des Verfahrens angeben.
Der erste Schritt des in Fig. 1 dargestellten Verfahrens besteht in der Schaffung eines Übersetzers 20 für problemorientierte Sprache (POL-Übersetzer) so daß die Problemdaten 12 in das System in einer dem Benutzer der Anlage bekannten Form eingegeben werden können. Dies wird durch die Verwendung des POL-Übersetzer-Generators (POLGEN) 18 erreicht. An dieser Stelle entwickelt bei einer praktischen Anwendung des Systems ein Systemanalysist eine problemorientierte Sprache, in welcher die spezifische Problemart oder Problemklasse des Benutzers formuliert wird« Die Syntax der POL und die semantischen Funktionen der POL werden in den POL-Generator (POLGEN) 18 gegeben. Der POLGEN erzeugt den POL-Übersetzer und eine Grammatikdatei 22, welche in Codeform die Grundstruktmr der Sprache enthält. Zusätzlich enthält die Grammatikdatei eine Reihe von
3 0 9 8 A 0 / ■ 0 8 2 B
semantischen Funktionen oder Prozeduren, die ebenfalls in den POLGEN 18 gegeben wurden. Diese semantischen Funktionen in der Form von Quellencode-Segmenten haben die Funktion, die POL-Eingabedaten in GENOL-Parameter 24 umzuwandeln. Zusätzlich kann POLGEN 18 eine Liste oder Dokumentation 10 der Grammatik erzeugen, welche graphisch die Struktur der Grammatik darstellt und sämtliche logischen Fehler in der Sprache anzeigt, so daß eine Korrektur mö glich ist. Wenn eine zufriedenstellende Grammatikdarstellung 10 erzeugt worden ist, so ist der POL—Übersetzer 20 für die Annahme der Pro— blemdaten 12 in Form der problemorientierten Sprache bereit.
Die Problemdaten werden, gewöhnlich in Kartenformat, in den POL-Übersetzer 20 eingegeben und der POL-Übersetzer 20 erzeugt eine Reihe von Quellencode-Generator Parametern 24 (GENOL-Parametern), wobei der in der Grammatikdatei 22 enthaltene POL-SpracherwCqde benutzt wird.
Bevor der endgültige Quellencode 40 in diesem Verfahren durch den Code-Generator 30 erzeugt werden kann, ist es nötig, eine Reihe von GENOL—Steuer—Anweisungen und Quel— lensprach-Routinen 28 in die Skeletal-Datei 38 (Skeletal File) und die Misch-Datei 34 (Merge File) einzuführen. Die Quellensprach-Routinen 28 können z.B. aus linearen Programmierungsalgorithmen, aus verschiednen Tabellier- oder Buchhaltungs—Prozeduren oder aus statistischen Prozessen bestehen. Diese verschiedenen Quellensprach-Routinen 28 werden durch eine Dateilade-Routine 36 in die Mischdatei 34 geladen, so daß sie ausgewählt und in den resultierenden Quellencode 40 placiert werden können, falls sie in dem endgültigen Programm 40 erforderlich sind. Die Steueranweisungen für den Code-Generator 30 werden so aufgezeichnet, daß der Qnellen-
309840/0825
code-Generator (GENOL 30) die von dem POL-Übersetzer 20 in Abhängigkeit von den tatsächlichen Problemdaten erzeugten GENOL-Parameter 24 interpretiert, daß der Quellencode-Generator 30 weiter die richtigen Quellensprach- Routinen auswählt und sie in richtiger Ordnung in dem resultierenden Quellencode 40 anordnet. Das Dateilade-Programm 36 dient zum Laden der GENOL-Steuer-Anweisungen in die Skeletal—Datei 38 und der Quellensprach-Routinen in die Misch-Datei. Diese GENOL-Steueranweisungen werden in der Reihenfolge ihrer Benutzung geladen, denn sie werden von dem Code-Generator 30 nacheinander gelesen. Die GENOL—Steuer—Anweisungen 26 können ebenfalls in die Misch-Datei 34 zusammen mit den Quellensprach-Routinen 28 eingegeben werden als Hilfsmittel für die Einführung von Werten aus der Parametertafel 32 direkt in den Quellencode.
Nachdem sämtliche GENOL-Steuer-Anweisungen 26 und Quel— len-Sprach-Routinen 28 in die Skeletal-Datei 38 und in die Mischdatei 34 eingegeben wordenrsind und nachdem die GENOL-Parameter von dem POL-Übersetzer 20 erzeugt worden sind, erzeugt der Code-Generator 30 einen Satz Parameter-Tafeln 32 i» Rechnerspeicher aus den GENOL-Parametern 24.
Wenn die Parametertafeln 32 fertig sind, steht der Code-Generator 30 für die Erzeugung des Endproduktes des erfindungsgemäßen Verfahrens, des_Sdgi€el*Rechner-Quellencodes bereit. Die GENOL-Steueranweisungen, die in aufeinanderfolgender Reihe ' in der Skeletal-Datei 38 gespeichert sind, dienen zum Betrieb des Code-Generators 30. Während das GENOL-Programm durch die GENOL-Steuer-Anweisungen fortschreitet, führt es eine Anzahl von Funktionen aus, darunter den Aufbau von einzelnen Quellencode—Anweisungen, die Auswahl von Gruppen
309840/0 8 25
von Quellencode-Anweisungen aus der Mischdatei 34 sowie die Einfügung von verschiedenen Parametern aus dem Parametertafeln 32 in die Quellencode-Anweisungen. Am Ende des Vorganges ist ein vollständiges Quellencode-Programm 40 erzeugt worden, das spezifisch auf das Auffinden einer Lösung für die bei 12 eingegebenen Problemdaten abgestimmt ist. Dieses Quellen— code-Programm kann dann bei 42 einem Compiler zugeführt und von einem Rechner ausgeführt werden, so daß sich bei 44 eine Antwort auf das gestellte Problem ergibt.
POLGEN 18 ist der Generator für den problemorientierten Sprachübersetzer. Wie oben bei der Beschreibung des gesamten logischen Programm-Flusses des Verfahrens dargestellt wurde, ist ein POLGEN in dieser Erfindung nötig, damit eine hochflexible benutzerorientierte oder problemorientierte Sprache (POL) relativ leicht konstruiert werden kann. Die gesamte Logik von POLGEN in dieser Ausführungsform der Erfindung ist in Fig. 2 dargestellt, während verschiedene Teile des POLGEN in den Fig. 3,4, 5,6,7 und 8 im einzelnen dargestellt sind und in Verbindung mit einem Beispiel des Befehlscode, den POLGEN sowohl verwendet als erzeugt, anhand von Tabelle 1 diskutiert werden. {
Der erste logische Block 60 in Fig. 2 wird für das Ingangsetzen des POLGEN-Systems benötigt. Der erste Schritt bei diesem Einleitungsvorgang it if) Fig« 2 wird bei in Fig. 3 gezeigt und besteht in der öffnung der Grammatikdatei für POLGEN. Der zweite Schritt des Einleitungsvorgangs für das POLGEN-System in Fig· 3 besteht in dem Einlesen der Abtasterttf *ln ί««MÄertibl«)Ö*i, «2* A»ie Abtast tafeln dienen zur Bestimmung der Größen, nach denen <ter POLGEN-Äbtä»**·*' ■ < :: ^m zu suchen hat. Diese Größen sind für gewöhnlich als Zeichen oder als
309840/0825
Ketten von Zeichen definiert. Der letzte Schritt des ! Einleitungsvorgangs 84 besteht in dem Einlesen der j ersten Seite der POLGEN-Grammatik aus der POLGEN-Grammatikdatei in den Speicher des Rechners«,
Als nächstes in dieser Ausführungsform der Erfindung gemäß Fig. 2 eine Routine 62 in dem POLGEN nötig, um den Zufluß vom Benutzer herzustellen. Diese Routine für die Einschaltung des Benutzers ist in Fig. 4 dargestellte Der erste Schritt der Routine besteht in der · Öffnung oder Erzeugung einer neuen Grammatikdatei oder Ausgabedatei für das POLGEN-System. Zusätzlich muß eine Markentafeldatei im Speicher des Rechners eröffnet werden, welche die Marken und Klassifizierungen der Eingabe-Daten oder -Größen enthält. Dazu gehören die Größen, welche die POLdes Benutzers bilden, z.B. Wörter, spezielle Zeichen, Zahlen usw. Diese Tafeldateien besitzen Ähnlichkeit mit den AbtaetftT.afeln 82 in Fig. 3. Weiterhin ist die Eröffnung einer Druckdatei (Print File) erforderlich, so daß die Art der Träger für die Ausgabedaten für den Benutzer bestimmt werden kann.
Für das POLGEN-System ist ferner sine Ablese-Routine 64 (Read Line Routine) gemäß Pig. 2 erforderlich, damit der Übersetzer für problemorientierte Sprache für Eingabedaten bereit sein kann. Ein Beispiel einer Ablese-Routine ist in Fig. 5 dargestellt, 4elbei 102 eine Karte abgelesen und bei 104 das Kartenbild gedruckt wird. Wenn die letzte Karte gelesen ist, wird ein Schalter bei 106 gestellt, bevor die Routine den Ausgang zu dem Übersetzer 108 erreicht, wie es nach der Ablesung jeder Karte geschieht. Dieser Schalter informiert den Übersetzer darüber, ob noch weitere Karten für die Ablesung übrig geblieben sind.
30 98 40/08 25
Die restlichen logischen Blöcke in Fig. 2, der Interpreter 68, ^s^AfctaeterprogjHMHtr 66 und die Routinen 70, werden insgesamt als der Übersetzer betzeichnet. An dieser Stelle ist zu betonen, daß die in Fig. 2 für das POLGEN-System gezeigte Logik im wesentlichen mit der Logik für den POL-Sprach-Übersetzer übereinstimmt. D.h., der POL-Sprach-Übersetzer besteht aus denselben logischen Blöcken 68,66,70 in Fig. 2 wie der POLGEN-Übersetzer.
Eins der Grundelemente des POLGEN-Übersetzers ist die Abfrage-Vorrichtung, die in Fig. 2 mit 66 und in Fig.8 mit 142 bezeichnet ist. Die hauptsächliche Funktion eines Abtasterprograneas (Scanner) ist das Erkennen verschiedener Größen, wie sie in die Datenverarbeitungsanlage eingegeben werden, und das Übertragen dieser Größen in einer solchen Form, daß sie für den Übersetzer erkennbar sind. Ein typisches Äbtast«rpjrogramm ist für Karteneingabe geschrieben und für die Erkennung von auf einer Karte gelochten Zeichenketten und für die Klassifizierung dieser Größen oder Zeichenketten programmiert. Diese Klassifizierungen können alphabetische Ketten, numerische Ketten, spezielle Zeichen, erlaubte Kombinationen und Folgen von Zeichen enthalten. FehlerabtMtterprogranme : sind so eingerichtet, daß sie bestimmte Größen in Abhängigkeit von ihrer Zusammensetzung akzeptieren oder zurückweisen; z.B. kann die Vermischung von Buchst aben-und Zahlen-Zeichen in derselben Kette oder der falsche Gebrauch eines besonderen Zeichens,wie etwa eines Kommas ein Zurückweisungsgrund sein· Xn der vorliegenden Ausführungsform der Erfindung gibt '<"iSmm "Willi! Hai μι Uljiiliü'
jede Größe in vier verschiedenen Formen wieder: Die Größe selbst, die eine exakt4 Kopie des Elementes ist, wie es von jjjfsi*btimt*»yl uyifrlM uiyg auf genommen wurde; der Wert der Größe, wobei bei einer Buchstabeneingabe nur der Buchstabe selbst erscheint und bei einer nuweri-
3098A0/0825
BAD
sehen Eingabe alle numerischen Verbindungszeichen, wie z.B· Kommas oder Perioden weggelassen sind; der ganzzahlige Größenwert im Falle einer Zahl; und der Bruchwert der Größe im Falle einer Zahl. Zusätzlich gibt das Abta.sterprograiB» .. auch die Dimensionen der Größe wieder; dazu gehört, wo die Größe beginnt und wo sie endet sowie die Länge der Große, so daß Art und Umfang der Größe vollständig bestimmt sind. Die Speicherung der Größen in· sieben verschiedenen Formen macht es möglich, jede Größe rasch und wirkungsvoll mit jeder Art von grammatischer Angabe zu vergleichen.
Das Schlüsselelement in dem POLGEN-System und dem POL-Übersetzer ist die Grammatik-Datei 22 in Fig. 1. Das POLGEN-System verwendet eine besonders bezeichnete Grammatikdatei für die Erzeugung einer Grammatikdatei für den POL-Übersetzer 20 in Fig. 1. Das Format der in dieser Ausführungsform der Erfindung verwendeten Grammatikdatei ist in Fig. 6 dargestellt, wo eine Grammatik-Datei 110 in einer Reihe von Sätzen in dem Rechnerspeicher gespeichert ist. Der erste Satz 112 enthält die verschiedene, für die Grammatik-Datei benötigte Bezugsinformation, z.B. Identifikation, Länge usw. Jeder der folgenden Sätze 114-116 besteht aus 224 Unterabschnitten (Subnode), wobei jede SetendBÄfcJK—>^ -'eine Zeile des Befehlscode (OP-CODE) darstellt. Jeder jJRj&Hode 120 in Fig. 6 entspricht daher jeder Zeile des Befehls-Code in der Grammatikdatei. Bei dieser Struktur der Datei enthält >äer Satz 118,2241^Juteeji*«*· <;-."_ wobei jede;Subiiödef;^";: --" zu einer Zeile des Befehlscode äquivalent ist. Jed^' 5ιο»ηοιφϊ=_2^M *:%. 120 in Fig. 6 besteht aus vier Bytes, und jedes Byte ist in zwei ZEJVärn oder ;_ Stellen eingeteilt« Durch die Verwendung dieses Befehls-Code wird die Struktur oder die Syntak der Sprache in der Grammatikdatei dargestellt. In Tafel 1 ist ein Bei~
309840/0825
BAD ORiQiMAL
spiel einer Sprachdefinition durch Verwendung eines Befehls-Code dargestellt, und die Art der Information, die in jedejr Stitpiipue "'.-'' gespeichert ist, wird durch die Regeln angegeben, die in Tafel 2 aufgezeichnet sind; derartige Tafeln bilden einen Teil der Offenbarung und sind unmittelbar vor den Patentansprüchen zusammengestellt.
Die Arbeitsweise des Befehls-Code und die Darstellung der Struktur der Sprache durch den Befehls-Code wird nachstehend erläutert. Die Syntax der Sprache ist als Netzwerkstruktur dargestellt, wobei jede Node · einen Verzweigungspunkt anzeigt. Der Übersetzer sucht bei jeder "Bode "iKn^tänhach einer Anzahl verschiedener Größen. Die erste in Tabelle I ίIa)aufgeführte Größe "DECLARATION" wäre die erste Größe, nach der der Übersetzer suchen müßte, da dies die erste Größe unter de« ersten .* «ode in der Grammetik-Datel l*t. Aas der Tabelle IX(ZXa) ist zu ersehen, daß das erste Bit des Befehls-Code, IA, anzeigt, daß es sich um eine Testangabe handelt, oder daß der Übersetzer zu bestimmen;"versucht, ob die Größe in der Grammatikdatei, Tafel 2, mit der von dem Abtaster (Scanner) weitergegebenen Größe übereinstimmt. XiIM Code-Ziffin? ' ; s?- besitzt den Wert Null, was an dieser Stelle anzeigt, daß bei positivem Ausfall.', des Tests und bei Übereinstimmung eine Durchgangsbedingung (fall through condition) eintritt, was bedeutet, daß die nächste von dem Abtaster weitergegebene Größe mit der nächsten Größe "Terminal" unter {<iiitjier Dckie ~ * "Ti^T verglichen wird. Das zweite Byte des Befehls-Code, die^ffffcriv^i^JfcB'^'zeigen die Mindestlänge der zu vergleichenden Größe an, in diesem Fall die ersten vier Zeichen. Daher muß der Benutzer lediglich "DECL" auf seiner Eingabekarte setzen, damit ein erfolgreicher Vergleich zustandekomnt. Einzelne Zei-
3098A0/0825
BAD
chen der Größe, die weitergegeben wird, werden mit den
Zeichen verglichen, die in den Ijiufc«*■:'-■?- LhIj.-■—
noden in den Zeilen 2,3 und 4 von Tebelle I<Ia} gespeichert sind. In dem Beispiel der ersten Zeile in dem Befehlscode'. Tabelle KIa) zeigt das dritte Byte, die Ziffern 3Ä_.und 3B, die Maximallänge der zu prüfenden Größe an, in diesem Fall 11 Zeichen. Das vierte Byte ist eine Zählung der Anzahl von Abschnitten, die das System vorwärts überspringen müßte, um den Verzweigungsbefehl zu erreichen.
In diesem Falle hat das Byte 4 mit den Stellen 4A und 4B den Wert 06, was anzeigt, daß der nächste Verzweigungsbefehl sich in der Zeile ,mit der Nummer 6 befindet. Auf diese Weise wird die Struktur der Sprache in der Grammatik—Datei gespeichert.
Tabelle I(Ia) enthält ' ein Beispiel dafür, wie der Benutzer seine Sprache für die Eingabe in das POLGEN-System konstruiert. Die Sprache ist im wesentlichen eine Netzwerkstruktur mit einer Reihe von 'N©3en welche die logischen Regeln oder die Syntax der Sprache bilden. Aus dem in Tabelle T(Ia)dargestellten Beispiel ist ersichtlich, daß die ersten Wörter, die von dem System erwartet werden, die Wörter "DECLARATION", "TERMINAL", "ABA", "EVENT" und »PERIOD" sind, da diese Wörter unter die an erster Stell· Aufgeführt« Nod« fallen. Beim Erkennen eines dieser Wörter befiehlt die Grammatik-Darstellung (grammar graph) dem System, sich entweder zu anderen Teilen der Grammatik-öarsteilung zu verzweigen oder bestimmte Operationen auszuführen. T»l>ell· ΪΙΙ «teilt in graphischer Form die Sprache dar, die für die #%BjfiiS(· ; in den POLGEN benutzt wird. Die POLGEN-Grammatikdatei enthält einen Befehls-Code für diese Sprachdarstellungj
309840/08 2 5
Des*«nSorm Ähnlichkeit mit dem Befehls-Code in Tabelle II zeigt. Es ist daher die wesentliche Aufgabe des Übersetzers, wie in Fig. 8 gezeigt, in der Grammatik-Datei 22 des Benutzers in Fig. 1 einen Befehls-Code für die vom Benutzer angegebene problemorientierte Sprache (POL) zu erzeugen. Dies erfolgt wiederum durch Verwendung der Grammatik, die in der POLGEN—Grammatik-Datei gespeichert ist.
Der Übersetzer, der eine in Fig.2 gezeigte Kombination aus dem Interpretierer 68, dem Abtaster 66 und den Routinen 70 darstellt, ist in Fig. 7 imeinzelnen gezeigt. Der erste Schritt bei 134 ist die Erkundung, ob die erste Grammatikseite vorliegt. Ist dies nicht der Fall, muß die erste Grammatikseite von einer Speicherplatte oder einem anderen Speicherträger bei 136 abgelesen werden, und die erste Grammatik— Node wird bei 138 in den Rechnerspeicher geholt. An dieser Stelle setzt die Funktion des Abtasters ein, und die Stellung des Abtaster-Zeigers wird bei 140 geprüft. Wenn der Abtaster bei 142 keine Größe bei 144 lokalisieren kann, werden neue Karten bei 146 und 148 geteen, bis eine Größe gefunden ist. Die Grammatik—Nod· wird dann dekodiert, wie in Tebelle II,und «it der Größe verglichen, die bei 150 zurückkommt. Wenn der Fehlersuch-Monitor in Tätigkeit ist, werden ~ die Mode und der Inhalt des Schlüsselbereichs bei 154 dargestellt und ausgedruckt, wie der Benutzer bei 156 angegeben hat*r Dies ist eine der Funktionen, der Schreib-Zeilen-Routine 156. Die graphische Ausgabestelle wird in dem Flußdiagramm in Fig. 1 bei 10 gezeigt. Nachdem „dtÜ Gramma tile— - Node ~ bei 150 auf Fehler geprüft worden ist, zeigt der Befehls-Code an, ob eine Prozedur ausgeführt werden muß oder ob eine vom Benutzer gelieferte Funktion in den Code eingefügt werden soll. Nachdem dies ausgeführt worden
309840/0825
ist,kehrt das Programm zu dem Block 138 zurück, wo die nächste Grammatik- Mod· -.< geholt, wird und eine neue Größe von dem Abtaster zurückkommt; auf diese Weise wiederholt sich der Vorgang, bis das gesamte angegebene Material erschöpft ist.
In der beschriebenen Weise erzeugt das POLGEN-System die Grammatikdatei 22 in Fig. 1, welche die Struktur oder die Syntax der vom Benutzer angegebenen problemorientierten Sprache darstellt. Weiterhin wird durch den Zusatz von bestimmten Parametern und Angaben, z.B. Abtaster-Tafeln, zu dieser Syntax ein vollständiger Übersetzer entwickelt. Der PQLGEN gelangt daher zu der Erzeugung des POL-Übersetzers bei 20 in Fig. 1. Die Grammatik-Datei, welche der Übersetzer benutzt, ist bei 22 in Fig. 1 gezeigt. Im Endergebnis ist der POL-Übersetzer dafür geschaffen, Eingangscodes in POL—Sprache zu interpretieren und als semantische Prozeduren Parameter zu erzeugen, die sich·zur Eingabe in den Codegenerator bei 30 in Fig. 1 eignen.
Das andere Hauptprogramm oder die Programmtechnik, die bei diesem Verfahren zur Erzeugung eines Digital— Rechner-Quellencodes erforderlich ist, ist der verallgemeinerte Code-Generator (GENOL). Dieser wird in Verbindung mit dem POLGEN-Sprach-Übersetzer-Generator und dem POL-Übersetzer benutzt. Dieser verallgemeinerte Code-Generator GENOL ist in Fig. 8 dargestellt. Der Einleitungsvorgang 182 in Fig. 8 umfaßt den Aufbau von Parameter?-Tafeln 32 in Fig.l, so daß die von dem POL-Übersetzer 20 in Fig. 1 empfangene Information ein für die Eingabe in das ■ GENOL-Programm geeignete Format erlangt. Zusätzlich dienen zur Eingabe in GENOL die beiden in Fig« I gezeigten Dateien, die Skeletal-Datei 38 und die Mischdatei 34. Die Skeletal-Datei 38 enthält die Folge der
309840/08 25
GENOL-Steuer-Anweisungen, welche tatsächlich "#*n Generator, d.h.GENOL, taM$jMBU -i..L In einer getrennten Datei, der Mischdatei 34, werden die Quellen-Sprach— Routinen gespeichert, so daß sie in das Erzeugnis, den Quellencode 40, in den richtigen Zeitpunkten und der geeigneten Folge eingefügt werden können. Diese Einfügungen erfolgen unter der Steuerung der GENOL-Steueranweisungen in der Skeletal-Datei 38.
Die Logik des GENOL-Systems ist hauptsächlich in der Schleife 184 in Fig. 8 enthalten. Der erste Schritt in der Schleife 184 in Fig.8 besteht in der Auswahl der geeigneten Eingabeeinrichtung 186 und in der Ablesung des Datensatzes. Anfänglich wäre das der erste in der Skeletal—Datei 38 in Fig. 1 gespeicherte Satz oder GENOL-Steuer-Anweisung. Wenn es sich um ein GENOL-Steuer-Wort 188 in Fig. 8 handelt, was anfangs der Fall wäre, so würde die GENOL-Logik sich zu dem Übersetzer 190 verzweigen. Der Übersetzer 190 arbeitet in ähnlicher Weise wie der oben beschriebenen POL-Übersetzer. Unter Verwendung der GENOL-Grammatikdatei 192 dekodiert der Übersetzer die GENQL-Steuer-Anweisung und ruft bei 194 die geeignete semantische Funktion oder erzeugende Prozeduren. Diese erzeugenden Prozeduren umfassen allgemein den Aufbau einer Quellensprach-Anweisung, die Einfügung von Parametern in eine Quellensprach-Anweisung aus den bei 32 in Fig. 1 dargestellten Parametertafeln, und die Einfügung von einer oder mehreren in der Mischdatei enthaltenen Quellensprach-Anweisungen. Diese Vorgänge erfolgen bei 196 in Fig.8.
Das angeforderte, von dem GENOL-Übersetzer 192 in Fig.8 bestimmte Unterprogramm oder der Vorgang wird bei ausgeführt, und das Ergebnis wird in dem Zwischenspeicher
309840/0825
gespeichert. Der Zwischenspeicher ist ein Bereich in dem Rechnerspeicher, der die 80 Zeichen eines Lochkartenbildes aufnimmt. Die durch den GENOL konstruierten Quellensprach-Anweisungen besitzen das Quellenformat, ebenso wie die auf eine Karte,gelochten Quellensprach-Anweisungen. Das GENOL-System prüft sodann bei 200 in Fig. 8, ob der laufende Satz vollständig ist. Wenn der Quellensprach-Satz nicht vollständig ist, wird er in dem Zwischenspeicher zurückgehalten, und das GENOL-^ System verzweigt sich bis zu der Schleife A bei 184, um die nächste GENOL-Steueranweisung bei 186 aus der Skeletal-Dabei zu lesen. Falls die Vollständigkeitsprüfung "bei 200 ergibt, daß ein vollständiger Satz aufgezeichnet worden ist, schreibt das GENOL-System den vorangehenden Satz aus dem Zwischenspeicher in den Quellensprach-Ausgabe-Datenträger 40 in Fig. 1 und bringt einen neuen Satz in den Zwischenspeicher.
Falls die Prüfung der Art des bei 188 in Fig. 8 aus der Skeletal-Datei zurückkehrenden Satz es ergibt, daß es sich nicht um eine GENOL-Steueranweisung handelt, so wird angenommen, daß es sich um eine Quellencode-Anweisung oder um ein Segment davon handelt, und der Satz wird direkt in den Zwischenspeicher 198 gegeben. Da angenommen wird, daß der Satz vollständig ist, so wird der Inhalt direkt in den Ausgabedatenträger 202 ausgeschrieben. .
Der geschilderte Vorgang geht weiter, bis ein vollständiger Durchgang durch die Skeletal-Datei erfolgt ist. An dieser Stelle ist bei 206 in Fig. 8 der ganze Quellencode 40 in Fig. 1 vervollständigt und kann gemäß Fig. 1 einem Compiler in einem Rechner zugeführt werden. .·.·
309840/0825
Für jede Klasse von Problemen, die nach dem erfindungsgemäßen Verfahren gelöst werden soll, muß eine Folge von GENOL-Steueranweisungen erzeugt werden, welche die erforderlichen Quellensprach-Anweisungen erzeugen, wobei diese GENOL-Steueranweisungen so ausgewählt werden, daß die richtige Information aus den Parametertafeln 32 in Fig. 1 gewonnen wird. Durch Auswahl der richtigen Folge der GENOL-Steueranweisungen kann ein D±«|it*I-Rechner~ code für die Problemlösung in jeder gewünschten Quellensprache erzeugt werden, z.B. in FORTRAN, COBOL, ALGOL und in einer großen Auswahl anderer Assemblierersprachen. Zusätzlich kann das GENOL-Programm eine Anweisung vom ZIP-Typ enthalten, die den Compilierer zum automatischen Compilieren des Quellencode in den Objektcode bei 42 in Fig. 1 und nach der Compilierung die Ausführung des Objektcodes veranlaßt, so daß der Benutzer sich nicht mehr in den Vorgang bei der Berechnung der Lösung für eine besondere Folge von Problemdaten einschalten muß. Die ZIP-Anweisung ist ein Bild eines Steuerbefehls in dem Betriebssystem (Master-Steuer-Programm) bei den BURROUGHS-Datenverarbeitungssystemen B35OO,B4700,B6700, wobei der Steuerbefehl den Rechner zur Compilierung des Quellencodes und nötigenfalls zur Ausführung des Code veranlaßt.
Die verschiedenen Unterprogramme oder Vorgänge, die der GENOL-Übersetzer 190 in Fig. θ für die Konstruktion der verschiedenen Quellensprach-Anweisungen abruft, sind in den Figuren 9,10,11,12,13,14 und 15 dargestellt· Die Figuren 9-15 enthalten jeweils einen GENOL-Steuerbefehl sowie die Art ihrer Formatbildung in der Skeletal-Datei in Verbindung mit einem Flußdiagramm der von diesen QENOL-Steuerbefehl verwendeten/"loejtki' ·*&**■ Itnv*n. Der GENOL-Übersetzer 190 in Fig·8 hat die Aufgabe, den GENOL-Steuerbefehl zu erkennen und die passenden GENOL-Unter-
309840/0825
programme bei 194 in Pig. 8 abzurufen. Diese GENOL-Steueranweisungen werden im allgemeinen mit drei Sternen ■(♦··) vor der Anweisung bezeichnet. Durch die Verwendung dieser GENOL-Steuerbefehle werden die tatsächlichen Quellensprach-Anweisungen konstruiert und die geeigneten Parameter in die Quellensprach-Anweisungen eingefügt.
Der wichtigste der GENOL-Steuerbefehle, die BRING-Anweisung ("MOVE-statement), ist in'Fig. 9 dargestellt. Der in Fig. 9 erläuterte Zweck der BRING-Anweisung besteht in der Modifizierung der Quellensprach-Anweisungen durch die Übertragung von Werten in besondere Zeichenplatze in dem Quellencode-Ausgabedaten-Zwischenspeicher! In derBRING-Anweisung 226 :in Fig. 9 bedeutet S(I) den Buchstaben oder den Wert, der in die Zeichenplätze in dem Zwischenspeicher gebracht werden soll, und S(2) bedeutet dieKolönn«f in die der Buchstabe oder der Wert S(I) eingefügt werden soll. Der erste Schritt in dem Unterprogramm 212 in Fig. 9 ist das Auffinden der Länge von S(I) in Zeichenanzahl. Der zweite Schritt besteht darin, festzustellen, ob die Steueranweisung ein "FOR" enthält. Wenn das "FOR" vorhanden ist, so bestimmt der Wert S(3) die Länge oder die Anzahl der Zeichen, die in dem' Quellencode-Zwischenspeieher für S(I)zuzuordnen sind. An dieser Stelle 222 wird geprüft, ob die Länge von S(I) größer ist als die von S(3) angezeigte Länge. Wenn die Länge von S(I) größer ist als S(3), so wird sie bei 224 in Fig.9 abgerundet, und die abgerundete Form von S(I) wird in den zugeordneten Raum in dem Qüellencode-Ausgabedaten-Zwischenspeicher bei 218 in Fig. 9 gespeichert. Falls das "FOR" nicht benutzt ist, wird bei 216 eine LeerfepiouiMin dem Quellencode-Ausgabedaten-Zwischenspeicher zugeordnet, die gleich der Länge von S(I) in Fig. 9 ist. Nachdem der Buchstabe
* In diesem Sinne kann die Bringe nweisussg aech als -« Art Transportanweieung verstanden werden.
309840/0825
oder der Wert. S(I) in dem Quellencode-Ausgabe-Daten-Zwischenspeicher aufgenommen ist, kehrt die Steuerung zu dem Haupt-GENOL-Programm fcei 218 zurück.
Der wahrscheinlich zweitwichtigste GENOL-Steuer-Befehl ist die Ktisch-Anweisung (MERGE-stätement), die in Fig. 10 dargestellt ist. Die Misch-Anweisung hat die Punktion, verschiedene Quellensprach-Routinen, die in die Misch-Datei 34 von Fig. 1 gebracht wurden und die bei 2 32 in Fig. 10 dargestellt sind, zu nehmen und diese Quellensprach-Routinen zu dem endgültigen Erzeugnis oder dem Quellencode 40 in Fig. 1 zu mischen. In der Anweisung selbst mit dem Bezugszeichen 254 in Fig. 10 bezeichnet, wiederum nach drei Sternchen, H(i) den Satz, in dem sich die qewünschten Quellensprach-Anweisungen befinden. Der Aufdruck S(I) in dem Steuerbefehl 254 in Fig. 10 ist der Name von oder die Kennzeichnung von der Misch-Datei selbst. Der erste Schritt des Mischvorganges besteht bei 236 in Fig. 10 in der Öffnung der Misch-Datei, die sich in einem mit Speicherplatten arbeitenden Rechnerspeicher befinden kann. Nachdem die geeignete Datei, S(I), gefunden und aeöffnet worden ist, besteht der nächste Schritt bei 2 38 in Fig. 10 in der Auffindung des richtigen Satzes H(i). Wenn der richtige Satz in der Mischdatei gefunden worden ist, wird das erste Element in dem Satz gelesen. Jedes Element ist mindestens 80 Zeichen lang, so daß ein qanzes Kartenbild einer Quellensprach-Anweisung in einem Element gespeichert werden kann. Da in der Mischdatei auch GENOL-Steuer-Befehle gespeichert werden können, muß das Element bei 244 in Fig. 10 geprüft werden, um festzustellen, ob es sich tatsächlich um eine GENOL-Steuer-Anweisung handelt. Beim Vorliegen eines GENOL-Steuer-Befehls verzweigt das Unterprogramm sich bei in Fig. 10 und führt den GENOL-Steuer-Befehl so durch wie der GENOL-Übersetzer bei 190 in Fig. 8. Falls das
309840/0825
Element kein GENOL-Steuer-Befehl ist, führt die Routine bei 244 in Fig. 10 einfach die Quellencode-Segmente in den Zwischenspeicher ein. Dieser Vorgang wird wiederholt, bis las letzte Element des Satzes bei 248 in Fig. 10 qelesen ist, wonach sich da,s Unterprogramm nach 250 in Fiq.10 verzweigt, wobei die Plattendatei geschlossen wird und eine Rückkehr zu dem GENOL-Programm bei 196 in Fig. 8 erfolgt. Da es möglich ist, GENOL-Steuer-Be-.fehle in die Mischdatei einzuführen, und diese Befehle während einer Mischoperation auszuführen, ist es möglich, Hischanweisungen zu vers'chachteln und Parameter zu modifizieren oder in einzelne Quellensprach—Anweisungen einzufinden.
3 η Fi α. 11 ist ein weiterer wichtiger GENOL-Steuer-Befehl dargestellt, der als Schleifen-Anweisung (LOOP-statement) bezeichnet wird. Die Anweisung selbst ist mit dem,. Bezugs— zeichen 292 in Fig. 11 wiederum mit drei vorangehenden Sternchen dargestellt. Dieser Befehl hat den Zweck, fine Reihe von Anweisungen eine angegebene Anzahl von Malen ausführen zu lassen. In der Schleifen-Anweisung selbst bedeutet S(D ein Wort, dem verschiedene Werte beigelegt werden können und das anfangs auf den Wert eins eingestellt ist. Falls S(2) ein arithmetischer Ausdruck ist, muß das Wort P(n) "TIMES" sein und bewirkt, daß die Reihe von Anweisungen, die durch S(I) gekennzeichnet wird, S(2) Male durchgeführt wird. Im anderen Falle ist das Wort S(2) "EACH" und das Wort P(n) ist indiziert; und der Wert von S(I) muß gleich einem seiner indizierten Werte von P(n') erscheinen. Diese Wahl gestattet es, die Anzahl der durch S(I) bezeichneten Anweisungen so viele Male durchzuführen, wie benachbarte Werte von P(n), beginnend mit dem Wert 1, vorhanden sind. Die Logik ' dieser Subroutine beginnt bei 262 in Fig. 11, wo der Wert von S(I) auf 1 gestellt wird. Im
3098A0/0825
Im nächsten Schritt bei 264 wird das Wort S(2) geprüft, um festzustellen, ob es sich um das Wort "EACH" r -irvielt; falls dies nicht der Fall ist, verzweigt s.cri das Programm nach 266. An der Stelle wird der Wert von S(I) mit, dem Wert des Wortes S(?) verdienen, der einen numerischen Wert oder einen arithmetischen Ausdruck darstellt, um festzustellen, ob S(I) größer ist als S(2). Wenn S(I) gleich oder größer ist als S(2), nimmt das Programm an, daß die Anzahl der Anweisunnen in der Schleife (LOOP) die richtige Anzahl von Malen durchgeführt worden sind, und verzweigt sich zu der END- Anweisung bei 282 und der Rückkehr zu dem GENOL—Programm' bei 2 90. Wenn sncerprseits S(I) niedriger ist als S(2), verzweigt sich das Unterprogramm nach 272, wo die nächsten GENOL-Befehle durchgeführt werden. Nach Durchführung dieser Befehle prüft das Programm bei 270, ob die nächste Anweisung eine END-Anweisung ist, und wenn ja, ob ihre ID (Identification) gleich dem Wort S(I) ist. Falls dieser nächste Befehl keine END-Anweisung ist, oder die ID nicht mit der LOOP-Anweisung übereinstimmt, wird der nächste GENOL-Befehl bei 272 durchgeführt. Diese Folge von GENOL-Steuer-Befehlen wird durchgeführt, bis eine gültige END-Anweisung gefunden ist. Wenn bei 270 eine gültige END-Anweisung gefunden wurde, deren ID gleich S(I) ist, verzweigt das Unterprogramm sich nach 268, wo zu dem Wert von S(I) 1 addiert wird. Wieder wird der Wert von S(I) mit dem Wert von S(2) bei 266 verglichen, und wenn der Wert von S(I) immer noch unter dem von S(2) liegt, geht die beschriebene Folge von Befehlen weiter, bis der Wert von S(I) gleich oder größer ist als S(2). Auf diese Weise wird die Folge von Befehlen nach der LOOP-Anweisung so oft durchgeführt, wie der arithmetische Ausdruck S(2) angibt. Falls je-
309840/0825
doch die Prüfung an der Stelle 264 des Programms ergibt,, daß S(2) aleich dem Wort "EACH" ist8 verzweigt sich das Unterprogramm nach 276, wo festgestellt wird, ob der Wert des Wortes S(I) gleich η ist, dem Index des Wortes P(n) in der LOOP-Anweisung. Wenn keine Übereinstimmung zwischen S(I) und dem Indexwert η eines der Wörter P(n) festnesteilt werden kann, verzweigt sich das Programm nach 278, wo der nächste GENOL-Steuer-Befehl durchgeführt wird. Nach Durchführung dieses Befehls verzweigt sich das Programm nach 280, wo der nächste GENOL-Steuer-Befehl geprüft wird, um festzustellen, ob es sich um eine END-Anweisung handelt, deren ID gleich S(I) ist. Wenn dies nicht der Fall ist, wird der nächste Befehl bei 278 durchgeführt, bis bei 280 die END-Anweisung irit übereinstimmender ID gefunden ist. So werden tatsächlich alle GENOL-Steuer-Befehle in der Schleife durchaeführt und wenn die geeignete END-Anweisung gefunden ist, verzweigt das Programm sich nach 274, wo zu dem Wert von S('l) eine 1 addiert wiord. Hier wird wieder der Wert von S(I) mit dem Wert einer der indizierten Variablen P(n) verglichen. Wenn schließlich eine Übereinstimmung festgestellt ist, veranlaßt das Unterprogramm die Verzweigung des Programms direkt zu der END—Anweisung, und die Steuerung kehrt bei 290 zu dem GENOL-Programm zurück. Die Schleifen-Anweisung (LOÖP-statement) ist darum ein besonders wichtiger GENOL-Steuer-Befehl, das sie die recursive Ausführung einer Reihe von GENOL-Steuer-Befehlen und gleichzeitige Änderungen in den Werten der verschiedenen Parameter gestattet. Es ist ferner wichtig, daß für die geeignete Verwirklichung der Schleifen-Anweisung die GENOL-Steuer-Befehle in der Skeletal-Datei in einem Speicher mit direktem Zugriff" (random access) gespeichert werden, z.B. ein Plattenspeicher oder Kernspeicher. Auf diese Weise kann das GENOL^ Programm die Schleifen-Anweisungen ausführen, indem der Plattenschlüssel oder die Speicheradresse der ersten Anweisung nach den» Schlei-
309340/0825
.27-
fenbefehl (command) gespeichert wird; so ist bei dem Auffinden cer entsprechenden END-Anweisung die Rückkehr zu d«*n richtigen Platz oder der Speicherstelle möglich. ■ .NOL-Steuer-Befehle, die sich in Dateien mit sequen ti ellem Aufbau befinden, z.B. Karten oder bänder, k.:-inen nur einmal ausgeführt werden, wobei das recursive Merkmal der Schleifen-Anweisung verlorenaeht.
Sine weitere bedeutungsvolle und sehr wichtige GENOL-Anweisunq ist die Dollar-Zeichen ($)-Anweisung, die bei 306 in Fig. 12 dargestellt ist. Diese Anweisung soll einen Parameter festlegen und Parameterwerte anaeben. Die Anweisung wird mit drei Sternchen, einem Dollar-Zeichen, dem Parameternamen P und einer Reihe von Parameterindizes bezeichnet. Auf der rechten Seite des Gleichheitszeichens der Gleichung 306 stehen die entsprechenden, durciiy getrennten Werte für die Parameter. Diese Parameter können entweder Zahlen oder Buchstaben sein. Die Buchstaben werden von Anführungsstrichen benrenzt, z.B.: ·♦·$ PARANAME="PEANUT BUTTER". So oft das GENCL-Proqramm auf ein Dollarzeichen trifft, werden cie entsprechenden Werte für den Parameter in die Parametertafeln 32 in Fig. 1 placiert. Zusätzlich ist hier zu bemerken, daß die Parameter-Anweisungen, die in Fig. 12 gezeigt werden, dasselbe Format besitzen, das die Ausgabedaten des POLGEN-Übersetzers bei 24 in Fig. erzeugen. Mit anderen Worten, der POLGEN-Übersetzer hat die Hauptfunktion, die Problemdaten 12 in Fig. in qeeignefce GENOL-Parameter 24 in Fig. 1 umzusetzen. Eine Alternative zur Erzeugung der GENOL-Parameter-Anweisunqen in Dollarzeichenform durch den POLGEN-Übersetzer besteht darin, den POLGEN-Übersetzer die Benutzerdaten 1? direkt in die Parametertafeln 32 in Fig. 1 umsetzen zu lassen·
309840/0825
In Fig. 13 ist der Verzweigungsbefehl IF dargestellt. Die Syntax der Anweisung 322 in Fig. 13 gibt an, in welcher Weise die GENOL-Steuer-Anweisung gebraucht werden k->nn. S(I) bei 322 ist eine Beziehungs-Anweisung (relation Statement), deren Richtigkeit durch das Unterprogramm bei 312 geprüft wird. Wenn' die Beziehung S(I) richtig ist, führt das Unterprogramm die Befehle C(I) bei 316 durch. Wenn jedoch S(I) nicht richtig ist, verzweiat sich das Unterprogramm zu einem Entscheidungspunkt 314, um festzustellen, ob auf C(I) ein "ELSE" folgt.>Falls auf C(I) ein "ELSE" folgt, wird die Anweisung C(?) durchgeführt und die Steuerung kehrt zu dem GENOL-I rogramm bei 320 in Fig. 13 zurück. Falls kein "ELSE" vorhanden ist, wenn S(I) bei 312 falsch ist, kehrt diö Steuerung sofort bei 320 zu dem GENOL-Programm zurück. Die Aufgabe der IF-Anweisung besteht"darin, die Ausführung oder Nichtausführung einer Folge von GENOL-Steueranweisungen oder Befehlen zu veranlassen, je nach Ausfall der Relationsprüfung S(I).
In vielen Anwendungen ist es nötig, eine Folge von GENOL-Steuer-Befehlen während der Erzeugung eines spezifischen Quellencodes auszulöschen. Das ist die Aufgabe der in Fig. 14 gezeigten Auslösch-Anweisung (DELETE -Statement). Die Syntax der Auslösch-Anweisung ergibt- sich aus 346 in Fig. 14 und enthält grundsätzlich zwei Wahlmöglichkeiten.. Die erste dieser Wahlmöglichkeiten betrifft die Verwendung einer arithmetischen Anweisung in S(I) für die Angabe der Anzahl von Zeilen oder Steueranweisungen, die ausgelassen werden. Bei dieser Wahl ist "LINES" das Wort S(2)., um es von der zweiten Wahlmöglichkeit zu unterscheiden. Die zweite Wahl wird dann dadurch angezeigt, daß "UNTIL" das Wort S(I) ist, gefolgt von S(2), das in diesem Fall die Kennmarke (label ID) eines Markenbefehls (LABEL-command) wäre. Dadurch könnten alle dazwischenlie-
309840/0825
e Bis zum
genden GENOL-Anweisungen oder Steuerbefehle Bis Zusammentreffen mit der in S(2) angegebenen Marke übergangen werden. Dieses Unterprogramm beginnt bei 332 in FLa. 14, wo S(I) geprüft wird, um festzustellen, ob sein ^rt"UNTIL" ist. Wenn dies der Fall ist, holt das Unterprogramm bei 340 die nächste Zeile oder die GENOL-Steuer-Anweisung und prüft bei 342, ob deren Marke mit der von S(2) übereinstimmt. Wenn die Marken nicht übereinstimmen, werden die nächsten Zeilen oder Befehle geholt, bis die Marke gefunden ist. Falls S(I) eine arithmetische Anweisung oder einfach einen Wert darstellt, verzweigt sich das Unterprogramm nach 334 in· Fig. 14. Wenn S(I) tatsächlich eine arithmetische Anweisung ist, wird die arithmetische Anweisung durchgeführt und das Ergebnis nach S(I) gebracht. Das Unterprogramm überspringt oder übergeht dann bei 338 in Fig. 14 die gleiche Anzahl von Zeilen oder GENOL-Steuer-Anweisungen, die durch den Wert S(I) angezeigt wird. Wenn die erforderliche Anzahl von Zeilen übersprungen ist, kehrt das Unterprogramm zu dem GENOL-Programm bei 344 zurück.
Die Berechnungs-Anweisung (COMPUTE-statement) mit dem Bezugszeichen 372 in Fig.15 dient zur Berechnung eines Wertes für eine vorläufige Variable. Diese vorläufigen Variablen sind Register, in denen numerische Daten gespeichert sind. Der Berechnungsanweisung gehen drei Sternchen voran, die anzeigen, daß es sich um einen GENOL-Steuer-Befehl handelt, auf den unmittelbar ACC(n) folgt, wobei η der Index ist, der das Register angibt, in dem der Wert gespeichert wird. Auf der rechten Seite der Gleichung bei 172 in Fig.15 bedeutet S(I) die arithmetische Anweisung oder den Wert,der in den Akkumulator zu bringen ist. Das Flußdiagramm zeigt in Fig. 15, wie das Unterprogramm bei 352 feststellt, ob S(I) tatsächlich eine arithmetische Anweisung ist5 in diesem Falle
3098 40/0825
wird die arithmetische Anweisung bei 354 durchgeführt und das Ergebnis zu dem Akkumulator ACCCn-) gebracht· Anderenfalls wird der Wert S(I) direkt in den Akkumulator oebracht. Ein einmal in eine Berechnungs-Anweisung ■ ersetztes Register behält seinen Wert, bis es von einer anderen Berechnungsanweisung zurückgestellt wird. Man kann sich auf sie als Teil eines arithmetischen Ausdrucks wie auf jeden anderen Parameter mit numerischem Wert beziehen. Die Akkumulatoren können auch als Indizes für eine Parameter- -Referenz benutzt werden.
Die Fig. 16 und 17 zeigen ein Beispiel der Verwendung einiger der hier beschriebenen GENOL—Steuer-Befehle. In Fig. 16 sind neun GENOL-Steuer-Befehle als Beispiel für die Entwicklung oder Erzeugung verschiedener Zeilen von Zeichen dargestellt. Die Ergebnisse eines sequentiellen Durchgangs über diese Befehle befinden sich in Fig. 17, wo eine Reihe von Zeichen in spezifischen Gruppen auf dem Ausqabedatentrager angeordnet sind. Dieses Beispiel zeigt, wie einer Reihe von Zeichen in einer vorbestimmten Form unter Verwendung der erwähnten GENOL-Steuer-Befehle angeordnet werden kann.
Für jede Klasse von Problemen, die gemäß dem erfindungs— gemäßen Verfahren gelöst werden sollen, ist die Erzeugung einer Folge von GENOL-Steuer-Anweisungen nötig, welche die erforderliche Quellensprach-Anweisung erzeugen. Diese GENOL-Steuer-Anweisungen werden so ausgewählt, daß man die richtige Information aus den Parametertafeln 32 in Fig. 1 erhält. Aus dem in den Figuren 16 und 17 dargestellten Beispiel geht klar hervor, daß durch die Auswahl der richtigen Folge von GENOL-Steuer-Anweisungen ein digitaler Rechnercode für die Problemlösung in jeder gewünschten Quellensprache erzeugt werden kann, z.B. in
309840/0825
FORTRAN, COBOL, ALGOL oder jeder anderen aus einer großen Auswahl von \ssemblierersprachen. Ferner ist zu bemerken, daß für die vollste Verwirklichung der hier offenbarten Erzeugun r tochnik die GENOL-Steuer-Befehle der Skelatal-Datei in einem Rechnerspeicher mit direktem Zugriff (random access) oespeichert werden sollten, z.B. einem Plattenspeicher, Magnettrommelspeicher oder Kernspeicher. Auf diese Weise kann das GENOL-Programm z.B. die Schleifen-Anweisunqen ausführen, in dem der Plattenschlüssel der Anwei sung nach dem Schleifenbefehl gespeichert wird; so kann das I rogramm zu der richtigen Stelle oder dem richtigen Platz im Speicher zurückkehren, wenn die entsprechende END~Anweisung gefunden ist.
Die vorliegende Erfindung wurde speziell für die Verwendung in Verbindung mit einem digitalen Allzweckrechner entwickelt; Fig. 18 enthält die Darstellung eines repr S.-.' sentativen Beispiels für einen solchen Rechner. Diese Vorrichtung enthält die gewöhnlich in einem digitalen Allzweckrechner, z.B. einem Burroughs B3500, enthaltenen Bauteil« ,welche die Ausführung des erfindungsgemäßen Verfahrens erleichtern. Die verschiedenen Bauteile der Vorrichtung, die in Fig. 18 dargestellt sind, umfassen ein Zentrales Leitwerk 384, das die übrigen Bauteile der Vorrichtung in Abhängigkeit von den verschiedenen in den Rechnerprogrammen enthaltenen Befehlen koordiniert und in Tätigkeit setzt. Die anderen Hauptteile dieser Vorrichtung sind der Prozessor 382, der Magnetkernspeicher 394 und die Ein/Ausgabe-Kanäle 400, 402, 404, 406, 408 und 410. Die zusätzlichen Teile in Fig. 18, das Basisregister 386, das Grenzregister 388 und die Speicheradressenregister 390 und 392 dienen zur Lokalisierung oder zur Plazierung verschiedener Informationsgrößen in dem Magnetkernspeicher 394. Bei dieser Ausführungsform der Erfindung wird starker Gebrauch von dem schnellen
309840/0825
Magnetkernspeicher 394 mit direktem Zugriff gemacht, bei dem diejenigen Datengrößen, die mit der größten Häufigkeit gebraucht werden, z.B. eine Seite aus dem Operationscode in Tafel 1, oder die Zwischenergebnisse von arithmetischen Rechnungen, gespeichert sind. Zusätzlich dient der Magnetkernspeicher 394 zur Speicherung des Objektcode für das Programm, das gerade ausgeführt wird,z.B. den POL-Übersetzer oder den GENOL-Code sowie die verschiedenen Tafeln, die häufig von diesen Programmen benutzt werden, beispielsweise die bei 32 in Fig. 1 gezeigten Parametertafeln» Um Information in oder aus der Vorrichtung in Fig. 18 zu übertragen, muß einer der Ein/Ausgabekanäle 400,402,404,406,408 und 410 benutzt werden. Die Haupteingabestelle in die Vorrichtung dieser Ausführungsform ist der Lochkartenleser 426. ϊη dieser Vorrichtung steht der Lochkartenleser unter der Führung der Ein/Aüsgabe-Steuer-Einheit 412, die mit dem ersten Ein/Ausgabekanal 400 verbunden ist. Der Kartenleser 426 dient für die Eingabe von verschiedenen Informationsarten in die erfindungsgemäße Vorrichtung, darunter die POL-Semantik 14 und die POL-Syntax 16 in Fig. 1 zusammen mit den GENOL'-Steuer-Befehlen 26 und den verschiedenen Quellensprach-Routinen 28 in Fig. 1, die in die Skeletal-Datei 38 und in die Mischdatei 34 in Fig. 1 geladen werden. Der Kartenleser 426 in Fig. 18 wäre auch die Haupt— einqabestelle für die Problemdaten des Benutzers in Fig.l. Es liegt jedoch in dem Bereich der vorliegenden Erfindung, Daten auch durch andere äußere Einrichtungen, z.B. durch entfernte Anschlüsse und durch CRT-Einrichtungen, einzugeben. Diese Ausführungsform macht ebenfalls starken Gebrauch von Plattenspeichern 428,430 und 432 in Fig. 18 für die Speicherung von großen Datenmengen, die weniger oft benutzt werden. Da das Lesen oder Schreiben einer Datengröße in den Plattenspeicher erst erfolgen kann, wenn die Platte unter den richtigen Lese/Schreibkopf
309840/0825
rotiert ist, ist die Wiederauffindungszeit für die Daten relativ langsamer als bei Magnetkernspeichern. Jeder Plattenspeicher ist mit dem zentralen Leitwerk 384 des Rechners 4r Fig. 18 durch eigene Ein/Ausgabekanäle 402, 404 und 4<H- und durch ,Ein/Ausgabe-Steuereinheiten 416, 418 und 420 verbunden. Zu der'in den Plattenspeichereinheiten aufgenommenen Information gehören verschiedene der in Fig. 1 dargestellten Größen, z.B. die Grammatikdatei 22, die Skeletaldatei 38 und die Mischdatei 34. Zusätzlich können in dieser Ausführungsform auch der Quellencode und der Objektcode für die Rechnerprogramme in den Plattenspeichereinheiten gespeichert werden. Die Plattenspeichereinheiten sind deshalb in dieser Ausführungsform besonders nützlich, da jedes Segment oder jeder Satz in beliebiger Reihenfolge ausgewählt oder qelesen werden kann, wodurch die Verwirklichung von verschiedenen Merkmalen dieser Erfindung, z.B. der bei 23? in Fig. 10 dargestellten Mischdatei, erleichtert wird, da z.B. bei dieser Datei verschiedene Datenelemente völlig ungeordnet ausgewählt werden müssen. Ein dritter Typ einer Ein/Ausgabe-Einrichtung ist· die Magnetbandeinheit, die bei dieser Ausführungsform zur Speicherung von sequentiellen Daten dient, z.B. den Quellencode-Ausgabedaten bei 40 in Fig. 1. Die Magnetbandeinheit bei 434 in Fig. 18 ist ebenfalls mit dem zentralen Leitwerk 384 über einen Ein/Ausgabe-Kanal 408 und eine Ein/Ausgabe-Steuereinheit 422 verbunden. Die vorliegende Erfindung benötigt ferner eine Einrichtung für die Ausgabe von Daten oder Ergebnissen in einer dem Benutzer verständlichen Form, da an verschiedenen Stellen des Verfahrens Daten ausgegeben werden müssen, z.B. die endgültige Problemlösung bei 44 in Fig. 1 oder die Grammatik-Darstellung 10 in Fig. 1, Eine geeignete Einrichtung dafür ist der Drucker 436 in Fig. 18. Der Drucker 436 besitzt ebenfalls einen Ein/Ausgabe-Kanal 410 und eine
309840/0825
Ein/Ausgabe-Steuereinheit 424 als Verbindung zu dem zentralen Leitwerk 384. Zusätzlich zu dem Drucker 436 in Fig. 18 können weitere Ausgabe-Vorrichtungen bei dieser Äusführungsform vorhanden sein, darunter entfernte Anschlüsse und Einrichtungen für sichtbare Darstellungen, z.B. CRT-Einrichtungen. Das zentrale Leitwerk 284 in Fig. 18 arbeitet unter der Führung des Objektcode des Programmes, das gerade ausgeführt wird, z.B. des POL-Übersetzers 20 in Fig. lf des POL-Übersetzer-Generators 18 in Fig. 1, des verallgemeinerten Code-Generators 30 oder der Datei-Lade-Routine 36. Das zentrale Leitwerk 384 bewirkt ferner das Laden der von den äußeren Einrichtungen 426,428, 430,432,434 und 436 gesammelten Information in den Magnetkernspeicher 394 und die Auswahl und Verarbeitung von Daten in dem Prozessor 382.
Die bevorzugte Ausführungsform der Erfindung wurde so beschrieben, wie ein Fachmann sie auf einem digitalen Allzweckrechner, z.B. einem BURROUGHS B 3500-Rechner, mit einer Assemblierersprache oder COBEL, FORTRAN oder einer anderen Compilierer-Programmiersprache verwirklichen kann. Verschiedene Modifizierungen und Abänderungen können in Abhängigkeit von der Bauweise des verwendeten Rechners, der benutzten Programmiersprache und von anderen Faktoren getroffen werden und sind für den Fachmann naheliegend, ohne daß damit über den Bereich der vorliegenden Erfindung hinausgegangen wird.
Insgesamt wurde ein Verfahren beschrieben, daß die Eingabe von Daten in Form einer problemorientierten Sprache erlaubt und welches einen Rechner-Quellencode erzeugt, der nach Verarbeitung durch einen Compilierer und einen
3 0 9 8 4 0/0825
digitalen Allzweckrechner eine Lösung für das Problem liefert- Das Verfahren verwendet einen Problemsprachen-Generator für die Erzeugung eines Übersetzers für die problemorientierte Sprache und einen digitalen Rechner-Quellencode-Generator* Der Quellencode-Generator nimmt Problemparameter aus dem Sprachenübersetzer auf und erzeugt eine Folge von digitalen Rechner-Quellencode-Befehlen, die nach Compilierung in einen Objelctcode den digitalen Rechner zur Berechnung einer Problemlösung veranlassen.
In den beigefügten Tabellen I bis III wurde soweit wie möglich eine deutschsprachige Terminologie verwendet. Es wird jedoch ausdrücklich auf die anliegenden, vollständig englisch—sprachigen Tabellen Ia - IHa mit dem Bemerken hingewiesen, daß auf dem Gebiet des Anmeldungsgegenstandes die englischen Fachausdrucke auch in Deutschland gebräuchlich sind.und daß demzufolge bei Abweichungen zwischen dem Offenbarungsgehalt der Tabellen I bis III und demjenigen der Tabellen Ia bis IHa der letztere maßgebend ist.
30 9 840/0825
TABELLE
NODE GROSSE NODEN SECTION-IDS: Seite »DECLARATION11 C 4 ) PSEUDEWiEXIT DECL- "TERMINAL" (4) PSEUDO-EXIT TERM- "ABA" PSEUDO-EXIT ABA- "EVENT"(4) PSEUDO-EXIT EVENT- Zeile OP. CODE
OPERATION GEHE NACH 1 FÜHRE AUS 1 FÜHRE AUS 1 FÜHRE AUS 1
Abschnitt TEST-I TE S T-2 TEST-3
GEHE NACH GEHE NACH 1 GEHE NACH
Abschnitt 1 Abschnitt 1 Abschnitt 1 20041106
1 1 1 1 1 DECL
1 1 1 2 ARAT
3 ION
4 30120000
5 47701039
"." GEHE NACH 1 6
Abschnitt
IDS. 1
ENDE
20040806
1 7 TERM
•SW7· GEHE NACH 1 8 INAL
DER KARTEN 9 30120000
10 50003100
11 47701113
12
20030305
13 ABA
14 30120000
15 50003109
16 47702032
17
20040506
18 EVEN
19 T
20 30120000
21 50003118
22 47702086
23
20010103
24
25 47701001
26
70000702
27 47703084
28
309840/08
NODEN .Seite / ERR (11) 1 3. 1 3 1 2312193 CODE
NODE GROSSE OPERATION GEHE NACH HELP Zeile OF.
PSEUDO-EXIT 1
«OPTIONS« (4) FÜHRE AUS 1 1 1
TEST-4 1 1
GEHE NACH OPTION- 1
Abschnitt.' 1 20040706
/ ERR (7) 1 OPTI
GEHE NACH HELP 29 ONS
1 30 30120000
1 31 50003127
1 32 4??03066
1 33
MARK- 34 600?????
EXIT. Abschnitt (1). 1
35 30160015
ERR (15).
PERFORM GET-PERIOD. )GEHE NACH 1 36 50003095
MAXIMAL-TERM 4??01001
37
GO TO SECTION-IDS. 38
DECL-SECTION:
"SECTION"(4) 21040705
SECT
GEHE NACH 39 ION
MAXIMAL-ABA 40 30160011
41 4??03089
42
43
11 tf 21010104
44 30160007
45 4??03089
46
47
30330001
48
DECL-ATTRIBUTES:
»Maxterminals"(4; 20041205
MAXT
49 ERMI
50 NALS
51 4??01077
52
53
"MAXABA-NUMBERS" 20041406
(4) MAXA
54 BA-N
55 UMBE
56
57
309840/0825
NODE GROSSE
"MAXLIST"(4)
PERFORM SECTION-IDS.
ERR (10). GO TO HELP
PERIOD-I:
It ti
MAXTERM:
■INTEGER· (3)
MAXABA:
"-" OR "IS".
•INTEGER* (4)
•38- /ERR (7) Seite 231 2133
NODEN GEHE NACH HELP 3. Zeile OP.
OPERATION CODE
1 58 RS
59 47701086
GEHE NACH 1
MAXIMAL EVENTS GEHE NACH DECL- 60 20040.90 5-
ATTRIBUTEN. 61 MAXE
62 VENT
1 63 S
64 47701095
GEHE NACH
MAXIMAL LISTE 1
SPEICHERE-MAX(l) 65 20040704
/ERR (8). 66 MAXL
1 67 IST
1 68 47701104
1 69 50001001
1 70 30160010
i GEHE NACH PERIODE 71 4??03089
-1.
1
72 21010104
1 73
1 74 30160007
SPEICHERE-MAX (2) 75 4?703089
/ERR (16).
1
1 76 47701049
77 21010104
1 78
79 21020202
80 IS
1
1 81 10031603
1 82 30290001
1 83 47701085
84 30160008
1
1 85 47701072
86 21010104
1 87 ac
88 21020202
89 IS
1
90 10041603
309840/0825
-39- Seite MAX (3) 1 PERIODE 1 MAX (4) 1 PERIODE 1 HELP 2. 1 HELP 2. 1 MARK-Abschnitt 2312193 CODE
NODE GRÖS^E NODEN 1 1 (2). Zeile OP. 30290002
OPERATION 1 1 1 1 4?701094
1 1 1 1 1 1 91 30160016
1 1 92
1 93
GEHE NACH 47701072
PERIODE -1 1
94
MAXEVENTS: 21010104
"*"OR "IS"* 1 SS
95 21020202
1 96 IS
97
98
•INTEGER·(4) SPEICHERE 10041603
/ ERR (8). 30290003
99 47701103
100 30160008
101
102
GEHE NACH 47701072
-1.
103
MAXLIST: 21010104
··«" OR "IS11.
104 21020202
105 IS
106
107
•INTEGER* (4) SPEICHERE 10041603
/ ERR (16) 30290004
108 47701112
109 30160016
110
111
GEHE NACH 47701072
-1.
112
TERM-SECTION:
"SECTION"(4) / ERR (11) 21040705
GEHE NACH SECT
113 ION
114 30160011
115 47703087
116
117
ft H
/ ERR(7) 21010104
GEHE NACH
118 30160007
119 47703087
120
121
309840/0825
NODE GROSSE
NODEN
OPERATION
Seite Zeile OP. CODE
TERM-ATTRIBUTES: "TERMINAL"(4)
.%LEITE erstmalig Wahrheits-Test ein durch Test COMPLETE (0,0,0,111,100,0)
122 30330002
1 ■ 123 30173000
124 000 000
125 "iii Ίο ο
126 "... 000 000
SETZE SCHALTER
ZURÜCK (0).
1 127 30080000
GEHE NACH TERM-Nr
1 128 20040804
129 TERM
130 INAL
1 131 4??01152
2) GEHE NACH
TERM -ID.
1 132 20021406
133 IDEN
134 TIFI
135 CATI
136 ON
3098AO/0825
TABELLE I1 231219"?
STRUKTUR DER POLGEN GtAIiIATIK-DATEI Jli I3J
12 3 4 Bytes
A B .A . B TJ. Hi pi ΓΊΠ Ziffern
B .A . B TJ. Hi pi Γ
SUBNODE auf B 3500
Maximum von 224 Subnoden pro Satz laufend erlaubt.
1) Test Klasse
Operations Code: IA Code 1
bejahendes/verneinendes Signal; IB (Entscheidung, ob relative Verzweigung) (Code-0 Bejahung, Code-1 Verneinung)
Minimale Länge: 2
Maximale Länge: 3
Relatives Verzweigungsimkrement: 4
2) Spezieller Test
Operationscode: IA Code 2
Bejahendes/verneinendes Signal: IB (Entscheidung, wann
relative Verzweigung)
Code 0 - Übereinstimmung ist Durchgangsbedingung.
Code 1 - Nichtübereinstimmung ist Durchgangsbedingung·
Minimale Länge: 2
Maximale Länge: 3
Relatives Verzweigungsinkrement: 4 (Anzahl von Subnoden vor Verzweigung)
Anmerkung: Die tatsächliche Kette ist in den folgen-
Subnoden gespeichert (4 Zeichen pro Subnode)
3) Ausführung:
- Operations Code: IA Code 3
Prozedur-Zahlϊ IB, 2A, 2B
Anzahl der Subnoden mit Parametern: 3A Parameter - 1: 3B, 4A, 4B,
4) Verzweigung (Transfer von Steuerung) Operationscode: IA Code 4
Nicht benutzt: IB, IA
309840/0825
Grammatik-Seitenzahl: 2B, 3A Subnodenzahl: 3B,4Af4B
5) Durchführung (Grammatik-Unterprogramm—Abruf) Operationskode: IA Code 5 Durchführungs-Indent.: IB, 2A Grammatik-Seitenzahl: 2B, 3A Subnodenzahl: 3B, 4A, 4B
6) Exit (Rückkehr von Unterprogramm) Operationscode: IA Code 6. Durchführungs-Ident.: IB, 2A
7) Spezieller Test (· toggle · oder * SW3 ·, etc.) Operationscode: IA Code 7 Bejahendes/verneinendes Signal: IB Code 0 Übereinstimmung Code 1 Nichtübereinstimmung.
Nicht benutzt: 2 . "
Funktionsindex: 3 Relativer Zweig: 4
3098AO/0825
TABELLE
III
NODE
GROSSE NODEN
OPERATION
i£-ii—2-
opening-words
grammar-ident
OPTIONS
3 4 5 6 7
PROCEED-LIST
"GRAMMARS" (7) GEHE NACH GRAM-HEAD
/Irrtum (1,3,15) "GRAMMAR-IDENTIFICATION" (10) ' GEHE NACH GRAM-ID "OPTIONS" (6) '·$"
GEHE NACH OPT-LIST.
DEFINE-PROCEDURE (0,0,0)
GEHE NACH DEFINE-ROUTINE.
"PROCEDURES" (9) od."INTERLUDES" (9)
GRAPH-SECTION
••GRAPHS" (5) . od."NODES" (4) GEHE NACH PROCEED /Irrtum (1,3,9)ν
θ/ .it O
SET-CHARGE
GEHE NACH NODE-HEAD GEHE NACH END-OF-NODES.
Irrtum (1,5,21) GEHE AUF LEITUNG GEHE NACH ANFANGSWORTERN
3 4 5 6 7
•INTEGER· (5)
■?
GRAM-HEAD
SPEICHERE KEINE LADUNG GEHE AUF LEITUNG /Irrtum (1, 3, 49). GEHE NACH GRAMMAR-IDENT.
"DEFINITIONS"
(10> od."SECTION·1
M." /Irrtum (1,22,23)
GEHE NACH GRAMMAR-IDENTi
GRAM-ID
•WORD· /Irrtum (1,22,23). SPEICHERE GRAMMAR-ID /Irrtu» "(1,22,8) GEHE NACH ANFANGSWÖRTERN /Irrtum (1,22,23). GEHE NACH OPTIONS.
309840/0825
NODE
GROSSE
OPERATI
£312193-
OPT-LIST
LIST-TOP
3- 4
: "ARE" OR "IS"
: "NODES" (4) "LIST" "COMPILE" "COBOL "SHARED-GRAMMAR"
tf (t
•TOGGLE*
5. 6 7
LÖSCHE LOOP-COUNT (2) SETZE-OPTION (1). SETZE-OPTION (2). SETZE-OPTION (3). SETZE-OPTION (4). SETZE-OPTION (5). GEHE NACH TEXT-CHK PRÜPE-LOOP-COUNT. GEHE NACH TEXT-CHK /GEHE NACH LIST-TOP.
TEXT-DEFINE
"TEXT-SIZE" (4)
It-Il
•INTEGER· (3) ' "BYTES" /GEHE ZU DEPINE-ERROR /GEHE ZU DEFINE-ERROR /GEHE ZU DEFINE-ERROR SETZE OPTION (10).
DEFINE-ERROR
c/_ ι ______;>_.
fQ— J_ — ^ — — — ^ —· ■— ^ -^ W
PROCEED
ELEM-ONE
"LISTS" (4)
If fl
: «WORD·
"GRAPHS" (5) od. "NODES" (4) GEHE ZU PROCEED-LIST
Irrtum (1,3,51).
GEHE AUF LEITUNG
GEHE NACH PROCEED-LIST.
:—_ 5 _-_ 6 7
/Irrtum (1,22,23). " TANK-PROCEDUREN.
UNTERDRÜCKE GROSSE /GEHE NACH ELEM-ONE-CONT.
ELAM-ONE CONT
• ti κ f
'INTEGER' GEHE NACH NODE-HEAD. BAUE PROCEDUREN EINGANG AUF HOLE GROSSE. SETZE PARAMETERGRENZEN (O) SCHREIBE-PROCEDUREN-EINGANG
GEHE NACH ELEM-ONE SETZE PARAMETERGRENZEN (O)
SCHREIBE-PROCEDUREN-EINGANG
GEHE NACH GRAPH-ABSCHNI1 SETZE PARAMETERGRENZEN (1)
309840/0825
NODE
GROSSE
NODEN
OPERATION
GEHE NACH PERIOD-CHECK,
"THRU" GEHE NACH INT-PAR-CHK.
PAR-CHK : "PARAMETERS"
(3)
H If
f
SCHREIBE PROCEDUREN-
EINGANG
GEHE NACH ELEM-ONE
/GEHE NACH PERIOD CHECK
INT-PAR-CHK i "INTEGER· SETZE PARAMETER
GRENZEN (2)
/Irrtum (1,4,25).
GEHE NACH PAR-CHK.
PERIOD-CHECK • It !I
• ·
SCHREIBE PROCEDUREN
EINGANG.
"GRAPHS" (5) od. "NODES" (4)
. 2
NODE-HEAD
weMams^m^mmm·β^e JMISH''MIMa*M*M 'A ™* "^ ^" ^» ■"·"·■
: "DEFINITIONS" (10) od."SECTIONS" (7). GEHE NACH NODE-HEAD /Irrtum (1,5,35)
HOLE GROSSE
GEHE NACH ELEM-ONE. — 5 6 7
/Irrtum (1,22,23). ERÖFFNE NODES OUT BEGINNE NEW NODE. GEHE ZUM ERSTEN WORT.
2
FIRST-WORD
3 4 $™*L™gl 7
"PAGE" "PERFORM"
"GO"
"GOTO" GEHE NACH PAGE-SET. GEHE NACH PERFCRM-NCüE_, GEHt; NACH GO-TO-NODE.
GEHE NACH GOTC-NODF.
"END"
"PROGRAM" "EXIT" •LITERAL*
It It Il
•WORD* Od. •INTEGER* GEHE NACH END-CF-KCUES.
GEHE NACH START-PROGRAM.
GEHE NACH EXIT-NODE.
GEHE NACH CLASS-TEST-NODE.
GEHE NACH SPEC-TEST-NODE.
GEHE NACH NODE-OR-PROCEDURE-NODE. Irrtum (1,5,35) GEHE AUF LEITUNG GEHE ZUM ERSTEN WORT
309840/0825
NODE
GROSSE NODEN
OPERATION
56-1 -2 ,——3 —-4—-—-5- .-—6 · 7
GO-TO-NODE GO-TO-NODE
GO-FOUND
ELSE-CHECK
FINNISH-NODE
: "TO" : »WORD·
"NEXT-NODE"
: "/"od. "ELSE"
It It
INTEGER-LABEL : »INTEGER·
%_ i—. 2 · 3 4-
CLASS-TEST-NODE :
•SW5» NÄCHSTER CODE. UNTERDRÜCKE GROSSE /GEHE NACH INTEGER-LABEL. GEHE NACH ELSE-CHECK. BAUE BRANCH-NODE AUF STAPELE NODE
HOLE GROSSE,
irgendwo lokalisiert GEHE ZUM ZWEITEN WORT.
BEENDE NODE
BEGINNE NEUE NODE 2 GEHE NACH ERSTEM WORT GEHE NACH GO-FOUND /Irrtum (1,6,14) GEHE NACH ZWEITEM WORT.
, 5 6 · 7
Il ( Il
BOUND-CHECK
STACK-CLASS SYNONYM-TEST
: »INTEGER· (2)
η )
"OR"
TEST CHK-SYN : »LITERAL*
1 2 3
SPEC-TEST-NODE :
BAUE CLASS-TEST-AUF SETZE SCHALTER (5) ZURÜC GEHE NACH SPEC-TEST-NODE-t.
NÄCHSTE NODE
/GEHE NACH STACK-CLASS. SPEICHERE LÄNGENUMFANG
/Irrtum (1,30) NÄCHSTE NODE
/Irrtum (1,4,19). STAPELE CLASS-TEST. MARKIERE-SYNONYM GEHE NACH TEST-CHK-SYN
/GEHE NACH ZWEITEM WORT GEHE NACH CLA33-TEST-NODE
/Irrtum (1,3,35) GEHE NACH FEHLER-ERKENNUNG. (ERR-RECOVERY)
— 5 6~ 7
SPEC-TEST-NODE
It / Il HOLE GROSSE
BAUE SPECIALTEST AUF HOLE GROSSE
/Irrtum (1,5,35) HOLE GROSSE.
NÄCHSTE NODE /STAPELE SPECIFIC TEST GEHE NACH SYNONYM TEST,
309840/0825
NODE
GROSSE NODEN
OPERATION
•INTEGER* (2)
M) H SPEICHERE LÄNGENUMFANG /Irrtum (1,30).
STAPELE SPECIPIC-TEST
GEHE NACH SYNONYM-TEST /Irrtum (1,4,19)
GEHE NACH ZWEITEM WORT
SETZE SEITENZAHL (!)
GEHE NACH PAGE-OUT.
SETZE SEITENZAHL (O) /Irrtum (1,22,23).
GEHE NACH ERSTEM WORT. /Irrtum (1,22,23)
GEHE AUF LEITUNG.
GEHE ZU ERSTEM WORT. 2 3 4 5 6 7
•WORD·
PAGE-SET : »INTEGER·
11.11
PAGE-OUT
PERFORM-NODE
•INTEGER·
BOUND-CHECK-2
ItJ Il
2 3
EXIT-NODE
BAUE PERFORM AUF GEHE NACH BOUND-CHECK-2.
BAUE PERFORM AUF /Irrtum (1,16,14)
GEHE NACH ZWEITEM WORT. /SETZE PERFORM EXIT ID
(2)
UNTERDRÜCKE GROSSE GEHE ZU ZWEITEM WORT. SETZE PERFORM EXIT ID
(O) /Irrtum (1,5,39)
GEHE ZU ZWEITEM WORT. /Irrtum (1,4,19).
GEHE ZU ZWEITEM WORT.
5 6 7
BAUE EXIT AUF
GEHE NACH BOUND-CHECK-2
•INUEGER· (2)
%_ 1 2 3 4 5 6 7
NODE-OR-PROCEDURE-NODE
ti · η BEWAHRE GROSSE HOLE GROSSE ZURÜCK DEFINIERE MODE-BEZEICHNUNG
HOLE GROSSE
LÖSCHE GROSSE GEHE NACH TEST-CHK /BEWAHRE GROSSE HOLE GROSSE ZURÜCK (2) BAUE EXECUTE-NODE AUF
309840/0
NODE
2-
SECOND-WORD
-48-
GROSSE NODEN 2312193 ■ . ■ ' OPERATION
•TOGGLE· LÖSCHE GROSSEN
UNTERDRÜCKE GROSSE GEHE NACH ERR-RECOVERY HOLE GROSSE ZURÜCK LÖSCHE GROSSEN GEHE NACH PARAMETERPRÜFUNG (PARAM CHECK)
3 4-. ,5„ 6 7
PARAM-CHECK
TWO-COMMA
DEL-COMMA
CHECK-AND-OUT
"PERFORM" "GO"
"GOTO"
"EXIT"
"/" odi "ELSE"
"NEXT-NODE" •WORD*
•TOGGLE*
•INTEGER· (3)
•INTEGER* (3)
Il Il Il \ Il
'TOGGLE1
GEHE NACH PERFORM-NODE.
GEHE NACH GO-TO-NODE.
GEHE NACH GOTO-NODE.
GEHE NACH EXIT-NODE-
IRGENDWO LOKALISIERT GEHE ZUM ZWEITEN WORT GEHE NACH FINISH-NODE.
GEHE NACH ELSE-CHECK. /Irrtum (1,5,35)
HOLE GROSSE
GEHE NACH ZWEITEM WORT. ,-CSECOND WCRiJ)
BAUE EXECUTE NODE AUF. /GEHE NACH PARAM=-CHECK.
UNTERDRÜCKE GROSSE GEHE NACH ERR-RECOVERY. /GEHE NACH NONE-GIVEN. SPEICHERE PARAMETER (O) GEHE NACH TWO-COMMA. SPEICHERE PARAMETER (1) GEHE NACH DEL-COMMA. Irrtum (1,5,35) GEHE NACH ERR-RECOVERY. SPEICHERE PARAMETER (O) GEHE NACH TWO-COMMA. SPEICHERE paramter (1) GEHE NACH DEL-COMMA. SPEICHERE PARAMETER (O) GEHE NACH CHECK-AND-OUT Irrtum (1,5,35) GEHE NACH ERR-RECOVERY. GEHE NACH TWO-COMMA. GO TO CHECK-AND-OUT. Irrtum (1,5,35) GEHE NACH ERR-RECOVERY. STAPELE EXECUTE-NODE.
HOLE GROSSE
GEHE NACH ZWEITEM WORT.
309840/0825
NODE
NONE GIVEN
TEST-SEQ
GROSSE
•TOGGLE* ♦TOGGLE·
%i —— 9———————— "^-——„———A.
ERR-RECOVERY :
•TOGGLE·
RECOVERY-CHK
11 ( Il Il ) I»
"ELSE" Od."/" "NEXT-NODE" od, "GO11Od. "GOTO"
•LITERAL· "PERFORM" "EXIT"
"END"
SEC-WRD-EXT
FIRST-WRD-EXT
2—
END-OF-NODES
OPERATION
SPEICHERE PARAMTER (O) STAPELE-EXECUTE-NODE-r
GEHE NACH ZWEITEM WORT UNTERDRÜCKE GROSSE IRGENDWO LOKALISIERT GEHE NACH ZWEITEM WORT /GEHE NACH ZWEITEM WORT. 6 7
FÜHRE AUS RECOVERY-CHK, GEHE NACH ERSTEM WORT. /GEHE NACH ZWEITEM WORT. SETZE TOGGLE
GEHE AUF LEITUNG EXIT
GEHE NACH RECOVERY-CHK. GEHE NACH Recovery-CHK. GEHE NACH SEC-WRD-EXT. GEHE NACH SEC-WRD-EXT.
GEHE NACH SEC-WRD-EXT.
GEHE NACH FIRST-WRD-EXT, GEHE NACH END-OF-NODES.
HOLE GROSSE
GEHE NACH RECOVERYJ-CHK.
UNTERDRÜCKE GROSSE EXIT..
GEHE NACH RECOVERY-CHK.
UNTERDRÜCKE1 Grosse EXIT.
GEHE NACH RECOVERY-CHK.
5 6 7
TOGGLE
START-PROGRAM
ARBEITE AUF (9). SETZE SCHALTER (6).
SCHLIESSE QUELLENBAND.
GEHE NACH ANFANGSWORTERl ARBEITE AUF
ÖFFNE QUELLENBAND GEHE AUF LEITUNG
GEHE NACH PROGRAM-IDr:S.R<
309840/0825
NODE
%—EMMITTER-
EMIT-PART
GROSSE
OPERATION
: "PROGRAM"
PROGRAM-ID-SRCH : "PROGRAM-ID"
"ENVIRONMENT" od."SELECT" Od, "DATA"
TOOGLE-CHK-I
: «TOGGLE·
t» it
♦WORD*
ft It
FILE-CONTROL-SRCH
: "FILE-CONTROL"
"SELECT" od. "DATA" odV'FILE"
TOGGLE-CHK-2
1 TOGGLE· ÖFFNE QUELLENBAND /Irrtum (1,5,35) GEHE AUF LEITUNG GEHE NACH EMIT-PART. TEST-POSITION (1) GEHE NACH TOGGLE-CHK-I.
Irrtum (1,40,22,48) GEHE NACH FILE-CONTROL-SRCH
/STELLE EINGANG WIEDER HER
GEHE NACH PROGRAM-J-ID-
SRCH.
/STELLEEINGANGWIEDER
HER
. GEHE NACH PROGRAMM-ID-SRCH.
SETZE TEIL (8). /Irrtum (1,3,23).
SETiZE PROGRAM-ID.
STELLE EINGANG WIEDER HER.
TEST-POSITION (1) GEHE NACH TOGGLE-CHK-2»
Irrtum (1,41,22,48) GEHE NACH FILE-SECTION-
SRCH
/ STELLE EINGANG WIEDER HER
GEHE NACH FILE-CONTROL-SRCH.-
STELLE EINGANG WIEDER HER
FÜGE EIN DATEI (FILE) ( /STELLE EINGANG WIEDER HER
GEHE NACH FILE-CONTROL SRCH.
SETZE TEIL (1)
309840/0825
NODE
GROSSE
operation2 312193
FILE-SECTION-SRCH
TOGGLE-CHK-3
W0RKING-STORAGE-SRCH
T0GGLE'-CHK-4
SEVEN-SEVEN-SRCH
"FILE"
HPD"?od."01" od."77"
•TOGGLE' TEST-POSITION (1) GEHE NACH TOGGLE-CHK-3
Irrtum (1,42,22,48) GEHE NACH WORKING-STORAGE-SRCH
/STELLE EINGANG WIEDER HER
GEHE NACH FILE-SECTION-SRCH.
STELLE EINGANG WIEDER HER
/STELLE EINGANG WIEDER HER
GEHE NACH FILE-SECTION-SRCH.
SETZE-TEIL (2).
"WORKING-STORAGE" TEST-POSITION (1)
"77" odJ'PROCEDURE"
•TOGGLE1
"77"
"01" od. "PROCEDURE"
309840/082 GEHE NACH TOGGLE-CHK-4.
Irrtum (1,43,22,48) GEHE NACH SEVEN-SEVEN-SRCH
/STELLE EINGANG WIEDER HER
GEHE NACH WORK J NG-STORAGE-SRCH.
FÜGE DATEI (FILE) (2) EIN
/STELLE EINGANG WIEDER HER
GEHE NACH WORKING-STORA-GE-SRCH.
STELLE EINGANG WIEDER HER (3).
TEST-POSITION (1) GEHE NACH TOGGLE-CHK-5.
Irrtum (1,44,22,48) GEHE NACH OH-ONE-SRCH /STELLE EINGANG WIEDER HER
GEHE NACH SEVEN-SEVEN SRCH.
NODE
GROSSE
NODEN
OPERATION
TOGGLE-CHK-5
»TOGGLE1
OH-ONE-SRCH : "01"
"PROCEDURE"
TOGGLE-CHK-6
'TOGGLE' SETZE TEIL (PART) (4) FÜGE EIN DATEI (FILE) (2 BEREITE VOR LIST STELLE EINGANG WIEDER
HER
/STELLE EINGANG WIEDER HER
GEHE NACH SEVEN-SEVEN-SRCH.
TEST-POSITION (1) GEHE NACH TOGGLE-CHK-6.
Irrtum (1,45,22,48)
GEHE NACH PROCEDURE-SRCf /STELLE EINGANG WIEDER HER
GEHE NACH OH-ONE-SRCH.
FÜGE DATEI (FILE) (4) EIN
PROCEDURE-SRCH
"PROCEDURE"
"GO"od. "MOVE" Od."READ" od. "WRITE11Od. "IF"
TOGGLE-CHK-7
♦TOGGLE'
EOJ-SRCH
"END-OF-JOB"
"END"
STELLE EINGANG WIEDER HER
SETZE TEIL-(PART) (5) /STELLE EINGANGWIEDER HER
GEHE NACH OH-ONE-SRCH. TEST-POSITION "( 1) GEHE NACH TOGGLE-CHK-7
Irrtum (1,46,22,48) GEHE NACH EDJ-SRCH
/STELLE EINGANG WIEDER HER
GEHE NACH PROCEDURE-SRCH.
STELLE EINGANG WIEDER HER
SETZE TEIL (PART) (6) FÜGE DATEI (FILE) (5) EIN
/STELLE EINGANG WIEDER HER
GEHE NACH PROCEDURE-SRCH.
TEST-POSITION (1) GEHE NACH TOGGLE-CHK-8. Irrtum (1,47,22,48) UNTERDRÜCKE GROSSE GEHE NACH END-CHK
309840/0825
NODE
TOGGLE-CHK-8
END-CHK
DEFINES-ROUTE
DEFINE-ROUTE
RECOVER-DEF:
DEF-ESCAPE
-53-GRÖSSE
: *TOGGLE«
END
"DEFINE"
"ESCAPE"
"SYMBOL"
"LEADING" . "PUNCTUATION" "GROUP"
"IGNORABLE" "COMMON"
"CONNECTORS" "SIZE"
"SCANNING" (4) "PRECEDENCE" (4) OdJ1PREClDENCE" (4)
NODEN
OPERATION
/STELLE EINGANG WIEDER HER
GEHE NACH EOJ-SRCH. SETZE TEIL (PART) (7)
FÜGE EIN DATEI (FILE) (6) FÜGE EIN GO-TO FÜGE EIN DATEI (FILE) (7) STELLE EINGANG WIEDER
HER
/STELLE EINGANG WIEDER HER
GEHE NACH EOJ-SRCH.
SCHLIESSE QUELLEN BAND
GEHE NACH OPENING-WORDS /STELLE EINGANG WIEDER HER
GEHE AUF LEITUNG
GEHE NACH END-CHK. /DEFINIERE PROZEDUR (3,0,0)
GEHE NACH PROCEED-LIST.
GEHE NACH DEF-ESCAPE.
GEHE NACH DEF-SIGN.
GEHE NACH DEF-LEADING.
GEHE NACH DEF-PUNCT, GEHE NACH DEF-GROUP.
GEHE NACH DEF-IGNOR.
GEHE NACH DEF-COMMON.
GEHE NACH DEF-CONNECT.
GEHE NACH DEF-SIZE* GEHE NACH DEF-SCAN.
GEHE NACH DEF-PREC. IRRTUM (1,3,49) HOLE GROSSE
GEHE NACH DEFINES-ROUTE /GEHE NACH RECOVER-DEF.
DEF-SIGN
"FOR"
"POSITIVE" (3)
"NEGATIVE" (3) DEFINIERE PROZEDUR (2,2
GEHE NACH CHAR-PART.
DEFINIERE PROZEDUR (2,14,
GEHE NACH CHAR-PART.
DEFINIERE PROZEDUR (2, 15,0)
GEHE NACH CHAR-PART.
309840/0825
NODE
DEF-LEADING
GROSSE
"DECIMAL" (3) NODEN
OPERATION
1 O 1 Q *>.
DEFINIERE PROZEDUR (2,
2.0,0)
GEHE NACH CHAR-PART.
IRRTUM (1,3,52) GEHE NACH RECOVER-DEF.
: "ALPHABETIC" (5) "NUMERIC"(3) DEFINIERE PROZEDUR (2, 12, O)
GEHE NACH CHAR-PART.
DEFINIERE PROZEDUR (2, 13,0)
GEHE NACH CHAR-PART.
IRRTUM (1,3,52).
GEHE NACH RECOVER-DEF.
DEF-PUNCT
DEFINIERE-PROZEDUR (2, 11,0)
GEHE NACH CHAR-PART
DEF-GROUP
: "BEGINNING" (5)
"ENDING" (3) DEFINIERE PROZEDUR (2, 3,0)
GEHE NACH CHAR-PART.
DEFINIERE PROZEDUR (2, 4,0)
GEHE NACH CHAR-PARTi IRRTUM (1,3,52).
GEHE NACH RECOVER-DEF.
DEF-IGNOR
DEFINIERE PROCEDUR (2, 6,0).
GEHE NACH CHAR-PART.
DEF-COMMON
DEFINIERE PROZEDUR (2, 1,0)
GEHE NACH CHAR-PART.
DEF-CONNECT
ALPHA-TO
: "FOR" . "ALPHABETIC"
(5)
"NUMERIC" (3)
: "TO"
"ALPHABETIC" (5)
"NUMERIC" (3) GEHE NACH ALPHA-TO. GEHE NACH NUMBER-TO. IRRTUM (1,3,52) GEHE NACH RECOVER-DEF,
DEFINIERE PROZEDUR (2, 7,0)
GEHE NACH CHAR-PART.
DEFINIERE PROZEDUR (2, 8,0)
309840/0 825
NODE
GROSSE NODEN
OPERATION
NUMBER-TO
"TO"
ALPHABETIC"
(5)
"NUMERIC" (3) GEHE NACH CHAR-PART.
Irrtum (1,3,52) GEHE NACH RECOVER-DEF.
DEFINIERE-PROZEDUR (2, 10,0)
GEHE NACH CHAR-PART.
DEFINIERE PROZEDUR (2, 9,0)
GEHE NACH CHAR-PART.
Irrtum (1,3,52) GEHE NACH RECOVER-DEF.
CHAR-PART
CONT-DEF
"CHARACTERS" (4)
tlj.lt
•LITERAL*
"NULL" /IRRTUM (1,3,52) GEHE NACH RECOVER-DEF. DEFINIERE-PROZEDUR (1, 0,0)
GEHE NACH CONT-DEF.
DEFINIERE-PROZEDUR (1, 1,0)
«LITERAL·
END-CHECK-DEF ","
TOGGLE-CHAECK-1 ί »TOGGLE* GEHE NACH
IRRTUM (1
GEHE NACH
DEFINIERE
0,0)
GEHE NACH
GEHE NACH
Irrtum (1
GEHE NACH
GEHE NACH
GEHE NACH
END-CHECK-DEF. ,3,52)
RECOVER-DEF. PROZEDUR (1,
TOGGLE-CHAECK·} DEFINES-ROUTE. ,3,52)
RECOVER-DEF. RECOVER-DEF. CONT-DEF.
DEF-SIZE
DEF-USER-AREA
"TEXT"
•INTEGER* (3) "BYTES"
Il It
"USER-DATA"
It-Il /GEHE NACH DEF-USER-AREA. /GEHE NACH DEFINE-ERROR. /GEHE NACH DEFINE-ERROR. SETZE OPTION (10)
GEHE NACH DEFINES^ROUTE-/GEHE NACH DEFINE-ERROR. /GEHE NACH DEFINE-ERROR.
3098A0/0825
NODE
DEF-SCAN
GROSSE
♦INTEGER· (S)
"HUNDRED" "BYTES"
tt Il
NODEN OPERATION
/GEHE NACH DEPINE-ERROR, SETZE-OPTION (99),
GEHE" NACH DEFINES-ROUTE.
ALPHA-TC5-SCAN NUM-TO-SCAN A-N-! 2
RESET-5 N-A-2
DEF-PREC
DEF-PREC-A
"PATTERN"
"NOT"
»ALLOWED"
"FROM"
"ALPHABETIC·1 (5) "NUMERIC" (3)
"TO" "NUMERIC" (3)
"TO" "ALPHABETIC" (5)
: »SW5·
'SW5'
: "OF"
"ALPHABETIC" (5) "NUMERIC" (2)
"TO" "ALPHABETIC" (5)
"NUMERIC" (3) SETZE SCHALTER (SWITCH)( /IRRTUM (1,3,55) GEHE NACH RECOVER-DEF.
GEHE NACH ALPHA-TO-SCAN. GEHE NACH NUM-TO-SCAN. IRRTUM (1,3,52) GEHE NACH RECOVER-DEF.
GEHE NACH A-N-2.
IRRTUM (1,3,52) GEHE NACH RECOVER-DEF.
GEHE NACH N-A-2. IRRTUM (1,3,52) GEHE NACH RECOVER-DEF. DEFINIERE PROZEDUR (4,1, O)
/DEFINIERE PROZEDUR (4,2 O).
SETZE ZURÜCK SCHALTER (SWITCH) (5)
GEHE NACH END-CHECK-DEF. DEFINIERE PROZEDUR (4,3,
DEFINIERE PROZEDUR (4,4, O).
GEHE NACH RESET-5.
GEHE NACH DEF-PREC-A. GEHE NACH DEF-PREC-N. IRRTUM (1,3,52) GEHE NACH RECOVER-DEF.
DEFINIERE PROZEDUR (4,
1,0)
GEHE NACH DEF-CONT.
DEFINIERE PROZEDUR (4,
2,0)
GEHE NACH DEF-CONT.
IRRTUM (1,3,52)
GEHE NACH RECOVER-DEF.
9840/0825
NODE
GRÖSSE
NODEN
OPERATION
DEF-PREC-N
DEF-CONT
DEF-CYCLE
AND-DEF-CHK
DEF-NOT
: "TO"
"ALPHABETIC" (5)
»NUMERIC" (3)'
: "CONNECTORS" : »LITERAL· (4)
"DOES"
"NOT"
"FOLLOWS" (6) •LITERAL· (4)
"AND"
"FOLLOWS" (6) •LITERAL· (4)
DEFINIERE PROZEDURE (4, 4,0)
GEHE NACH DEF-CONT.
DEFINIERE' PROZEDUR (4, 3,0)
GEHE NACH DEF-CONT.
IRRTUM (1,3,52).
GEHE NACH RECOVER-DEF.
/IRRTUM (1,3,52).
DEFINIERE PROZEDUR (5,
1,0)
/IRRTUM (1,3,52)
GEHE NACH RECOVER-DEF.
GEHE NACH DEF-NOT.
/IRRTUM (1,3,52)
GEHE NACH RECOVER-DEF. GEHE NACH DEF-CYCLE.
GEHE NACH DEFINES-ROUTE, IRRTUM (1,3,52)
GEHE NACH RECOVER-DEF.
DEFINE PROZEDUR (5,
2,0)
/IRRTUM (1,3,52)
GEHE NACH RECOVER-DEF. DEFINIERE PROZEDUR (6, 0,0).
GEHE NACH AND-DEF-CHK.
309840/0825

Claims (18)

  1. Patentansprüche
    fly Verfahren zur Erzeugung mehrerer Befehlsvorräte, mit deren Hilfe eine digitale Rechenan&age Lösungen zu einer Klasse von Problemen liefern kann, wobei die Lösungen von in solcher .Sprache eingegebenen Daten abhängen, die der Natur der Problemklasse entspricht, dadurch gekennzeichnet, daß ein Rechner-Übersetzer (20) erzeugt wird, der den Eingang (12) in der Form einer problemorientierten Sprache aufnehmen und den Eingang in Parameter (24) umsetzen kann, die für einen verallgemeinerten Codegenerator (30) annehmbar sind; und daß mit dem verallgemeinerten Codegenerator (30) eine Abfolge von mehreren Rechnerquelleneode-Anweisungen erzeugt werden.
  2. 2. Verfahren zur Erzeugung von Befehlen, insbesondere nach Anspruch 1, die eine digitale Rechenan&age zur Verarbeitung eines in einer vom Benutzer angegebenen Sprache geschriebenen Problems veranlassen, dadurch gekennzeichnet, daß ein Generator (18) für den Übersetzer (20) mit der Syntax (16) und der Semantik (14) eines vom Benutzer angegebenen Problems ausgestattet wird, daß weiter «fet" verallgemeinerter Code-Generator (30) mit einer Reihe von Prozeßsteuer-Anweisungen (26) und Quellensprach-Routinen (28) versehen wird, daß ferner mit Hilfe des Übersetzer-Generators (18) ein Übersetzer (20) erzeugt wird, der den Eingang (12) in Form der Syntax der angegebenen fSroblemorientierten Sprache in eine.„f Abfolge von Parameter-Definitions-Anweisungen (32) übersetzen kann; und daß schließlich der
    309840/0825
    verallgemeinerte Code-Generator (30) aus den Prozeß-Steuer-Anweisungen, den Quellensprach-Routinen und den Parameter-Definitions-Anweisungen einen Rechner-Quellencode (40) erzeugt.
  3. 3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß bei der Erzeugung des Übersetzers (20) die Größen der Syntax und der Semantik der problemorientierten Sprache einzeln einem Abtaster (66) zugeführt wird, daß jede Größe bei der Rückkehr von dem Abtaster (66) von einem Interpretierer (68) interpretiert wird, daß ferner eine Grammatikdarstellung der vom Benutzer angegebenen problemorientierten Sprache in der Form eines Operations-Code erzeugt wird, daß weiterhin ein Rechner-Quellencode und Abtastertafeln erzeugt werden, die Elemente von Anweisungen in der problemorientierten Sprache identifizieren können, und daß schließlich diese Elemente in Parameter-Definitions-Anweisungen übersetzt werden·
  4. 4. Verfahren nach Anspruch 3j dadurch gekennzeichnet, daß die Struktur der vom Benutzer angegebenen Sprache in Form einer Grammatik-Definitions-Darstellung (10) dargestellt wird·
  5. 5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß bei der Erzeugung der Grammatikdarstellung logische Fehler in der Syntax der probleraorientierten Sprache bestimmt und in der Grammatikdefinitions-Darstellung dargestellt werden.
  6. 6. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß der Rechner-Quellendode (40) von einem CoMptlicrer (42) automatisch in einen Maschinencod· coapiliert wird.
    309840/0826
  7. 7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß der Maschinencode automatisch von dem digitalen Rechner ausgeführt und eine Lösung für das angegebene Problem erzeugt wird.
  8. 8. Verfahren zur automatischen, von bestimmten Problemparametern abhängigen Erzeugung eines Rechner-Quellen-Code, der einen digitalen Rechner zur Ausführung von bestimmten geforderten Datenverarbeitungs-und Berech-
    . nungsvorgängen veranlaßt, insbesondere nach Anspruch 1, dadurch gekennzeichnet, daß die angegebenen Problem-Parameter und Daten in für einen verallgemeinerten Code-Generator (30) annehmbare Tafeln (32) übersetzt werden, daß weiter individuelle Quellensprach-Anweisungen mit Hilfe des verallgemeinerten Code-Generators (30) konstruiert werden, daß ferner individuelle Quellensprach-Routinen aus dem Rechnerspeicher ausgewählt und daß die Quellencode-Routinen in die richtige von dem verallgemeinerten Code-Generator bestimmte Folge eingefügt werden und daß .schließlich die konstruierten Quellen-Code-Anweisungen und die ausgewählten Quellen-Code-Routinen in einen Rechner-Quellen-Code gemischt werden, der einen digitalen Allzweckrechner zur Ausführung der geforderten Datenverarbeitungs-und Berechnungsvorgänge veranlaßt.
  9. 9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß bei der Übersetzung der angegebenen Problem-Parameter und Daten jede Größe der Problem-Parameter- und Datentafeln abgetastet, identifieiert und klassifiziert wird und daß aus j$der Größe gemäß der Struktur der problemorientierten Sprache Parameter mit einem für c$en verallgemeinerten Code-Generator (30) annehmbaren Format erzeugt werden· -
    309340/0 82 5
  10. 10. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß bei der Übersetzung der angegebenen Problem-Parameter und -Daten die logische Struktur einer problemorientierten Sprache in einen Operations-Code umgesetzt wird, der die Struktur der problemorientierten Sprache darstellt, daß mehrere Umsetzungs-Prozeduren für das Umsetzen von Daten in Parameter, die als Eingang für einen verallgemeinerten Code-Generator (30) annehmbar sind, in den Operations-Code eingefügt werden, daß aus annehmbaren Größen Abtasttafeln erzeugt werden, daß weiter der Operations-Code und die Abtasttafeln in mehreren Befehlen für einen digitalen Rechner in einem Rechner-Speicher kombiniert werden, daß zur Identizierung und Klassifizierung jeder Größe jeder Problem-Parameter und jede Datengröße abgetastet wird, und daß schließlich in Abhängigkeit von jeder Eingangsgröße Parameter erzeugt werden, deren Format für den verallgemeinerten Code-Generator annehmbar ist·
  11. 11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß bei der Umsetzung der logischen Struktur einer problemorientierten Sprache in einen Operations—Code der logische Zusammenhang der Struktur der problemorientierten Sprache bestimmt wird.
  12. 12. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß die aus der Kombination des Operations-Code und der Abtastertafeln entstandenen Rechnerbefehle in die Auswahl der Quellensprach-Routinen eingeschlossen werden, so daß eine automatische Compilierung des resultierenden Quellen-Code in den Rechner-Objekt-Code und die sofortige Ausführung des Objekt-Codes ermöglicht wird.
  13. 13. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß bei der Erzeugung des Übersetzers für die Übersetzung
    309840/0825
    eines Eingangs in problemorientierter Sprache und für die Bildung von für einen verallgemeinerten Code-Generator annehmbaren Parametern ein Operations-Code erzeugt wird, der die logische Struktur der problemorientierten Sprache darstellt·, daß ferner mit dem Operations-Code Parameter erzeugende Prozeduren verknüpft werden, daß ferner ein Abtaster für die Erkennung und Klassifizierung der Größen der problemorientierten Sprache erzeugt wird und daß schließlich der Operations-Code und der Abtaster in einem vollständigen Übersetzerprogramm für einen digitalen Rechner kombiniert werden.
  14. 14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, daß bei der Umsetzung einer Angabe in der problemorientierten Sprache in den Operations-Code und bei der Bildung des Abtasters die gemeinsame Struktur sämtlicher Sprachen mit den Benennungen einer spezialisierten problemorientierten Sprache definiert wird, daß weiter die Struktur der spezialisierten problemorientierten Sprache in dem Rechnerspeicher durch einen spezialisierten Operationscode dargestellt wird, daß ferner mehrere Befehlsvorräte für einen digitalen Rechner geschaffen werden, die nach Auswahl durch den spezialisierten Operations-Code eine problemorientierte Sprache in ihren äquivalenten Operations-Code umsetzen, wobei ferner ein Verknüpfungsmechanismus und die Erzeugung eines Abtasters vorgesehen ist, und daß schließlich ein Interface zwischen einem spezialisierten Abtaster für die Erkennung von Elementen der spezialisierten problemorientierten Sprache und zwischen dem spezialisierten Operations-Code geschaffen wird.
  15. 15. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß bei dem Verfahren zur Erzeugung einer Folge von
    30 9 8 40/0825
    Rechner-Quellen-Code-Anweisungen mehrere , Generator-Steuer-Anweisungen für den generalisierten Code-Generator und mehrere entsprechende Rechner-Befehle für die Benutzung zur Assemblierung individueller Code-Zeilen erzeugt werden, daß ferner mehrere Befehle in entsprechenden Rechnerbefehlen geschaffen werden, welche die Placierung der in dem Rechnerspeicher vorhandenen Quellen-Code—Anweisungen in dem Ausgabe-Code gestatten, und daß schließlich*jede geschaffene Quellen-Code-Anweisung auf einen Ausgabe-Datenträger aufgezeichnet wird.
  16. 16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß die Ünlvereal »Genera tor-Steueranweisungen durch ein Verfahren konstruiert werden, bei dem die Syntax der Unive.rs«l>S teuer-Anwei sungen in der Form einer problemorientierten Sprache geschrieben wird, bei de» ferner die Steueranweisungen in einen Operations-Code umgesetzt werden, der die logische Struktur der Sprache der Steueranweisungen darstellt, wobei weiter mehrere Prozeduren für die Assemblierung individueller Quellen-Code-Zeilen und für die Auswahl von Teilen von in einem Rechnerspeicher vorhandenen Quellen-Code-Routinen in den Operations-Code eingefaßt werden, bei dem außerdem ein Abtastmechanismus für die Erkennung und Identifizierung jedes Ausdrucks der Steueranweisungen erzeugt.wird und bei dem schließlich ein Interface zwischen dem Operations-Code und dem Abtastmechanismus geschaffen wird·
  17. 17. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß bei dem Verfahren zur Erzeugung mehrerer Rechner-Befehls-Vorräte, nit deren Hilfe ein digitaler Allzweckrechner Lösungen fir eine Klasse von Problemen erzeugt, die notwendigen Rechner-Betriebs-System-Befehle
    309840/0825
    erzeugt werden, die den Hschner zu der Compilierung der Rechner-Befehls-Vorräte in.einen Rechner-Objektcode und zur weiteren Ausführung des Objektcode veranlassen.
  18. 18. Digitale Datenverarbeitungsanlage, insbesondere zur Ausführung des Verfahrens nach einem der vorstehenden Ansprüche, für die Berechnung der Lösungen von verschiedenen Klassen von Problemen in Abhängigkeit von in problemorientierter Sprache kodierten Daten, gekennzeichnet durch ein zentrales Leitwerk (384) für die gesamte Steuerung der Anlage durch mehrere Rechner-Befehlsvorräte, die das Verfahren zur Berechnung der Lösung für verschiedene einzelne Problemklassen wiedergeben; ferner durch mehrere Ein/Ausgabe-Kanäle (400... 410) für die Übertragung von Daten zwischen dem zentralen Leitwerk (384) und mehreren peripheren Einrichtungen (426 ...436); durch eine mit jedem Ein/Ausgabe— Kanal verbundene Ein/Ausgabe-Steuereinheit (412„».424) für die Regelung des Betriebs der peripheren, mit dem Ein/Ausgabe«sKanal verbundenen peripheren Einheit; ferner durch eine über eine Ein/Ausgabe-Steuereinheit (418) mit einem Ein/Ausgabe-Kanal (404) gekoppelte Plattenspeichereinheit (430) für die wirksame Speicherung von Daten und Befehlssätzen in Form von mehreren elektrischen Signalen auf einer routierenden Platte; weiter durch eine über einer Ein/Ausgabe-Steuereinheit 412) mit einem weiteren Ein/Ausgabe-Kanal 4400) gekoppelte Dateneingabestelle (426), über die Befehlsvorräte und Daten der Anlage zugeführt werden; ferner durch eine über einer Ein/Ausgabe-Stetaereinh@It (424) mit einem weiteren Ein/Ausgabe-Kanal (410) gekoppelte Datenausgabeeinrichtung (436) für die Ausgabe der von der Anlage errechneten Ergebnisse; weiter durch einen schnellen Magnetkern-Speicher (394), in dem jeder Plats in direktem
    30 98 40/082
    Zugriff adressiert werden kann, für die Speicherung und Bereitstellung häufig benutzter Daten und Befehlsvorräte; ferner durch mehrere Register (390,392) für die Kodierung und Dekodierung der Adressen des Speicherplatzes von Daten in den Magnetkernspeicher; und schließ lich durch einen mit dem zentralen Leitwerk gekoppelten und von dem Leitwerk gesteuerten Prozessor (382), der die arithmetischen und Datenverarbeitungs-Vorgänge ausführen kann, die zur Erlangung von Lösungen für die Eingabedaten in Abhängigkeit von den Rechner-Befehlsvorräten benötigt werden.
    309840/0825
    Leerseite
DE19732312193 1972-03-23 1973-03-12 Uebersetzer und quellencode-erzeuger fuer eine problemorientierte sprache fuer rechenanlagen Ceased DE2312193A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US23747572A 1972-03-23 1972-03-23

Publications (1)

Publication Number Publication Date
DE2312193A1 true DE2312193A1 (de) 1973-10-04

Family

ID=22893874

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19732312193 Ceased DE2312193A1 (de) 1972-03-23 1973-03-12 Uebersetzer und quellencode-erzeuger fuer eine problemorientierte sprache fuer rechenanlagen

Country Status (7)

Country Link
JP (1) JPS4915333A (de)
BE (1) BE796255A (de)
DE (1) DE2312193A1 (de)
FR (1) FR2177284A5 (de)
GB (1) GB1407761A (de)
IT (1) IT982527B (de)
NL (1) NL7303314A (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS519022A (en) * 1974-07-15 1976-01-24 Imp Metal Ind Kynoch Ltd Inkyoku oyobi kensuibokumitatetai
DE2752002C3 (de) * 1977-11-22 1980-09-11 Fa. Friedrich Theysohn, 3012 Langenhagen Verfahren zur Erzeugung einer verschleißfesten Schicht auf der inneren Oberfläche des Gehäuses eines Doppelschneckenextruders
JPS5576281A (en) * 1978-12-04 1980-06-09 Kawasaki Heavy Ind Ltd Composite pipe for high temperature gas furnace
JPS5631142A (en) * 1979-08-23 1981-03-28 Fujitsu Ltd Cobol conversion processing method
JPS5680748A (en) * 1979-12-06 1981-07-02 Fujitsu Ltd Data processor programmable in ideographic language
EP0053549A1 (de) * 1980-11-28 1982-06-09 The Bendix Corporation Verfahren zum Befestigen und hermetischen Abdichten eines Stahlgehäuses in der Öffnung eines Aluminiumgehäuses
JP2535836B2 (ja) * 1986-07-29 1996-09-18 石川島播磨重工業株式会社 容器等における異種金属継手
JPH07121460B2 (ja) * 1986-07-29 1995-12-25 石川島播磨重工業株式会社 容器等における異種金属継手
US5213904A (en) * 1991-11-05 1993-05-25 Explosive Fabricators, Inc. Aluminum/steel transition joint
US5190831A (en) * 1991-11-05 1993-03-02 Explosive Fabricators, Inc. Bonded titanium/steel components
CN107250982B (zh) * 2015-11-25 2020-11-06 华为技术有限公司 用于加速器的程序生成方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3319226A (en) * 1962-11-30 1967-05-09 Burroughs Corp Data processor module for a modular data processing system for operation with a time-shared memory in the simultaneous execution of multi-tasks and multi-programs
US3492654A (en) * 1967-05-29 1970-01-27 Burroughs Corp High speed modular data processing system

Also Published As

Publication number Publication date
IT982527B (it) 1974-10-21
GB1407761A (en) 1975-09-24
NL7303314A (de) 1973-09-25
BE796255A (fr) 1973-07-02
JPS4915333A (de) 1974-02-09
FR2177284A5 (de) 1973-11-02

Similar Documents

Publication Publication Date Title
DE69726339T2 (de) Verfahren und Apparat zur Sprachübersetzung
DE69400869T2 (de) System zum transkribieren von texteingaben
DE3650417T2 (de) Informationsaufzeichnungs- und Wiederauffindungssystem.
DE2554442C2 (de) Vorrichtung zum Vergleich logischer Größen mit einer Gruppe logischer Bezugsgrößen
DE3650156T2 (de) Auf regeln basiertes datenwiederauffindverfahren und anordnung.
DE69030815T2 (de) Apparat und verfahren zur erzeugung von dokumenten
DE3587501T3 (de) Gerät, Verfahren und Struktur zur Umwandlung eines Dokumentes einer Struktur in ein Dokument einer anderen Struktur.
EP0424803B1 (de) Verfahren zur mindestens teilweisen Umsetzung von Bilddaten in Text mit Vorbereitung für nachfolgende Speicherung oder Weiterverarbeitung
DE19960050A1 (de) Grafische Benutzerschnittstelle zur Entwicklung von Anwendungsbeispielen unter Verwendung einer Testobjektbibliothek
DE2633536A1 (de) Sprachuebertragungsgeraet und -verfahren
DE3503119A1 (de) Verfahren zum automatischen erzeugen eines quellenprogramms
DE2550268A1 (de) Schnelldrucker fuer datenverarbeitungssysteme
DE2505843A1 (de) Datenverarbeitungsanlage mit datenstromgesteuerter simultanverarbeitung
DE2312193A1 (de) Uebersetzer und quellencode-erzeuger fuer eine problemorientierte sprache fuer rechenanlagen
DE2054947A1 (de) Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem
DE2365543A1 (de) Elektronischer rechner
DE10256990A1 (de) Programmcodegenerator und Programm
EP3968149A1 (de) Erzeugung von steuerungsvorschriften aus schematisierten regelwerken
DE69219420T2 (de) Verfahren und gerät zur rechnercode-verarbeitung in einem codeübersetzer
DE2249852A1 (de) Computersystem
DE2613703C2 (de) Schaltungsanordnung zum Übersetzen von Programmtexten
DE102016114265A1 (de) Verfahren zum zumindest teilweise maschinellen Transferieren einer in einer Quellsprache abgefassten Wortfolge in eine Wortfolge einer Zielsprache
DE3511920A1 (de) Elektronischer ratgeber
EP0206214A1 (de) Verfahren zur einheitlichen symbolischen Beschreibung von Dokumentenmustern in Form von Datenstrukturen in einem Automaten
DE2941824A1 (de) Programmeingabesystem

Legal Events

Date Code Title Description
OD Request for examination
8131 Rejection