DE2302753A1 - Verfahren zum vergleichen von programmen in einem datenverarbeitungssystem - Google Patents

Verfahren zum vergleichen von programmen in einem datenverarbeitungssystem

Info

Publication number
DE2302753A1
DE2302753A1 DE2302753A DE2302753A DE2302753A1 DE 2302753 A1 DE2302753 A1 DE 2302753A1 DE 2302753 A DE2302753 A DE 2302753A DE 2302753 A DE2302753 A DE 2302753A DE 2302753 A1 DE2302753 A1 DE 2302753A1
Authority
DE
Germany
Prior art keywords
program
equality
line
module
change
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.)
Pending
Application number
DE2302753A
Other languages
English (en)
Inventor
Delwin W Bloom
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.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
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 Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2302753A1 publication Critical patent/DE2302753A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

Dipl.-Ing. Heinz Bardehle
Patentanwalt
8000 Manchen 22, Herrnstr.15
Minchen, den 20. Januar 1973
Mein Zeichen: P 1583
Anmelder: Honeywell Information Systems Inc.
200 Smith Street
Waltham, Massachusetts, V, St. A.
Verfahren zum Vergleichen von Programmen in einem Datenverarbeitungssystem
Die Erfindung bezieht sich auf Datenverarbeitungssysteme und insbesondere auf Einrichtungen zur Steuerung des Betriebs eines Rechners, derart, dass ein Grund- oder Basisprogramm mit einem abgeänderten bzw. modifizierten Programm verglichen wird, um die Differenzen zwischen den beiden Programmen zu ermitteln.
ao9830/09B3
0RiGINA INSPECTED
Auf dem Gebiet der Rechnerprogramme, das heisst bei Programmen, die für die Steuerung des Betriebs eines Rechners ausgelegt sind, ist es häufig erforderlich, das Programm so zu ändern, dass entweder das Programm eine neue und bessere Operation ausführt oder dass die Länge des Programms verkürzt wird, und zwar durch Weglassen bzw. löschen von unnötigen Schritten.
Jedesmal, wenn .änderungen bezüglich eines Rechnerprogramms vorgenommen werden, können durch das menschliche Element, das zur Durchführung der Änderung erforderlich ist, Fehler in die Abänderung hineinkommen. Ferner kann die Hinzufügung, Streichung oder Abänderung von einer Bedienperson in unrichtiger Weise eingeführt worden sein. Me falschen Angaben können gelöscht werden, oder es können anstatt der vom Programmierer eingesetzten Angaben unrichtige Angaben eingeführt werden. Ein weiteres Problem besteht noch darin, dass ein Zusatz in das Programm bei der falschen Operationsfolge eingeführt werden kann.
Früher ist der Vergleich eines -Basis- oder Ursprungsprogramms mit einem neuen nichtdatierten Programm durch visuelle Überwachung vorgenommen worden. Ein entsprechend unterwiesener Programmierer hatte einen Ausdruck der ein Basisprogramm aufführenden Quelle und einen Ausdruck der eine überarbeitete Fassung aufführenden Quelle zu erhalten. Die betreffende Quellenliste enthält in gedruckter Form jeden dem Rechner zur Ausführung einer bestimmten Operation zugeführten Befehl. In vielen Fällen sind diese Befehle mnemonische Befehle. In anderen Fällen handelt es sich bei den Befehlen jedoch lediglich um eine Gruppe von Symbolen, wobei einige Zeichensymbole und numerische Symbole vorgesehen sind, während die übrigen Symbole die üblichen Symbole sind, wie das Dollarzeichen und das Centzeichen. Sämtliche in einer Anweisung benutzten Symbole dienen dazu, eine bestimmte Operation zu bezeichnen, die von dem Rechner gefordert wird.
309830/0983
Die visuelle Überwachung ist eine sehr langweilige und zeitraubende Aufgabe, die eine weitere Möglichkeit der Einführung eines menschlichen Fehlers mit sich bringt, und zwar insbesondere im Hinblick auf die benutzten Symbole. Ein Übergang zu einem Symbol in der Anweisung bringt eine Änderung der gesamten Bedeutung der Anweisung mit sich. Ein durch die Prüfeinrichtung bzw. den Prüfer übersehener Fehler kann einen viele Stunden umfassenden Zeitverlust hinsichtlich der Lokalisierung des Fehlers mit sich bringen, wenn das Rechnerprogramm einmal in das Datenverarbeitungssystem für einen Probelauf eingegeben worden ist«
Es ist daher ein Verfahren erforderlich, welches den Rechner durch Programmsteuerung dazu heranzieht, jegliche Unterschiede zwischen einem Basis-Bezugsprogramm und einer abgeänderten Fassung des Basisprogramms zu prüfen und zu erkennen.
Der Erfindung liegt demgemäss die Aufgabe zugrunde, ein verbessertes Verfahren zur Erkennung bzw. Identifizierung von Änderungen zu schaffen, die bezüglich eines Quellenprogrannns bzw. Primärprogramms vorgenommen worden sind.
Gelöst wird die vorstehend aufgezeigte Aufgabe bei einem Datenverarbeitungssystem durch ein Verfahren zum Vergleichen einer modifizierten Fassung eines Programms mit einem Basis-Bezugsprogramm zur Lokalisierung und Anzeige einer Differenz in der Codierung. Dieses Verfahren ist erfindungsgemäss dadurch gekennzeichnet,
a) dass Quellencodes von beiden Programmen verglichen werden, bis eine Differenz zwischen den Codes ermittelt worden ist,
b) dass das Vorliegen der nächsten Gleichheit in den Quellencodes geprüft wird, nachdem die Vergleichs-Quellencade-. differenz ermittelt worden ist,
309830/0963
c) dass eine gleiche Eolge in beiden Programmen festgelegt wird,
d) dass das Vorliegen einer Mchtübereinstimmung geprüft wird, indem von der festgelegten gleichen Folge aus rückwärts gearbeitet wird, und
e) dass die Prüfung ausgewählt wird, die den geringsten Änderungsbereich hinsichtlich der Angabe der Differenzen in der Codierung hervorruft.
Die Abänderungen bezüglich des Programms werden als Zugabe, Streichung oder Modifikation bezeichnet, und zwar durch Überprüfen der Anweisungen innerhalb des Inderungsbereichs. Bezüglich eines Vergleichs wird eine Suche vorgenommen. Sämtliche Anweisungen, die dem Vergleich in der abgeänderten Passung vorangehen, werden als Zugaben bzw. Zusätze markiert. Ein Vergleich eines verkürzten Teiles irgendeiner Anweisung wird als Modifikation markiert. Hachdem sämtliche Vergleiche in dem Änderungsbereich ermittelt bzw. gesucht worden sind, um die Änderungen zu bezeichnen, kehrt das Programm zu dem ursprünglichen Vergleichsunterprogramm zurück, bis die nächste Nichtübereinstimmung ermittelt wird, wobei der Vorgang wiederholt wird.
Bei bisher bekannten Vergleicher-ReehnerprogrammeB war die Neigung vorhanden, dass ein zu grosser Bereich eines abgeänderten Quellenprogramms festgelegt wurde, wenn ein Vergleich mit einem Basis-Bezugs-Quellenprogramm vorgenommen wurde. Der Unterschiedsbereich ist dabei dadurch festgelegt, dass mittels der Quellencodierung von zwei gemeinsamen Bezugspunkten aufgearbeitet wurde, und zwar dem Anfangspunkt und einem bekannten gemeinsamen Punkt nach Auftreten der Uichtübereinstimmung (die symbolische Adresse). Die Differenzen zwischen den beiden Quellenprogrammen bzw. Primärprogrammen werden auch dann bestimmt, wenn es sich bei den Änderungen um irgendwelche Kombinationen von Hinzufügungen,
309830/0963
Löschungen bzw. Weglassungen oder Modifikationen handelt.
Anhand von Zeichnungen wird die Erfindung nachstehend ■beispielsweise näher erläutert·
Fig. 1 zeigt in einem schrittweisen Flussdiagramm ein Yerfahren zur Durchführung des Quelleneodevergleichs gemäss der vorliegenden Erfindung,
Fig. 2A, zeigen in einem Flussdiagramm den Maschinenalgorithmus,
21)' 2E* der vcm e^nem Datenverarbeitungssystem hei der Dureh-
2F, 2G- führung des Quellencode-Yergleiehsunterprogramms gemäss der vorliegenden Erfindung ausgeführt wird,
Fig. 3A, zeigen ein anschauliches Rechnerprograram zur Ausführung
*» |2» des in den Fig. 2A bis 2H dargestellten Algorithmus
3F und
3G-
In Fig. 1 ist ein Flussdiagramm gezeigt, welches den schrittweisen Betrieb des Rechnerprogramms veranschaulicht. Der Zweck des Tergleicherprograrams besteht darin, die Änderungen zu bezeichnen bzw. zu identifizieren, die bezüglich der Quellencodierung bzw. Primäreodierung gedes Programms vorgenommen werden. Demgemäss besteht der erste Schritt darin, die benötigten Parameter festzulegen. Die Forderung nach dem Rechnerprogramm bzw. die Anwendung des Rechnerprogramras erfolgt in dem Bereich, in dem die vom Hersteller bereitgestellte Rechner-Software durch den Anwender abgeändert wird, um der speziellen Forderung des Anwenders zu genügen. In diesem Schritt ist der benötigte Ausdruck bezeichnet. Die Ausgabe könnte durch einen Rechnerausdruck mit der"ursprünglichen Fassung des Programms und der abge-
ge geben
änderten Fassungysein, die neben der ursprünglichen Fassung ausgedruckt wird, wobei eine Ausrichtung dahingehend erfolgt, dass Zusätze, Streichungen oder Modifikationen angezeigt werden,
30983Q/0963
die bezüglich der Basis-Bezugsquellencodierung vorgenommen worden sind, um die geänderte Passung zu erzielen. Jegliche Änderung in dem abgeänderten Quelleneode wird z.B, auf der rechten Seite des Ausdruckes angezeigt, und zwar für eine leichte Feststellung der Differenz, Der Anwender kann ferner eine solche Wahl treffen, dass ein Rechnerausdruek von nur dem Seil der Codierung erhalten wird, der geändert worden ist. Auf diese Weise werden die zu vergleichenden Programme sowie die "benötigte Ausgabe im ersten Schritt des flussdiagramtms festgelegt.
Der nächste Schritt in dem Flussdiagramm gemäss Fig, 1 besteht darin, das G-rundmodul bzw, Basismodul festzulegen. Das Basismodul im hier beschriebenen Sinne ist der Teil des Speichers, in dem die Basis-Bezugsquellenprogramme gespeichert sind. In diesem Schritt sucht der Rechner nach dem Basis-Bezugsprogramni gemäss dem Modul, in dem das Basis-Bezugsprogramm gespeichert ist. Das Basis-Bezugsprogramm könnte in irgendeinem Plattenstapel-Speieherwerk einer Mehrzahl von Plattenstapel-Speicherwerken oder auf einem Magnetband in einer Bandantriebseinheit mehrerer Bandantriebseinheiten gespeichert sein» Ein heutiges Datenverarbeitungssystem enthält ein erweiteres Speicherwerk mit Magnetplattenstapeleinheiten und Magnetbandeinheiten.
Nach Festlegen des Basismoduls besteht, wie das Flussdiagramm zeigt, der nächste Schritt darin, den Quelleneode aus der Bezugsdatei in einen ersten Arbeitspuffer zu laden, Dieser Schritt führt dazu, dass die Information in Kurzzeit speicherwerke, wie Pufferregister, eingeführt wird, zu denen der Rechner leicht Zugang hat. Obwohl der Vergleich des Basisbezugsprwbramms mit dem abgeänderten Programm direkt von dem Speichermedium her ausgeführt werden kann, indem man die Bandantriebseinheiten kontinuierlich in einer Vorwärtsrichtung und in einer Rückwärtsrichtung suchen lässt oder indem man eine Magnetplatte kontinuierlich in einem Sektor absucht, ist es aus Gründen einer leichten Verarbeitung der Information am besten, die Information in
309830/0963
ein Pufferregister einzuführen, in welchem der Rechner Datenblöcke abtasten kann anstatt nur jeweils ein Bit oder eira kleine Gruppe von Bits.
Der nächste Schritt gemäss Pig. 1 besteht darin, das Modul festzulegen, welches das abgeänderte Programm enthält. Bei diesem Programm handelt es sich um dasjenige Programm, welches mit dem Basisbezugsprogramm verglichen wird. Dieses abgeänderte Programm wird dann in ein zweites Arbeitspufferregister eingeführt. Der Ablauf setzt sich dann fort, und der Rechner vergleicht die Quellencodes von den beiden Arbeitsregistern, bis eine Differenz zwischen der Basisbezugseodierung und der abgeänderten Codierung ermittelt worden ist. Dies zeigt die Stelle an, an der das abgeänderte Programm von dem ursprünglichen Programm bzw. Originalprogramm geändert worden ist. Der Vergleicher vergleicht einen Teil jeder Zeile des Codes der abgeänderten Passung mit dem entsprechenden Gegenstück in dem Basisbezugsprogramm, und zwar solange, bis er feststellt, dass eine Änderung stattgefunden hat.
Nach Feststellen der Differenz erfolgt zunächst durch den Vergleicher eine Peststellung bzw. Festlegung der Lage bzw. Position der Differenz in dem Arbeitsbereich. Das Vergleicherprogramm läuft dann fort, um jede Zeile abzutasten, wie dies im nächsten Schritt gezeigt ist. Auf diese Weise wird die nächste Gleichheit bzw, Übereinstimmung zweier aufeinanderfolgender Zeilen der Quellencodes ermittelt. Ein Vergleich kann gegebenenfalls in Abhängigkeit davon bestimmt werden, ob die Änderung bezüglich des abgeänderten Programms einen Ersatzteil, eine Hinzufügung oder eine Weglassung aufweist. Ist ein Ersatz bzw. Austausch oder eine Hinzufügung vorgenommen worden, so kann der Vergleich einfach ausgeführt werden. Ist jedoch eine Weglassung bzw. Streichung bezüglich des abgeänderten Programms vorgenommen worden, so kann ein Vagleich durch das Vergleicher-"Ogramrn für den restlichen Teil der Quellenliste nicht vorge-.· '"men werden, oder aber es kann eine identische Codezeile
3 0 9 8 3 0/0963 ORIGINAL INSPECTED
ermittelt werden, und bei dem Vergleicherprogramm wird ange nommen, dass ein Vergleich, durchgeführt worden ist· Die bisher bekannten Programme würden eine Abänderung des Programms bezüglich des restlichen Anteils der Quellenliste festhalten, obwohl dies wahrscheinlich nicht der Fall ist, Demgemäss besteht gemäss der -vorliegenden Erfindung der nächste Schritt, wie er in Pig· 1 gezeigt ist, darin, eine identische symbolische Adresse 2SU finden«
Das Auffinden der identischen symbolischen Adresse für das Basis-Be zugsprograram und das abgeänderte Programm zeigt einen gemeinsamen Punkt, an dem das bestimmte Codierungsformat, welches gerade verglichen wird, endet, und an welchem ein anderes Format der Quellenliste beginnt. Somit sucht das Vergleicherprogramm nach einem gemeinsamen Punkt in den beiden Programmen. Dieser gemeinsame Punkt wird nach den zuerst aufgezeichneten Differenzen der zweite Arbeitspunkt, und der nächste in Fig. 1 veranschaulichte Schritt zeigt, dass das Vergleicherprogramm von diesem gemeinsamen Punkt aus in Rückwärtsrichtung arbeitet und eine überprüfung hinsichtlich des Vorliegens einer weiteren Nichtübereinstimmung zwischen dem Basis-Bezugsprogramm und dem abgeänderten Programm vornimmt.
Der nächste Schritt in dem Flussdiagramm besteht darin, die Ergebnisse der beiden Prüfungen zu vergleichen. Dies bedeutet, dass die Prüfung auf das Vorliegen der nächsten Gleichheit zweier aufeinanderfolgender Quellencodeszeilen mit der Prüfung auf Hichtübereinstimmung verglichen wird, wobei von einer identischen symbolischen Adresse aus in Rückwärtsrichtung gearbeitet wird* Der nächste Schritt in dem Yergleicherprogramm besteht darin, aus den beiden Prüfungen die Prüfung auszuwählen, welche den geringsten Änderungsbereich beschreibt. Ist daher eine Löschung bzw. Weglassung bezüglich des Programms erfolgt, so wird geaäss dem ersten Schritt die gesamte Quellenliste von der Zeile, in der die Löschung bzw. Weglassung erfolgt ist,, bis zu üsm Punkt, an dem eine entsprechende Godezeile ermittelt worden ist und an dem eine Gleichheit bzw. Übereinstimmung ange-
30Ö83Ö/0963
nomraen worden ist, als Mchtübereinstimmungsbereich herangezogen. Die zweite Prüfung würde jedoch zeigen, dass grundsätzlich der letzte Schritt derselbe Schritt wäre, und da das Vergleicherprogramm von einem gemeinsamen Punkt aus in Rückwärtsrichtung arbeitet, werden Vergleiche fortwährend ausgeführt, bis die Zeile wieder erreicht ist, an der die löschung bzw, Streichung erfolgt ist. Dies dient zur Bestätigung dafür, dass der Yergleicher den Yergleichscode in den beiden Modulen ermittelt hat und nicht durch einen Code falsch geleitet worden ist, der den überdies in dem Quellencode auftretenden Code ähnlich ist, der gelöscht worden ist. Die Zeiger, bei denen es sich.'um Identifizierer handelt, die einen Bereich in den Arbeitspuffern anzeigen, kennzeichnen den Beginn des Änderungsbereichs, wie er durch die erste ermittelte Differenz bezeichnet ist, und das Ende des Änderungsbereichs, wie dies durch eine der beiden Prüfungen bezeichnet wird. Die ausgewählte Prüfung ist dabei diejenige, die den geringsten Änderungsbereich liefert. Der aus den beiden Prüfungen resultierende Änderungsbasich wird derselbe Änderungsbereich sein, sofern nicht der Yergleicher eine fehlerhafte Annahme bei der ersten Prüfung gemacht hat.
Der nächste in dem !flussdiagramm gemäss ]?ig, 1 gezeigte Schritt besteht darin festzustellen, ob die Änderung eine Streichung bzw. Löschung, eine Hinzufügung oder eine Modifikation war. Dies erfolgt dadurch, dass der Beginn und das Ende des Änderungsbereichs geprüft werden. Der nächste oder letzte Schritt besteht darin, den Änderungsbereich in der abgeänderten Passung auszudrucken oder das gesamte Basis-Bezugsprogramm und das abgeänderte Programm unter Hinweis auf die Änderungen auszudrucken. Was ausgedruckt wird, ist eine gemäss den Parametern gewählte Entscheidung.
Bei dem schrittweisen Verfahren der Ausführung des Yergleicher- ; Programms gemäss der Erfindung sowie in Pig. 1 sind zwei Arbeitspuffer unendlicher länge oder ein Kurzprogramm angenommen,
309830/0963
welches gänzlich in den Arbeitspufferregistern gespeichert werden kann. In den meisten lallen wäre die Quellencodierung jedoch zu gross, um auf einmal in den Arbeitspufferregistern gespeichert zu werden. In diesem Pail wird eiü Teil der Quellenliste in die Arbeitspuffer geladen, und dieser !eil der Quellenliste wird zunächst zur Bestimmung bzw. Feststellung der Differer.' verglichen. Werden keine Differenzen ermittelt, so werden die Pufferregister geleert und mit dem zweiten Teil geladen. Werden wieder keine Differenzen, festgestellt, so werden die Pufferregister mit der dritten Datengruppe geladen. Wird irgendwo in den Pufferregistern eine Änderung festgestellt, so verschiebt bzw* bewegt das Vergleicherprogramm die betreffende Ze.il.e-.au. der Oberseite des Pufferbereichs hin. Das Vergleicherprogramra. füllt dann die Pufferregister wieder mit der Quellenlistenin-, formation von dem Basis-Bezugsprogramm und dem abgeändertem Pro-, gramm auf, und zwar mit der Information, die auf den Bereich folgt» in welchem eine Nichtübereinstimmung festgestellt worden ist.
Uaehdem die Nichtübereinstimmung ermittelt worden ist und nachdem der Arbeitsbereich mit dem Code wieder gefüllt worden ist, der nicht an der Oberseite beider Pufferregister übereingestimmt hat, setzt der Vergleicher seinen Betrieb fort, um die Nichtübereinstimraungs-Zeile aus dem ersten, das Basis-Bezugsprogramm festhaltenden Pufferregister mit jeder Codezeile in dem zweiten, das abgeänderte Programm festhaltenden Pufferregister zu vergleichen. Dies ist dasselbe als wenn ein Operator die Stelle in der Quellenliste des Basisbezugsprogramms markiert und dann fortfährt, die abgeänderte Programmfassung zu suchen, bis eine Übereinstimmung ermittelt ist. Unter der 'Annahme, dass keine Übereinstimmung festgestellt worden ist, wird die nächste Codezeile in der Basisbezugsdatei für Bezugszwecke herangezogen, wobei diese Zeile mit sämtlichen Zeilen des abgeänderten Codes verglichen wird. Nunmehr sei angenommen, dass ein Vergleich durchgeführt wird, was bedeutet, dass die gesamte Zeile des Basisbezugsprogramms mit irgendeiner Zeile der abgeänderten Programmfassung übereinstimmt. In dem Fall vergleicht das Ver-
309830/09 6.3
gleieherprograiam die nächste Codezeile in dem ersten Pufferregister mit der nächsten Codezeile in dem zweiten Pufferregister, und wenn diese Zeile keine Übereinstimmung zeigt, wird das Programm gerade so fortgesetzt, als wenn keine Gleichartigkeit in den beiden Zeilen ermittelt worden ist. Irgendwo ermittelt der Vergleicher im allgemeinen zwei aufeinanderfolgende Godezeilen, die identisch mit zwei Zeilen in der abgeänderten Passung übereinstimmen. Der Vergleieher setzt dann Zeiger, fiurch die eine Erinnerung an diese Stellen sowie eine Kennzeichnung dieeer Stellen erfolgt.
Γ-3 stellt keine sichere Annahme dar, dass mit Rücksicht darauf, dass zwei aufeinanderfolgende Zeilen des Quellencodes als gleich ermittelt worden sind, sämtliche Änderungen identifiziert worden sind. Aus diesem Grunde sucht das Vergleicherprogramm üach einer symbolischen Adresse in dem Basis-Bezugsprogramra und sodann in dem abgeänderten Programm, bis dieselbe symbolische Adresse gefunden ist Das Yergleicherprogramm hat nunmehr die Änderungen bzw, Modifikationen zusammengestellt.
Das Yergleicherprogramm beginnt dann die Arbeit in Rückwärtsrichtung, indem die der symbolischen Adresse gerade vorangehende Zeile in dem ersten Pufferregister mit derselben Zeile in dem zweiten Pufferregister verglifthen wird. Wird eine Gleichheit festgestellt, so wird die nächste vorangehende Zeile in dem ersten Pufferregister mit der nächsten vorangehenden Zeile in dem zweiten Pufferregister verglichen. Dieser Vorgang wird solange fortgesetzt, bis eine Nichtübereinstimmung bzw. TJngleicheinheit festgestellt wird. Das Yergleicherprogramm vergleicht dann die Erge^ risse der beiden Prüfungen bzw, Seats, nämlich deü Test auf eine G-leichheit durch Arbeiten in Vorwärterichturg von der Ungleichheit aus, und den Test bezüglich des Arbeitens in Rückwärtsrichtung von einer entsprechenden sym- , bolisehen Adresse aus« Dabei ist angenommen, dass der die klein-
309830/0963
ste Anzahl von Zeilen in dem Pufferregister festlegende Test den Ungleichheitsbereich "bezeichnet.
Der Quellencode muss innerhalb der Grenze der ersten entsprechenden symbolischen Adresse gleichgestellt sein, um einen guten Vergleich anzunehmen, liegt der betreffende Code nicht innerhalb der Grenze, so verschiebt das Vergleicherprogramm seine Zeigerkennzeichnung zu einer anderen entsprechenden Symboladresse und bewirkt eine "Ausrichtung" des Codes in dem angewiesenen Bereich. Unter "Ausrichten" wird hier verstanden, dass bestimmt wird, ob die Änderungen Hinzufügungen, Weglassungen, Modifikationen oder Hinzufügungen, Weglassungen und Modifikationen sind. Wenn dieser Torgang abgeschlossen ist, werden die entsprechenden Symbole so behandelt, als wären sie die ersten Zeilen eines Codes, der nicht übereinstimmt. Auf diese Weise verhindert das Yergleicherprogramm einen Annahmesprung dahingehend, dass aufgrund des Auffindens entsprechender Codes eine Rückwärts-Ablauffolge vorliegt« Das Arbeiten in Rückwärtsrichtung von identischen symbolischen Adressen aus zum Zwecke der Prüfung von Nichtübereinstimmungen bewirkt eine positive Kennzeichnung der geänderten Bereiche.
Die Plussdiagramme für die von einem Rechner ausgeführten Vergleicherprogramme sind in Pig. 2A bis 2H gezeigt. Die Quellenlistencodes für das Vergleicherprogramm sind in Pig. 3A bis 3G gezeigt. Die kleinen Kreise in Pig. 2A bis 2H bezeichnen die Teile der Quellenliste, die auf den entsprechenden Bereich des Plussdiagramms hinweisen. So bezieht sich z.B. in Pig. 2A ein kleiner Kreis, der den Code OPTS enthält und der auf der Oberseite eines Plussdiagramms liegt, welches zeigt, dass das Einlesen von Angaben gewählt worden ist, auf die in Pig. 3A gezeigte Quellenliste, wobei sich eine entsprechend gekennzeichnete Stelle OPTS in der Quellenliste findet. Somit erfordert der die Quellenliste kennzeichnende kleine Codekreis
ORIGINAL INSPECTED 309830/0963
die Ausführung der Operationen, die in dem, Block des Fluasdiagramms gezeigt sind und denen ein kleiner ÖQdekröis l32sw. codierter Kreis vorangeht,
In Fig. 3A, 3B, 3C, 3D, 3E, 3F und 3G- sind die "bedeutenden . Teile einer beispielsweisen Prograramausführung des Yergleicherprogramms gemäss der -vorliegenden Erfindung veranschaulicht. Das Programm ist in der GMAP-Sprache geschrieben, wie sie z.B. in dem Honeywell Programming Reference Manual, Ur, 0PB-1G04 für die Ausführung auf irgendeinem Rechner der Honeywell-Rechner der Serien G6OO und H6OOO beschrieben ist. Die Ausführung der vorliegenden Erfindung in dem Programm gemäss Fig. 3A bis 3G-dürfte aus einer Überprüfung dieser Figuren ersichtlich werden, weshalb mit Ausnahme des Vergleichs bezüglich des Flussdiagramm gemäss Fig. 2A bis 2H dLe betreffenden Figuren nicht v/eiter beschrieben werden.
Im folgenden sei auf FIg. 2A näher eingegangen. Die anfängliche Organisation und Umgrenzung von Parametern, die auf ausgewählte Angaben gestützt sind, weiden zuerst vorgenommen. Der erste, in dem Block 10 dargestellte Schritt besteht darin, die Dateien zu öffnen und die. BandtabelJen aus der Datei AB, der Basis-Bozugsdatei und der Datei GF als der die abgeänderte Eassung enthaltenden Datei zu lesen. Die Angaben zum Drucken und die Arten der Modifikationen, bezüglich der die Förderung nach Meldung und Ausdrucken besteht, werden ausgewählt. Der Rechner setzt dann den Betrieb in dem Ablauf zu der OPTS-Codierung gemäss den Blöcken 12, H, 16 und 18 fort, um die ausgewählten Angaben einzulesen, um ferner eingegebene Titel bzw. Texte einzustellen, um ferner das Ausdrucken in dem erforderlichen Format einzustellen und um schliesnlich die erforderlichen Yergleichüparameter bin/, (rleichheitfjparameter einzustellen.
Dur AblauL* Hetz!; nich dann gömäaa B1Ig, 2A fort, um die OPTO-Oodienm^, die QuellaulLoto geraäöfj E1L^. '3B, einzugeben, um
ORIGINAL INSPECTED
'][) 9 8 3 0 / 0 9 6 3
farner die in einem Block 20 angedeuteten Suchkennzeiehen auszulösen und um sodann zu einem nächsten Block 22 überzugehen, um das Basis-Bezugsmodul in der Datei AB zu ermitteln. Der Ablauf verzweigt sich zu der in Pig. 2E dargestellten QPOiI-Cadierung· Das in Pig. 2E dargestellte Ablaufdiagramm zeigt die Schritte der Wiederbereitstellung einer Aufzeichnung aus der AB-Datei und der Einspeicherung dieser Aufzeichnungen in dem ersten Pufferregister. Wenn das Pufferregister voll ist, kehrt der Ablauf nach dem Plussdiagramm gemäss Pig. 2A zu dem-' nächsten Block 24 zurück, gemäss dem die abgeänderte Aufzeichnung aus der Datei GP abgeholt wird. Das in Pig. 2E dargestellte Plussdiagramm wird weiter unten noch näher beschrieben werden.
Von dem Block 24 aus erfolgt eine Verzweigung zu der QPT2-Codierung hin, wie dies in Pig* 2P gezeigt ist. Das Plussdiagramm gemäss Pig. 2P zeigt die Schritte, die zur Wiederbereitstellung des der abgeänderten Passung entsprechenden Moduls oder eines Mzeichnungscodes auf der Datei GP erforderlich sind, sowie die Schritte zur Übertragung der Information zu einem zweiten Pufferregister hin. Der Ablauf erfährt eine Verzweigung von dem in Pig. 2P dargestellten Ablauf zurück zu dem in Pig. 2A dargestellten Ablauf, wenn das zweite Pufferregister mit der abgeänderten Programminformation gefüllt ist. Der in Pig. 2P bezüglich der Wiederbereitstellung der Information aus der Datei GP und bezüglich des Ladens des zweiten Pufferregisters dargestellte Ablauf wird weiter unten noch näher beschrieben werden.
Bezugnehmend auf Pig. 2Δ sei bemerkt, dass ein in dem Pluasdiagramm dargestellter Block 26 zeigt, dass sämtliche Zeiger ausgelöst, d.h. voreingestellt werden. Das Vergleichrprogramm benutzt eine Vielzahl von Zeigern, um den Portschritt und Zustand, des Vergleichs zu verfolgen, wenn das Vergleicherprogramm mit Hilfe der Dateiangaben anläuft. Ein "Zeiger" ist ein Speicherplatz, auf den symbolisch Bezug genommen ist und in welchem
ORIGINAL INSPECTED 309830/0963' "; ;
die Adresse einer bestimmten Dateianweisung in dem Arbeitspufferbereich gespeichert ist. Der Zeiger wird dazu herangezogen, eine Erinnerung an den Adressenspeicherplatz und eine Identifizierung des betreffenden Adressenspeicherplatzes in dem Pufferregister zu liefern, der auf einen bestimmten Speicherplatz hinzeigt, welcher für eine zukünftige Bezugnahme in dem Programm gekennzeichnet werden muss.
Der nächste Block 28 in dem Plussdiagramm gemäss Pig. 2A zeigt, dass die ersten beiden Zeilen jedes Moduls ausgedruckt werden. Diese ersten beiden Zeilen werden ausgedruckt, um dem Operator eine Unterstützung dahingehend zu liefern, dass er sicher ist, dass die richtigen Module verglichen werden, und dass das Vergleichsprogramm bereit ist. Der Ablauf wird dann zu dem Quellencode 2.31 fortgeführt, welcher in Pig. 2B fortgesetzt ist.
Im Hinblick auf Pig· 2B sei bemerkt, dass weitere Organisationsfunktionen ausgeführt werden. Diese Organisationsfunktionen sind erforderlich, nachdem das Modul festgelegt und in die Arbeitspuffer geladen worden ist. Demgemäss zeigt ein Block 30, dass die Änderungsnummer erhöht wird. Der Ablauf gelangt dann zu einem nächsten Block 32 hin, gemäss dem die nächste Zeile ausgedruckt wird. Der Ablauf wird dann fortgeführt zu einem Entscheidungsblock 34 hin, gemäss dem das Ende des Puffers geprüft wird, Gemäss dem Entscheidungsblock 34 wird eine Überprüfung vorgenommen, um festzustellen, ob sämtliche gerade in den Pufferregistern befindlichen Zeilen geprüft worden sind. Sind sämtliche Zeilen geprüft worden, so führt die JA-Entscheidung von dem Entscheidungsblock 34 zu einem anderen Ablauf, wie er als Code 5.0 in Pig, 2H gezeigt ist, gemäss dem die Pufferregister wieder geladen werden. Das erneute Laden der Pufferregister gemäss Pig. 2H wird später noch beschrieben werden. Im allgemeinen wird durch die geprüfte Zeile nicht ein Ende des Puffers erreicht sein, weshalb der Ablauf von dem Entschei-
ORIGJiSiAL WSPECIED 309830/0963
dungsblock 34 weiterläuft auf den EEIF-Entscheidungsweg, und zwar zu dem Code 2,35 hin, gemäss dem eine Zeile in dem Basis-Bezugsprogramm mit einer Zeile in dem Programm der abgeänderten Passung verglichen wird, wie dies im Block 36 gezeigt ist« In den Pufferregistern gemäss der bevorzugten Ausführungsform ist eine Zeile durch einen Adressenspeicherplatz in dem Puffer gegeben, und ferner kennzeichnet eine Zeile 72 Zeichen oder 12 Worte.
In dem Entseheidungsblock 38 werden 7 Worte oder 42 Zeichen einer Zeile in dem ersten Puffer mit 7 Worten derselben Zeile in dem zweiten Puffer verglichen. Wird eine Übereinstimmung bzw. Gleichheit ermittelt, so erfolgt eine Verzweigung auf den JA-Entseheidungsweg zu dem Code 2.31 und dem Block 30 zurück, woraufhin ein Umlauf in dem Plussdiagramm mit der Polge erfolgt, dass die Inderungsnummer zum Vergleich einer anderen Zeile vergrössert wird. Dieser Kreislauf setzt sieh solange fort, bis entweder das Ende des Puffers erreicht ist, wobei zu diesem Zeitpunkt der Ablauf eine solche Verzweigung erfährt, dass die Arbeitspufferregister wieder aufgefüllt werden oder bis eine · Ungleichheit bzw. IFiehtübereinstiramung ermittelt worden ist. Die Mehtübereinstimmung der 7 Worte bewirkt eine Verzweigung längs des lEIN-Entscheidungsweges des Entscheidungsblocks 38 zu dem Quellenlistencode 2.5 hin. An. dieser Stelle des dargestellten Plussdiagramms werden in einem Block 40 die Arbeltspuffer wieder aufgefüllt, um das Ungleichheits-Wort an die Oberseite des Puffers zu setzen und um irgendeine nachfolgende Information in das erste Arbeitspufferregister und das zweite Arbeitspufferregister zu setzen, bis beide Pufferregister vollständig aufgefüllt sind, Sodann geht der Ablauf zu dem Code 2.52, dem Block 40, über, gemäss dem die nächste Zeile aus der CP-Datei, dem zweiten Pufferregister, mit der Zeile in dem ersten Pifferregister geprüft wird, die nicht in dem Entscheidungsblock 18 eine Übereinstimmung bzw. G-leichheit geliefert hat»
ORIGINAL IiNiSFECTED 309830/0963
Bei dem Code 2,57 wird gemäss dem Entscheidungsblock 44 ein Vollvergleich bzw. vollständiger Vergleich sämtlicher 12 Worte vorgenommen, die eine Zeile beider Register füllen. Bei dem Enischeidungsblock 40 wird das die Information aus der CF-Datei enthaltende zweite Pufferregister zeilenweise mit der Nichtübereinstimmungszeile in dem zweiten PtCferregister geprüft. Wird eine Übereinstimmung ermittelt, was bedeutet, dass eine Informationszeile zu der abgeänderten Datei hinzugefügt worden ist, so verzweigt sieh der Ablauf von dem Entscheidungsblock über die JA-Entscheidungsleitung zu dem Code 2.76 gemäss Fig. 2C hin. Wird eine vollständige Übereinstimmung bezüglich der 12 Worte der nächsten Zeile nicht ermittelt, nachdem das die CP-Datei enthaltende Pufferregister um eine Zeile weitergerückt worden ist, so wird längs des NEIN-Entscheidungsweges von dem Entscheidungsblock 44 aus zu dem Code 2.53 gemäss Fig. 2C übergegangen.
Gemäss Fig. 20 werden der Code 2.53 und der anschliessende Ablauf auf das Vorliegen einer Übereinstimmung bzw. Gleichheit zwischen der Ungleichheits-Zeile aus dem ersten Arbeitsregister und jeder Zeile in dem zweiten Arbeitsregister überprüft. Stellt diese Zeile nicht das Ende des Puffes dar, so erfolgt eine Verzweigung des Iflussablaufs längs des NEIN-Entseheidungsweges eines Entscheidungsblocks 46 zu dem Code 2.52 gemäss Fig. 2B hin. Bezugnehmend auf Fig. 2B sei bemerkt, dass der an dem Code 2,52 bei dem Block 42 beginnende Ablauf dazu führt, dass die nächste Zeile in dem zweiten Pufferregister überprüft wird, indem auf die nächste Zeile In dem zweiten Pufferregister vorgerückt wird. Wird eine vollständige Übereinstimmung in dem Entscheidungsblock 44 noch nicht ermittelt, so erfolgt eine Ablauf verζ v/eigung längs des NEIN-Entscheidugsweges, woraufhin wieder das Vorliegen eines Endes des Puffers in dem Entscheidungsblock 46 geprüft wird. Ist ein Ende des Puff eis noch nicht erreicht, so wird der Kreislauf wieder fortgesetzt, indem auf die nächste Zeile in dem zweiten Arbeitsregister vorgerückt wird. Der Kreislauf setzt sich dann solange fort, bis entweder eine
309830/0963
Übereinstimmung ermittelt worden ist, was zur Polge hat, dass eine Verzweigung längs des JA-Entscheidungsweges des Entsoheidungsblocks 44 zu dem Code 2.76 hin erfolgt, und zwar zur Aus- ' iihrung eines dritten Vergleichs, oder Ms das Ende des Puffers erreicht ist, wobei der Ablauf längs des JA-Entscheidungsweges des Entscheidungsblocks 46 gemäss Pig. 2C zu dem Code 2.8 hingeht, gemäss dem das Datei-AB-Arbeitsregister um eine Zeile vorgerückt wird, wie dies in einem Block 48 gezeigt ist, und
gemäss dem der Zeigen/auf das CP-Datei-Pufferregister, das ist das zweite. Pufferregister, auf'die Stelle zurückgestellt wird, an der die Nichtübereinstimmung ermittelt worden ist. Auf diese : Weise erfolgt ein zeilenweis_er Vergleich jeder Zeile in dem Basis-Register~Arbeitspuffer mit jeder Zeile des modifisisrtenV Programms, welches in dem Pufferregister gespeichert ist« Dieser Ablauf setzt sich solange fort, bis das Ende des AB-Pufferregisters erreicht ist. Zu diesem Zeitpunkt geht der Ablauf über den JA-Entscheidungsweg .eines Entscheidungsblocks 50 weiter, wobei der. erste Arbeitspuffer und der zweite Arbeitspuffer in dem Code-;5.0-Ablauf gemäss Pig. .2.G-. wieder aufgefüllt werden. Haehdem beide Pufferregister wieder aufgefüllt worden sind, erfolgt eine Ablaufverzweigung zu dem Code 2.35 gemäss Pig, 2B zurück, wodurch mit dem .zeilenweisen Vergleich der ,beiden Pufferregisterinhalte fortgefahren wird, um eine weitere Ungleichheit zu ermitteln.
Im Hinblick auf Fig. 20 sei bemerkt, dass in dem Fäll, dass das Ende des AB-Puffers nicht erreicht ist, die IIEIN-Entscheidung eine Verzv/eigung des Ablaufs zu dem Code 2,57 und dem Entscheidungsblock 44 gemäss Fig. 2B bewirkt, wodurch der Vergleich fortgesetzt wird, bis sämtliche Zeilen, in der AB-Datei geprüft sind. . ;. ...
Im Hinblick auf Pig. 2C sei noch bemerkt, dass der Code 2.76 einen weiteren vollständigen ZeilenvergleichVjäas heisot einen
ORIGINAL INSPECTED 309 8 30/0963
Vergleich von 72 Zeichen, mit sich bringt, wie dies in einen Entscheidungsblcck 51 angedeutet ist. Eine Übereinstimmung bzw. Gleichheit führt zu einer Verzweigung von dem JA-Entscheidungsweg des Entscheidungsblocks 51, derzufolge eine Überprüfung auf Gleichheit der nächsten vollständigen Zeile in einem Entseheidungsbloek 52 vorgenommen wird. Ist wieder eine weitere Übereinstimmung bzw. Gleichheit vorhanden, was bedeutet, dass zv/ei vollständige Zeilen nacheinander verglichen werden, so hat das Programm eine Änderung ermittelt, und der Ablauf setzt sich zu einem Block 54 fort, gemäss dem die Anzahl der Zeilen, die in jeder Datei geändert waren, festgehalten wird. Der Ablauf setzt sich zu einem STMBO-Code (siehe Fig. 3D) geraäss einem Entscheidungsblock 56 fort, bei dem entsprechende Symbole geprüft werden. In diesem Abschnitt des Ablaufs werden die Inhalte des ersten Arbeitspuffers und des zweiten Arbeitspuffers verglichen, um die nächste übereinstimmende symbolische Adresse festzulegen. Werden gleiche Symbole nicht ermittelt, was bedeutet, dass in dem Speicher kein identisches Symbol gespeichert ist, so heisst dies, dass keine Gleichheit in der Information vorliegt, die in den Arbeitspuffera gespeichert ist. Der Ablauf eifährt eine Verzweigung auf dem HEIN-Entscheidungsweg des Entscheidungsblocks 56 52U dem Code 6.0 hin, wodurch der Ablauf fortfährt, die Arten der ermittelten Ungleichheiten bzw. fehlenden Übereinstimmungen au kennzeichnen.
Sind jedoch gleiche Symbole ermittelt worden, so erfolgt eine Ablaufverzweigung längs des JA-Entscheidungsweges des Entscheidungsblocks 56, wodurch die Arbeitspuffer in Bückwärtsrichtung bearbeitet werden, um wieder die Ungleichheit bzw. fehlende Übereinstimmung zu ke~!zeichnen. Dies wird mit Hilfe eines Entscheidungsblockes 58 ausgeführt, durch den die vorhergehenden Zellen verglichen werden. Stimmen diese Zeilen überein, so erfolgt eine Ablaufverzweigung längs der JA-Entscheidungsleitung des Entscheidungsblocks 58 zu einem Block 60 hin, gemäss dem ein Zurückgehen auf die nächste vorhergehende Zeile
309830/0963
und die Rückkehr zu dem Ablauf erfolgt, um die vorhergehenden Zeilen wieder zu prüfen. Dieser Ablauf setzt sich in einem Umlauf weg von dem Entscheidungsblock 58 zu dem Block 60 fort und kehrt schliesslich zurück,, bis eine Nichtübereinstimmung ermittelt worden ist. Ist eine Nichtübereinstimmung bzw. eine Ungleichheit ermittelt worden, wodurch die zuvor entdeckte Untgfeichheit bzw. Nichtübereinstimmung gekennzeichnet wird, so werden die Gesamtzeilen der Nichtübereinstimmung bzw. eines fehlenden Vergleichs berechnet, wie dies im Block 62 angedeutet ist.
Der Ablauf setzt sich dann zu dem nächsten Block 64 hin fort, bei dem die Ergebnisse der verschiedenen Vergleichsmethoden verglichen werden. Der nächste Block in dem Flussdiagramm, das ist der Block 66, bewirkt das Setzen des Zeigers auf der Grundlage des Vergleichs mit der geringsten Änderung. Dabei handelt es sich um den Teil des Vergleichsablaufs, der positiv den Änderungsbereich kennzeichnet. Die Zeiger werden eingestellt, um die Zeile zu kennzeichnen, bei der die erste Nichtübereinstimmung ermittelt worden ist, und um die Zeile zu kennzeichnen, an der die Nichtübereinstimmung bzw. Ungleichheit endet. Durch Ausführen der Vorwärts- und der Rückwärtsvergleiche werden sämtliche Änderungen festgestellt.
Der Ablauf wird dann gemäss Fig. 20 zu dem Quellencode 6.0 (Fig. 3F) fortgeführt, um die Zeiger einzustellen, und zu dem Oode 6.01 gemäss Fig. 2D, um die Art der Modifikation zu kennzeichnen, die bezüglich des Basis-Bezugsprogramms ausgeführt worden ist.
Im folgenden sei auf Fig. 2D Bezug genommen. Nachdem die Zeiger eingestellt worden sind, um den Beginn und das Ende des Bereichs der Nichtübereinstimmung in den beiden Dateien jeweils zu markieren, wird der Ablauf zu dem Entscheidungsblock 70 fortgeführt, gemäss dem die Änderungen im Hinblick auf Weglassungen geprüft werden. Weglassungen bzw. Streichungen sind dann aufge-
30983 0V0963
treten, wenn sämtliche Zeilen in dem zweiten Pufferregister mit irgendeiner Zeile in dem ersten Pufferregister übereinstimmen» Sind Streichungen vorgenommen worden, so erfolgt ein Übergang über den JA-Entscheidungsweg des Entscheidungsblockes 70 zu einem Entscheidungsblock 72 hin, gemäas dem die Änderungen ' hinsichtlich Hinzufügungen geprüft werden. Sind keine Hinzufügungen vorgenommen worden, so erfolgt eine Ablaufverzweigung über den NEIK-Entscheidungsweg des Blockes 72, wodurch der AB-Dateizeiger derart gesetzt wird, dass die Streichung festgestellt wird, wie dies der Block 73 erkennen lässt. Der Ablauf setzt sich dann zu dem Code 6.05 fort, wodurch die Streichungen gemäss dem Block 75 ausgedruckt werden.
Wenn Hinzufügungen bzw. Erweiterungen vorgenommen worden sind, geht der Ablauf über den JA-Entscheidungsweg weiter, und das Programm erfährt eine Verzweigung zu dem Code 6.02 gemäss dem Entscheidungsblock 74, wodurch eine Doppelprüfung dahingehend erfolgt, dass die nächste Zeile von Zeichen übereingestimmt hat. In dem lall, dass Hinzufügungen bzw. Erweiterungen vorhanden waren, sollte eine weiter unten liegende Zeile mit dieser ersten Ifichtübereinstimmungs-Zeile in dem Basis-Bezugsprogramm übereinstimmen. Sind mehr als ein Quellencode zu dem Basis-Bezugsprogramm hinzugefügt worden, so würden diese ersten 12 Zeichen nicht übereinstimmen, und es würde keine Verzweigung von dem Entscheidungsblock 74 zu einem weiteren Block 76 erfolgen, gemäss dem die nächste Zeile überprüft wird, um festzustellen, ob möglicherweise zv/ei Zeilen hinzugefügt worden sind. Dieser Umlauf bzw. Kreislauf wird fortgesetzt, um die Anzahl der hinzugefügten Zeilen zu bestimmen. Yfenn die Übereinstimmung der ersten 12 Zeichen ermittelt worden ist, erfolgt ein Übergang über den JA-Entscheidungsweg des Entscheidungsblocks 74 zu dem Code 6.06. Dieser Code führt die Peststellung der Art der Änderung fort, die zwischen dem Basis-Bezugsprogramm und der modifizierten F-ssung vorgenommen worden war,
ORIGINAL INSPECTED 309830/0983
Geraäss dem Code 6.06 - bei dem Block 78 werden die ersten beiden V/orte der Nichtübereinstimmung verglichen um zu prüfen, ob möglicherweise die Modifikation gleicher Codezeilen stattgefunden hat. Wenn dies tatsächlich stattgefunden hat, erfolgt ein Übergang über die JA-Entscheidungsleitung von dem Entscheidungsblock 80, der den Vergleich einer gesamten Zeile' betrifft. Ein in dem Weg von dem JA-Entscheidungsablauf liegender Block 82 lässt erkennen, dass die vorhergehenden Streichungen und Hinzufügungen bzw. Erweiterungen ausgedruckt sind. Ferner ist, wie dies im Block 84 angegeben ist, die verglichene Zeile ausgedruckt worden. Diese Zeile wird ausgedruckt, um die Änderung zu beschreiben. Der Ablauf setzt sich mit einem Block 86 fort, gemäss dem die Zeiger auf die nächste Zeile fortgeschaltet werden. Wenn die gesamten Zeilen nicht übereinstimmen und wenn der HEHT-Entscheidungsweg von dem Entscheidungsblock 80 gewählt wird, was bedeutet, dass eine Modifikation stattgefunden hat, so werden die vorhergehenden Stsichungen und Hinzufügungen ausgedruckt, wie dies im Block 88 angedeutet ist. Ferner wird, wie dies im Block 90 angedeutet ist, die modifizierte Zeile ausgedruckt. Der Ablauf gelangt dann zu dem Block 86 hin, gemäss dem die Zeiger auf die nächste Zeile erhöht bzw, weitergeschaltet werden.
Auf das Erreichen des Blockes 86 hin wird durch den fortgesetzten Ablauf geprüft, ob der Vergleich bezüglich der AB-Datei und der CF-Datei abgeschlossen worden ist. Ein Besieh in den Pufferregistern ist verarbeitet worden, und nunmehr wird das Programm fortgesetzt, um die übrigen Zeilen in dem Pufferregister und dem restlichen Teil der AB-Datei und OF-Datei bezüglich des Vorliegens von mehreren Modifikationen zu überprüfen .
Deshalb geht der Ablauf von dem Block 86 weiter, um die AB-Datei in dem Entscheidungsblock 92 zu prüfen und auf den Abschluss dieses Vorgangs hin den Zeiger auf das erste Puffer-
309 830/09 63
23Q2753
register gemäss dem Block 94 weiterzuschalten· Der nächste Schritt in dem Fluss bzw. Ablauf besteht darin, die GP-Datei in dem Entscheidungsblock 96 zu prüfen und in dem Jail, dass sämtliche Quellencodes überprüft worden sind, die Zeiger in dem zweiten Pufferregister gemäss dem Block 98 weiterzuschalten bzw. zu vergrössern. Sämtliche Zeiger sind, wie dies im Block gezeigt ist, eingestellt, und der Ablauf erfährt eine Verzweigung zu der zweiten Zeile des Quellencodes 6.05 hin, wodurch sämtliche hiermit zusammenhängende Zeiger zurückgestellt werden, wie dies im Block 102 dargestellt ist. Der Vergleich der Quellencodes im Basis-Bezugsmodul mit den Quellencodes in dem Modul der abgeänderten Passung wird fortgeführt. In einem Entscheidungsblock 104 werden die nächsten Zeilen in dem ersten Pufferregister mit den Zeilen in dem zweiten Pufferregister verglichen; ist eine Gleichheit vorhanden, so erfährt der Ablauf eine Verzweigung zu dem Code 2.35 gemäss Fig. 2B, wodurch in den Kreislauf zum Überprüfen aufeinanderfolgender Zeilen eingetreten wird. Der Ablauf erfährt dann eine Verzweigung über den NEIN-Entscheidungsweg des Entscheidungsblockes 104 zu dem Code 2.52 gemäss Pig. 2B hin, falls die nächsten Zeilen nicht gleich sind. Die NEIF-Entscheidung legt fest, dass eine unmittelbare Nichtübereinstimmung ermittelt worden ist; der Ablauf gelangt dann zu dem Teil des Vergleichsprogramras, der die Grosse der Nichtübereinstimmungsteile bestimmt.
Damit ist in dem Plussdiagramm der Beschreibung des Vergleicherprogramms gemäss der bevorzugten Ausführungsform der Vergleich des Quellencodes hauptsächlich auf einer Bit-Basis ausgeführt. Die ersten beiden Anweisungen der Datei werden der Ausgabedatei für ein Ausdrucken bereitgestellt, und zwar unabhängig von den Vergleichsergebnissen oder der gewählten Druckangabe· Hierdurch wird die Identifikation bzw. Kennzeichnung des Moduls unterstützt, und zwar sowohl des Basis-Bezugsmoduls als auch der abgeänderten Passung, sowie der Abänderungsdaten und der Ab-
309830/0983
änderungsebene. Die Vergleichslogik, die mit der dritten Anweisung jeder der beiden Dateien beginnt, prüft auf eine gleiche Anweisung in der modifizierten Datei. Dabei werden lediglich, die ersten 42 Zeichen in jeder Anweisung an dieser Stelle verglichen. Die Anzahl der verglichenen Zeichen kann eingestellt werden, indem ein Befehl in dem ursprünglichen Yergleichsbereich geändert wird.
Die Ermittlung einer Nichtübereinstimmung bewirkt einen übergang auf ein Suehunterprogramm. Die Arbeitsbereiche werden wieder aufgefüllt, wobei mit der Zeile in dem Pufferregister begonnen wird, die keine Übereinstimmung bzw. Gleichheit geliefert hat. Da 146 Zeilen in den Pufferregistern bei der bevorzugten Ausführungsform gespeichert werden können, stehen 146 Zeilen in jeder Datei für den Vergleich zur Verfügung. Die Zeiger sind so eingestellt, dass sie auf die erste Datei in jeder der Aufzeichnungen hinzeigen, und die Suche wird bezüglich einer Gleichheit der Zeilen in den beiden Dateien begonnen. Die Anweisungen der Basis-Bezugsdatei werden dann mit jeder Anweisung der abgeänderten Datei nacheinander verglichen, bis eine Gleichheit bzw. Übereinstimmung ermittelt worden ist. Kann eine Gleichheit bzw. Übereinstimmung nicht festgestellt werden, so wird die nächste Anweisung in dem das Basis-Bezugsprogramm enthaltenden Pufferregister einzeln mit sämtlichen Zeilen des modifizierten Programms in dem Pufferregister verglichen. Eann für keine der 146 Anweisungen in dem Basis-Bezugspufferregister eine Übereinstimmung mit einer Anweisung der in dem Pufferregister befindlichen modifizierten Information festgestellt werden, so wird der Vergleich beendet.
Ist ein erfolgreicher Vergleich bzw. eine Übereinstimmung bei dem Suchunterprogramm durchgeführt bzw. festgestellt worden, so werden die Zeiger so eingestellt, dass jene Anweisungen markiert sind. Das Vergleicherprogramm fährt dann fort, um eine Bestätigung dafür zur Verfügung zu haben, dass es tat-
309830/096 3
sächlich die Stelle in den beiden Dateien gefunden hat, die gleich 3ind. Die beiden Anweisungen, die auf einen kleinen Zeichenvergleich hin als gleich ermittelt worden waren, werden erneut geprüft, um die Gleichheit im Hinblick auf eine vollständige Zeichenüberprüfung zu bestätigen. Wird eine Übereinstimmung bzw. Gleichheit festgestellt, so wird die nächste Anweisung in der JTöLge von Anweisungen wieder im Hinblick auf eine vollständige Zeichenüberprüfung verglichen. Wenn irgendein Teil dies? Prüfung nicht durchlaufen wird, kehrt das Vergleiche'rprograrara zu dem Suchunterprogramm zurück. Ist die Bestätigung erfolgreich durchgeführt v/orden, so hat das Vergleicherprogramm zwei aufeinanderfolgende Anweisungen in dem Pufferregister gefunden, welches die modifizierte Fassung des Programms enthält. Das Yergleicherprogramm geht dann über zu der Symbolprüfung. Bei diesem Unterprogramm stellt der Vergleicher durch Prüfung fest, dass er noch in demselben Bereich beider .Dateien ist, und zwar durch Prüfen der symbolischen Adresse. Diese Prüfung wird dadurch ausgeführt, dass die Quellenanweisungen gesucht werden, bis in der AB-Datei eine symbolische Adresse gefunden worden ist, die auch in der CF-Datei vorhanden ist. Eine Reihe von Zeigern «arkiert die Stelle dieser identischen Syebole. Das Vergleicherprograram fährt dann fort, ua die Anweisungen zu prüfen, di· den identischen eyinboli sehen Adressen vorangehen, und zwar solange, bis wieder eins Ungleichheit bzw. Nichtübereinstimmung festgestellt worden ist· Die Zeiger werden auf die Anweisung eingestellt, die der symbolischen Adresse vorangeht, welche keine Übereinstimmung bzw. Gleichheit gezeigt hat·
Nunmehr sind zwei Prüfungen durchgeführt worden; die erste Prüfung ist in dem Suchunterprogramm ausgeführt worden, und -die zv/eite Prüfung ist in dem symbolischen Prüfunterprogramtn ausgeführt worden. Jeder Test bzw. jede Prüfung führte zu der Bestimmung eines Änderungsbereichs. Bei der ersten Prüfung ist
309830/0963
der Ä'nderungsbereich durch eine Anzahl von Anweisungen in der AB-Datei und der CF-Datei gegeben, wobei diese Anweisungen der letzten Anweisung folgen, die für das Aungabeprogramm übertragen worden ist (AB1 und CF1), die jedoch der ersten Anweisung der beiden Anweisungen vorangehen, welche gleich sind (AB2 und 01*2). Die Anzahl der so in der AB-Datei festgelegten Anweisungen (AB2-AB1 = AB3) und die Anzahl der so in der CF-Datei festgelegten Anweisungen (O3?2 - Ci1I = GF3) machen den ersten A'nderungsprüfbereichT1 aus, wobei 11 - AB3 + CE1S gilt. Der durch den zweiten Test gelieferte Inderungsbereich ist durch diejenigen Anweisungen in der AB-Datei und der CF-Datei (ABI. und CI1I) festgelegt, die mit der nächsten zu dem Ausgabeprogramm zu übertragenden Anweisung beginnen und die mit denjenigen Anweisungen in den AB-Dateien (AB4) und den CF-Dateien (Ci^) enden, die entsprechenden Symbolen vorangehen, jedoch nicht gleich sind. Die Anzahl der so in der AB-Datei festgelegten Anweisungen (AB4 - AB1 = AB5) und die Anzahl der so in der CF-Datei festgelegten Anweisungen (CP4 - G3M = G$5) machen den Änderungsbereich 52 für den zweiten fest aus, wobei T2 = AB5 + CS"5 gilt.
Das VergleieherprograetD wählt die Ergebnisse der kleinsten G-rösse aus, indem die Gleichung R = Ϊ2 - 3*1 geprüft wird. Ist R positiv, so wird 'die erste Prüfung als di· Prüfung akzeptiert, die die Ergebnisse der kleinsten Grosse liefert· Ist R jedoch negativ» so wird die zweite Prüfung bzw. der zweite Test als derjenige Test akzeptiert, der eine Differenz geringster Grosse liefert. Die Zeiger werden dengeaäss eingestellt, und der Vergleicher springt auf das Ausgabeunterprogramm über.
Das Ausgabeunterprogramm prüft die Anweisungen in dem Inderungsbereich und sucht eine Übereinstimmung bzw. Gleichheit der ersten beiden Worte. Wird eine Gleichheit ermittelt, so wird ein Zeiger auf diese Anweisung eingestellt. Sämtliche vorangehenden Anweisungen in dem AB-Datei-Anderungsbereich werden als Streichungen markiert, und sämtliche -vorangehenden Anweisungen in der CF-Datei werden als Hinzufügungen bzw. Erweite-
OBiGiNAL INSPECTED 309830/09S3
-. 27 -
rungen markiert. Auf die Einführung des Druekprogramms wird der Änderungsbereich ausgedruckt, während andererseits der betreffende Bereich als durch Streichungen oder Hinzufügungen gegeben markiert wird. Ist eine ÜbereinStimmung bezüglich der ersten beiden Worte festgestellt worden, so wird die Anweisung aus der AB-Datei und CP-Datei als eine Modifikation ausgedruckt. Das Ausgabe-Unterprogramm setzt die Verarbeitung der Anweisungen auf diese ¥eise fort, bis der Änderungsbereich in der AB-Datei und CP-Datei ausgedruckt worden ist. Das Vergleicherprogramm kehrt dann zu dem ursprünglichen Vergleicherunterprogramm zurück, bis die nächste Ungleichheit festgestellt worden ist, wobei das Verfahren wiederholt wird. Dieser Vorgang setzt sich solange fort, bis eine Ende-Anweisung in jeder Datei festgestellt worden ist· Dies stellt die einzige genaue Anweisung dar, die erwartet wird. Wenn die Ende-Zeichen vorhanden sind, zeigt dies das Ende von rechtmässigen Daten in der betreffenden Datei an; jegliche zusätzlichen Daten bleiben unberücksicht. Der Vergleicher prüft dann das nächste Modul in der Eingabedatei, wobei in dem Pail, dass dieser Modul in den zu vergleichenden Bereich hineinfällt, die Verarbeitung fortgeführt wird. Pällt das betreffende Modul nicht in den zu vergleichenden Bereich, so werden die Dateien geschlossen,und das Vergleieherprogranrm wird beendet»
Ein Unterprogramm, was noch nicht volls&dig erläutert worden ist, betrifft die Verarbeitung der Daten aus der Datei AB für das erste Pufferregister, wie dies in Pig« 2E gezeigt ist. Jeweils dann, wenn das Vergleieherprograram eine Verzweigung zu der AB-Datei vorzunehmen wünscht, um mehr Information aue der AB-Datei für die Eingabe in das erste Pufferregister herauszuführen, wird das in Pig. 2E gezeigte Unterprogramm eingegeben. Dieses Unterprogramm beginnt dadurch, dass der Quellenlistencode OPH (siehe Pig. 3A) eingeführt wird, wobei ein Block 106 zeigt, dass der Ablauf dadurch beginnt, dasβ eine Aufzeichnung aus der Datei gelesen wird. Der Ablauf gelangt dann weiter zu einem Entsc.heidungsblock 108 hin, gemäss dem geprüft wird, ob die Aufzeichnung eine BCD-Aufzelehnung, daa ist eine binäroo-
309830/0963
dierte Dezimalaufzeichnung, ist. Handelt es sich, bei der betreffenden Aufzeichnung um eine BCD-Aufzeichnung, so gelangt nian über den JA-Entscheidungsweg weiter, um die Codierung der BCD-Aufzeichnung zu prüfen. Die anfängliche Suche des jeweiligen Moduls wird mittels einer mit den anderen Modulen zu vergleichenden Steuerkarte ausgeführt. Die Steuerkarte ist eine BCD-Aufzeichnung. Wenn somit die Parameter ausgewählt waren, wird eine der Einrichtunjpn, die das erforderliche Modul kennzeichnen, die Steuerkarte zu prüfen haben, um das Modul in der AB-Datei zu bestimmen. Ist das Modul noch nicht gefunden worden, so geht der Ablauf über einenlöDIli-Entseheidungsweg von dem BCD-Aufzeichnungs-Entscheidungsblock 108 zu einem weiteren Entscheidungsblock 110 über. In dem Entscheidungsblock 110 wird die 3?rage beantwortet, ob das Übertragungsgatter geöffnet ist oder nicht« Das übertragungs- bzw. Durchlaufgatter ist dabei dann geöffnet, wenn das richtige Modul in der Datei festgelegt ist. Ist die Datei noch nicht gefunden worden und ist die Aufzeichnung keine BCD-Aufzeichnung, so gelangt der Ablauf über den ITEIN-Entscheidungsweg von dem BCD-Aufzeiehnungs-Entscheidungsblock 108 zu dem das Offensein des Übertragungsgatters betreffenden Entscheidungsbloek 110 hin, bei dem die JHEIIT-Entscheidung erneut dazu herangezogen wird, eine weitere Aufzeichnung zu lesen. Dieser Kreislauf wird solange fortgeführt, bis eine Steuerkarte aufgenommen worden ist, wobei zu diesem Zeitpunkt die JA-Entscheidung des Entscheidungsblocks 108 für einen Steuerentscheidungsblock 112 gewählt wird. * ■ *
Ist diese BCD-Karte nicht eine Steuerkarte, so gelangt der Ablauf über den ME^li-Entscheidungsweg von dem Steuerkarten-Entscheidungsblock Ψ\2 weiter, wodurch eine weitere Aufzeichnung zur Prüfung der Steuerkarte gelesen wird. Handelt es sich bei dieser -.BCD-Aufzeichnung tatsächlich um eine Steuerkarte, so wird die JA-Entscheidung zu einem Entscheidungsblock 114 hingeführt, gemäss dem das Etiüe einer Aufbereitung geprüft wird. Die das Ende einer Aufbereitung betreffende Karte ist die letzte Karte in der Daireiv wodurch das Vergleicherprogramm
0RfQ'NAL INSPECTED 309 8 30/0963' -
angehalten wird, wenn sämtliche Vorgänge beendet sind. Da nach dem richtigen Modul gesucht wird, wird die BEIM-Entscheidung des Entscheidungsblocks 114 zu einem weiteren Entscheidungsblock 116 geführt, gemäss dem der Start-ID-Code von der Steuerkarte mit den Parametern verglichen wird, die zu Beginn des Programms festgelegt worden sind. Die Gleichheit sentscheidungs-Zeile wird dabei in dem Pail aufgenommen, dass die erhaltene Steuerkarte das richtige Modul darstellt. Zeigt die Steuerkarte jedoch, dass das genannte Modul kleiner ist als das benötigte Modul, so kehrt das Programm in den Zustand zurück, in dem eine weitere Aufzeichnung gelesen wird, da nämlich das richtige Modul noch nicht erreicht worden ist. Da den Modulen im allgemeinen ein alphabetischer Name gegeben ist, bedeutet der Begriff, dass das erwähnte Modul kleiner ist als das geforderte Modul, dass das benannte Modul einen ffamen hat, der weiter unten in der alphabetischen Reihenfolge aufgeführt ist.
Wenn das benötigte Modul ID jedoch grosser ist als das Start-ID, das heisst, dass es scheint, dass das richtige Modul durchgelaufen ist, wird der Ablauf dahingehend fortgesetzt, dass die Steuerkarte ID mit dem die Entscheidcng über das Ende von ID betreffenden· Parameter in einem Entscheidungsblock 118 verglichen wird· Diese Verzweigung würde in dem Pail auftreten, dass das richtige Modul aus irgendeinem Grund durchgelassen worden ist oder in unrichtiger Weise eingeordnet worden ist oder in der Datei fehlt. Ist daher die Steuerkarte ID grosser als das Ende ID, so wird die "grosser alsn-Entscheidungszeile aus dem Entscheidungsblock 118 dazu herangezogen, zum Lesen einer weiteren Aufzeichnung zurückzukehren, um durch Prüfung festzustellen, ob möglicherweise eine fehlerhafte Eintragung vorgelegen hat. Stimmt die geprüfte Steuerkarte ID mit dem die Kennzeichnung beendenden Parameter überein oder ist die betreffende Steuerkarte kleiner als der betreffende Parameter, so wird durch Fortsetzung des Ablaufs das Öbertragungsgatter geöffnet, wie dies im Block 120 gezeigt ist. Dadurch ist der
309830/0963
Vergleich, ermöglicht. Der nächste Block 122 besteht darin, die Zähler, zu löschen und zum lesen einer weiteren Aufzeichnung zurückzukehren,wie dies in dem Block 106. veranschaulicht ist.
Die nächste Aufzeichnung wird möglicherweise noch nicht eine BCD-Aufzeichnung sein, weshalb über den HEIIT-Entseheidungsweg : des Entseheiäungsbloeks 108 zu dem nächsten Entscheidungsblock 110 übergegangen wird, bei dem die JA-Entseheidung gewählt wird, da nämlich das Übertragungsgatter nunmehr off en ist· Der Ablauf wird dann fortgesetzt, um die Aufzeichnungen zu dem Arbeitspuffer zu übertragen, wie dies in dem Block 124 gezeigt ist, und um in einen Entscheiäungsblock 126 einzutreten, gemäss dem das Ende der Aufzeichnung geprüft wird, üiegt das Ende der Aufzeichnung vor, so wird das Aufzeichnungsendekennzeichen gesetzt, wie dies in dem Block 128 veranschaulicht ist, und das Programm erfährt eine Verzweigung, derzufolge zu dem Ablauf, zurückgekehrt wird, der das Auffüllen des ersten Arbeitspufferregisters erfordert, liegt ein Aufzeichnungsende nicht vor, so wird der Ablauf über den HEIF-Entscheidungsweg vom Entscheidungsblock 126 zu einem weiteren Entscheidungsblock 130 geführt, gemäss dem die nächste Prüfentscheidung bezüglich eines vollen Puffers durchgeführt wird· Ist der Puffer nicht voll, so lautet die Entscheidung HEIM, wodurch eine weitere Aufzeichnung gelesen und eine weitere Einspeicherung in dem ersten Pufferregister vorgenommen wird. Ist jedoch auf diese Aufzeichnung hin das Pufferregister nunmehr gefüllt, so lautet die Entscheidung von dem Entscheidungsblock 130 JA, und das Programm erfährt eine solche Verzweigung, dass zu dem Ablauf zurückgekehrt wird, der das Auffüllen des ersten Pufferregisters angefordert hai
Der die Verarbeitung bzw· Weiterleitung von Daten aus einer CF-Datei in das zweite Pufferregister veranschaulichende Ablauf ist in fig, 2]? gezeigt· Das Einlesen von Aufzeichnungen aus der Clf-Datei, bei der es sich um die das modifizierte Programm enthaltende Datei handeltj führt dazu, dass die betreffenden
3098 30/0983
Aufzeichnungen zu dem zweiten Pufferregister in derselben Weise übertragen v/erden j wie dies in Fig. 2E erläutert worden ist· Die erste Entscheidung gemäss dem Entscheidungsbloek 132 läuft auf die Prüfung hinaus, ob das gesamte Modul aus der CF-Datei gelöscht worden ist« Ist das gesamte Modul gelöscht worden, was bedeutet, dass ein Vergleich überhaupt nicht vorgenommen worden ist, so lautet die Entscheidung JA von dem Entscheidungs-" block 132, wodurch der Ablauf übergeht auf die Untersuchung des Betriebsprüfungsendes und der Schliessung der Dateien und zum Programmende. Der Ablauf wird dann über den HEIH-Entscheidungsweg weitergeführt, wodurch festgelegt ist, dass das Modul nicht gelöscht worden ist« Ferner wird eine Aufzeichnung aus den CF-Dateien gelesen, wie dies in dem Block 134 veranschaulicht istyUnd ausserdem wird eine Eontrolle bezüglich einer BCD-Aufzeichnung ausgeführt, wie dies in dem Entseheidungsblock 156 veranschaulicht ist," um nämlich festzustellen, ob eine Steuerkarte erreicht worden ist und ob diese Steuerkarte das richtige Modul kennzeichnet, wi'e es in den Yergleiehsparametern festgelegt ist. Da dieser Ablauf dem Ablauf sehr ähnlich" ist, der für die übertragung der Aufzeichnungen aus den AB-Dateien in das erste Pufferregister verwendet wird, wird hierauf nicht weiter eingegangen werden.
Nachdem das richtige Modul in der CF-Datei festgelegt worden ist, erfolgt die Gleichheitsverzweigung von einem Entscheidungsblock 152 aus zu einem weiteren Block 160 hin, gemäss dem ein Kennzeichen bezüglich des festgelegten Moduls gesetzt wird, wie dies in dem Block 162 angegeben ist. Ferner wird das Übertragungsgatter für die CF-Dateien geöffnet, wie dies in dem Block 164 angegeben ist. Dies bedeutet, dass das zweite Pufferregister nunmehr bereit ist, Daten von den GF-Dateien aufzunehmen und dass der Ablauf fortfährt, die Zähler und die Kennzeichen zu löschen, wie dies der Block 166 veranschaulicht, und mit der Übertragung der Information aus den CF-Dateien zu dem zweiten Pufferregister hin zu beginnen· Dies erfolgt
OBiGlNAL INSPECTED
309 B 3 0 /0 96-3 .: .
dadurch, dass gemäss dem Block 134 eine Aufzeichnung gelesen wird, dass gemäss dem Entscheidungsblock 136 das Vorliegen einer BCD-Aufzeichnung kontrolliert wird, dass gemäss dem Entscheidungsblock 138 das offene Übertragungsgatter kontrolliert wird, dass gemäss dem Block 140 die Aufzeichnung zu dem zweiten Pufferregister übertragen wird, dass gemäss dem Block das Vorliegen eines Aufzeichnungsendes kontrolliert wird, dass ferner gemäss dem Entscheidungsblock 146 das Vorliegen eines vollen Puffers geprüft wird und dass schliesslich zu dem Ablauf zurückgekehrt wird, wenn der Puffer voll ist.
Eann in dem Entscheidungsblock 160 kein Modul innerhalb der CP-Datei ermittelt werden, der mit der AB-Datei übereinstimmt, so wird die Ungleichheitsentscheidung von dem Entscheidungsblock 160 gemäss Pig. 2G- benutzt0 Der in Pig. 2G dargestellte Ablauf zeigt die Entscheidungen, die ausgeführt werden bei der Bestimmung, ob ein Modul zu den Eingabedateien hinzugefügt ode^t' aus diesen gelöscht worden ist0 Das Modul ID wird in einem Entscheidungsblock 169 erneut einem Vergleich unterzogen, um zu bestimmen, ob Π) gleich dem Modul in der AB-Datei oder ungleich zu diesem Modul ist. liegt Gleichheit vor, so wird das Übertragungsgatter geöffnet, wie dies in dem Block 170 angegeben ist, und der Ablauf geht zu dem Code 0PT3 geraäss Pig. 2P über, nachdem die Zähler und Kennzeichen gelöscht sind, wie dies in dem Block 172 angegeben ist, Stimmen die Module ID jedoch nicht überein, so wird die Ungleichheitsentscheidung von dem Entscheidungsblock 168 zu einem weiteren Entscheidungsblock 174 hingeleitet. Das Programm ist so eingestellt, dass die Eontrolle nach der fehlenden Aufzeichnung solange fortgesetzt wird, bis das Ende des Bandes oder das Ende des Speichers erreicht ist. Das erforderliche Modul könnte ausserhalb der Reihe liegen. Ist daher die NEIH-Entscheidung von dem Entscheidungsbloek 174 abgegeben bzw. aufgenommen worden, wodurch angezeigt wird, dass das festgelegte
3 0 9 8 3 0/0963
Kennzeichen nicht gesetzt war, so wird die Suche gemäss dem Block 176 fortgesetzt, und das Programm kehrt geraäss !Pig· zu dem Code OPT3 zurück, wodurch die Suche durch die Aufzeichnungen in der CF-Datei fortgesetzt wird.
War das festgelegte Kennzeichen gesetzt, so wird die JA-Entscheidung zu einem weiteren Entscheidungsblock 178 hingeleitet, gemäss dem die gerade erhaltene Kennzeichnung "bzw. Identifizierung mit der Kennzeichnung "bzw. Identifizierung der AB-Datei geprüft wird. Ist die Datei ID in der AB-Datei grosser, so führt die JA-Entscheidung dazu, dass gemäss dem Block 180 ausgedruckt wird, dass ein Modul hinzugefügt worden ist, Ferner wird gemäss dem Block 182 das festgelegte Kennzeichen gesetzt, und ausserdem werden gemäss dem Block 172 die Zähler und Kennzeichen gelöscht. Ferner wird zu dem in Pig. 2F dargestellten Ablauf an der Stelle des Codes OPI3 zurückgekehrt· Ist die Datei ID in der AB-Datei jedoch nicht grosser, so gibt der Entscheidungsblock 178 eine HEIN-Entscheidung ab, woraufhin gemäss dem Block 184 die Zähler gelöscht und das das gelöschte Modul betreffende Kennzeichen gemäss dem Block 186 gesetzt wird. Dadurch wird angezeigt, dass das angeforderte Modul gelöscht ist und nicht aufgefunden werdenIsann. Diese Information wird ausgedruckt, wie dies in dem Block 188 angegeben ist, und der Ablauf kehrt zu dem Code ΟΡϊΟ gemäss Pig. 2A zurück, wodurch wieder mit dem Betrieb begonnen wird.
Der in Pig· 2H dargestellte Ablauf veranschaulicht das Unterprogramm, welches zum Wiederauffüllen der Arbeitspuffer verwendet wird, und zwar entweder dann, wenn eine Nichtübereinstimmung festgestellt und zu der Oberseite der Arbeitspuffer hin verschoben worden ist, oder dann, wenn sämtliche Zeilen in den Arbeitspuffern kontrolliert worden sind und wenn keine Gleichheit bzw. tfbereinStimmung festgestellt worden ist., D^r Ablauf beginnt mit dem Code 5*0, um den Stopzeiger auf das Pufferregisterende einzustellen, wie dies in dem Block 190 angegeben ist. Auf diese Weise wird die letzte in das Puffer-
3 0 9 8 3 0/0965 ' · ORIGINAL INSPECTED

Claims (1)

  1. register eingegebene Aufzeichnung gekennzeichnet. Der nächste Block 192 führt zur Verschiebung der 'übrigen Zeilen zur Oberseite der Puffer. Der Ablauf wird dann zu einem Entscheidungsblock 194 fortgeführt, gemäss dem die Bewegung bzw. Verschiebung der Zeiger geprüft wird. Sind die Zeiger nicht verschoben worden, so bedeutet dies, dass keine Übereinstimmung festgestellt worden ist und dass das nächste Modul geprüft werden muss, um zu bestimmen, ob bezüglich des nächsten Moduls eine Gleichheit gemäss den Eingabeparametern vorliegt. Dieser Vorgang erfolgt in dem Block 196. Dem Operator wird das Vorliegen einer Mchtübereinstimmung bzw, Ungleichheit dadurch angezeigt, dass gemäss dem Block 198 die "Nicht-Gleichheit" ausgedruckt' wird. Der Ablauf kehrt dann zu dem Code OPIO gemäss Pig· 2A zurück.
    Wenn jedoch in dem Entscheidungsblock 194 die Zeiger verschoben werden, gibt der Entscheidungsblock 194 die JA-Entscheidung ab, und die Pufferregister haben Platz zur Verfügung, in den weitere Information aus den Modulen zu speichern ist. Deshalb wird, wie in dem Block 200 angegeben ist, die Information aus der AB-Datei zu dem ersten Pufferregister hin übertragen. Der Ablauf fährt dann fort, um die Ungleichheits-Information zu der Oberseite des zweiten Pufferregisters zu bewegen und um das zweite Pufferregister mit der Information aus der CF-Datei aufzufüllen, wie dies in dem Block 202 angegeben ist. Der Ablauf fährt dann fort, um die Zeiger zurückzustellen, wie dies in dem Block 204 angegeben ist, Ferner kehrt der Ablauf zur Fortsetzung des Vergleichs mit den Pufferregistern zurück, die vollständig mit Informationen aus den zu vergleichenden Modulen geladen sind.
    Das Vergleicherprogramm gemäss der bevorzugten Ausführungsform ist so ausgelegt worden, dass die Änderungen gekennzeichnet werden, die bezüglich des Quellencodes eines bestimmten Programms vorgenommen werden, und zwar durch Vergleich der modifizierten oder abgeänderten Fassung mit der Basis-Bezugs-
    ORiGlNALlNSPEGTED
    309830/0963
    fassung. Die Eingabedaten stellen normalerweise die auf einem Magnetband gespeicherte Quellencodedatei in kombiniertem Stapelf>rmat dar· Es dürfte selbstverständlich einzusehen sein, dass die Module in irgendeinem Speicherformat gespeichert werden könnten, das für den Betrieb seitens des Datenverarbeitungssystems benötigt wird. Die angegebene Erfindung soll im übrigen nicht auf die verwendete Dateiart oder auf die G-rösse des Pufferregisters beschränkt sein. Ausserdem soll die Erfindung nicht auf die Anzahl der in jedem Yergleichsschritt ausgeführten Zeichenvergleiche beschränkt sein. Durch die bevorzugte Ausführungsform ist eine Methode angegeben worden, gemäss der das Basisbezugsmodul erhalten wird. Ferner ist bei der bevorzugten Ausführungsform eine Methode angegeben worden, gemäss der das identische Modul in der modifizierten lassung identifiziert wird. Die Methode, die zur Erzielung des Moduls benutzt worden ist, soll dabei nicht als die vorliegende Erfindung beschränkend aufgefasst werden, da viele andere Arten von Identifizierern ebenso verwendet werden können, wie viele andere Kennzeichen dazu herangezogen werden können, das Basis-Bezugsmodul und das Modul der modifizierten lassung zu kennzeichnen. Ferner soll die Anwendung der GMAP-Codierung für die QuellenliBte nicht als Sprache betrachtet werden, auf die die vorliegende Erfindung beschränkt ist. Im Hinblick auf die bevorzugte Ausführungsform gemäss der Erfindung sei abschliessend noch bemerkt, dass jeder auf dem vorliegenden Gebiet tätige Programmierer bei Betrachtung dieser Ausführungsform das Vergleicherprogrammflussdiagramm in irgendeine Sprache umcodieren kann, die bei irgendeinem Datenverarbeitungssystem verwendet wird ·
    309830/0963
    Patentansprüche
    (\/ Verfahren zum Vergleichen eines Programms einer modifizierten Passung mit einem Basisbezugsprogramm zur Pestlegung und Kennzeichnung einer unterschiedlichen Codierung in einem Datenverarbeitungssystem, dadurch gekennzeichnet,
    a) dass Quellencodes beider Programme solange verglichen werden, bis eine Differenz zwischen den Codes ermittelt worden ist,
    b) dass das Vorliegen der nächsten Gleichheit zwischen den Quellencodes geprüft wird, nachdem die Codedifferenz ermittelt worden ist,
    c) dass eine entsprechende Ablauffolge in beiden Programmen festgelegt wird,
    d) dass das Vorliegen einer Ungleichheit dadurch geprüft wird, dass von der entsprechenden festgelegten Folge in Rückwärtsrichtung gearbeitet wird, und
    e) dass die PrüSng, die den geringsten Änderungsbereich hervorbringt, als die Codierungsdifferenzen kennzeichnende Prüfung ausgewählt wird.
    2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Beginn und das Ende eines Differenzbereichs gekennzeichnet werden, dass der Änderungsbereieh des Programms der modifizierten Fassung mit dem Basis-Bezugsprogrämm derart verglichen wird, dass festgestellt wird, ob die betreffende Änderung eine Weglassung, eine Hinzufügung oder eine Modifikation darstellt^und dass der Änderungsbereich ausgedruckt wird, während gekennzeichnet wird, ob die Änderung eine Streichung, eine Hinzufügung oder eine Modifikation darstellt.
    3ο Verfahren nach Anspruch 2, dadurch ^kennzeichnet, dass der Vergleich des Änderungsbereichs dadurch ausgeführt wird,
    309830/0963
    dass nach, einer Gleichheit in einem kleinen Seil jeder Codierungszeile des Änderungsbereichs gesucht wird, dass die Gleichheit in dem Änderungsbereich identifiziert wird, dass sämtliche der identifizierten Gleichheit in dem Basis-Bezugsprogramm vorangehenden Anweisungen bis zu dem gekennzeichneten Beginn des Änderungsbereichs als Streichungen markiert werden, dass sämtliche Anweisungen vor der identifizierten Gleichheit in dem Programm der modifizierten Fassung bis zu dem gekennzeichneten Beginn des Inderungsbereichs als Hinzufügungen markiert werden und dass die Codierungszeile als Modifikation markiert wird, bei der die Gleichheit in dem kleinsten Teil einer Codierungazeile auftritt,
    4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass die
    den Vergleich des Änderungsbereichs ausführenden Schritte wiederholt werden, derart, dass auf das Vorliegen von mehreren Übereinstimmungen in einem kleinen !eil jeder Codierungszeile des Änderungsbereichs gesucht wird, indem die identifizierte Gleichheit als Beginn des Änderungsbereichs herangezogen wird, und dass in dieser Weise wiederholt vorgegangen wird, bis das Ende des Änderungsbereichs erreicht ist.
    5· Verfahren nach. Anspruch 1, dadurch gekennzeichnet,
    a) dass der Beginn des Änderungsbereichs identifiziert wird,
    b) dass das Ende des Änderungsbereichs identifiziert wird,
    c) dass nach einer Übereinstimmung in einem kleinen Teil jeder Codierungszeile des Anderungebereichs gesucht wird,
    d) dass die Übereinstimmung in dem Änderungsbereich identifiziert wird,
    e) dass sämtliche Anweisungen, die der identifizierten Gleichheit in dem Basis-Bezugsprogramm vorangehen, bis zu dem identifizierten Beginn des Änderuögsbe-
    ORiGlNAL INSPECTED
    309830/0963
    reichs als Streichungen markiert werden,
    f) dass sämtliche Anweisungen, die der identifizierten Gleichheit bei dem Programm der modifizierten Fassung vorangehen, bis zu dem identifizierten Beginn des Änderungsbereichs als Hinzufügungen markiert werden,
    g) dass die Codierungszeile, bei der die Gleichheit in dem kleinen Seil einer Codierungszeile auftritt, als Modifikation markiert wird, "
    h) dass der Änderungsbereich ausgedruckt wird und dass gekennzeichnet wird, ob die Änderung eine Streichung, Hinzufügung oder Modifikation darstellt, und
    i) dass der Suchvorgang nach Vorliegen weiterer Übereinstimmungen in einem kleinen Teil jeder Codierungszeile innerhalb des Änderungsbereichs dadurch fortgesetzt wird, dass die Schritte c) bis h) ausgeführt werden, wobei die identifizierte Gleichheit als Beginn des Änderungsbereichs herangezogen wird, bis das Ende des Änderungsbereichs erreicht ist,
    6. Verfahren nach Anspruch 1, dadurch gekennzeichnet,
    a) dass Parameter festgelegt werden, die ein Prograiommodul kennzeichnen, welches mit seinem Basis-Bezugsprogrammmodul mit einer modifizierten Passung des Programm-Moduls zu vergleichen ist,
    b) dass das Basismodul festgelegt wird,
    c) dass der Quellencode aus dem festgelegten Basismodul zu einem ersten Arbeitspufferregister übertragen wird,
    d) dass das Modul der modifizierten Passung festgelegt wird,
    e) dass der Quellencode aus dem Modul der festgelegten modifizierten Passung zu einem zweiten Arbeitepufferregister übertragen wird,
    f) dass die Quellencodes des ersten Arbeitspufferregisters mit den Quellencodes des zweiten Pufferregisters solange
    ORIGINAL INSPECTED
    309 8 30/0963 -
    verglichen werden, Ms eine Differenz zwischen den Codes festgestellt ist,
    g) dass "bezüglich des Vorliegens einer nächsten Gleichheit von Zeilen der Quellencodes zwischen dem ersten Arbeitspuffer und dem zweiten Arbeitspuffer geprüft wird,
    h) dass eine entsprechende Folge in "beiden Programmen nach diesen Codierungsdifferenzen festgelegt wird,
    i) dass das Vorliegen einer Ungleichheit zwischen dem eisten Register und dem zweiten Register dadurch geprüft wird, dass von der festgelegten entsprechenden Ablauffolge in Rückwärtsrichtung gearbeitet wird,
    j) dass die Prüfungserge"bnisse verglichen werden und
    k) dass diejenigen Prüfungsergebnisse, die den kleinsten Änderungsbereich festlegen, als eine Differenz in der Codierung zwischen dem Basis-Bezugsprogramra-Modul in dem Programm-Modul der modifizierten Fassung angehende Ergebnisse ausgewählt werden·
    7· Verfahren nach Anspruch 6, dadurch gekennzeichnet,
    1) dass den Anfang und das Ende des Differenzbereichs angebende Zeiger eingestellt werden,
    m) dass der Änderungsbereich des Programms der modifizierten Fassung mit dem Basisbezugsprogramm verglichen wird, derart, dass bestimmt wird, ob die Änderung eine Weglassung, eine Hinzufügung oder eine Modifikation darstellt, und
    n) dass der Änderungsbereich ausgedruckt wird, während angegeben wird, ob die Änderung eine Weglassung, eine Hinzufügung oder eine Modifikation darstellt.
    8. Verfahren nach Anspruch 7ι dadurch gekennzeichnet, dass der Schritt m) dadurch ausgeführt wird, dass eine Gleichheit in einem kleinen Teil jeder Codierungszeile des Änderungsbereichs gesucht wird, dass die Gleichheit in dem
    309830/0963
    Änderungsbereich identifiziert wird, dass sämtliche Anweisunger! , die vor der identifizierten Gleichheit in dem Basis Ibezugsprograrani vorangehen, bis zu dem identifizierten Anfang des Änderungsbereichs als Weglassungen markiert werden, dass sämtliche Anweisungen, die der identifizierten Gleichheit bei dem Programm der modifizierten Passung vorangehen, bis zu dem identifizierten Anfang des Änderungsbereichs als Hinzufügungen markiert werden und dass die Codierungszeile, in der die G-leichheit in dem kleinen Teil einer Codierungszeile auftritt, als Modifikation markiert wird* ■ ·
    9β Yerfahren nach Anspruch 8, dadurch gekennzeichnet, dass die zum Vergleich des Änderungsbereichs ausgeführten Schritte zur Ermittlung weiterer Gleichheiten in einem kleinen Teil jeder Codierungszeile innerhalb des Änderungsbereichs wiederholt werden, indem die identifizierte Gleichheit a^ls Beginn .des Änderungsbereichs ausgenutzt wird, und dass in dieser Weiss läederholt vorgegangen wird, bis das Ende des Änderungsbereichs erreicht ist·
    10. Yerfahren nach Anspruch 1, dadurch gekennzeichnet,
    a) dass der Quellencode des Basis-Bezugsprogramms aus einem Basismodul zu einem ersten Arbeitspuffer übertragen .wird,
    b) dass der Quellencode des Programms der modifizierten Fassung aus einem Modul der modifizierten Passung in ein zweites Arbeitspufferregister übertragen wird,
    c) dass ein verkürzter Teil einer nächsten Zeile aus
    dem ersten Pufferregister mit einem Teil entsprechender G-rösse einer gleichen Zeile in dem zweiten Pufferregister verglichen wird,
    d) dass zum Schritt e) in dem lall übergegangen v/ird, dass keine Gleichheit festgestellt wird, während andernfalls zum Schritt c) zurückgekehrt wird,
    309830/0963
    e) dass die Ungleichheits-Zeilen zu der Oberseite ihrer entsprechenden Arbeitspuffer verschoben werden,
    f) dass die Arbeitspuffer mit den nachfolgenden Daten aus dem Basis-Bezugsmodul und dem Modul der modifizierten !Fassung wieder aufgefüllt v/erden,
    g) dass der Inhalt des zweiten Pufferregisters derart vorgerückt wird, dass die nächste Zeile geprüft wird,
    h) dass zum Schritt i) in dem Fall übergegangen wird, dass eine vergrösserte Wortlängengleichheit nicht festgestellt worden ist, während andererseits zu dem Schritt o) übergegangen wird,
    i) dass zu dem Schritt j) in dem Fall übergegangen wird, dass ein Pufferende festgelegt ist, während andererseits zu dem Schritt g) übergegangen wird,
    j) dass die in dem ersten Pufferregister verglichene Zeile um eine Zeile vorgerückt wird,
    k) dass zu dem Schritt 1) in dem Pail übergegangen wird, dass das Ende des ersten Pufferregister signalisiert wird, während andererseits zu dem Schritt h) zurückgekehrt wird,
    l) dass das erste Pufferregister mit Quellencodes aus dem Basisregistermodul wieder aufgefüllt wird,
    m) dass das zweite Pufferregister mit den Quellencodes des Programms der modifizierten Fassung wieder aufgefüllt wird,
    n) dass zu dem Schritt c) zurückgekehrt wird,
    o) dass die vollständigen Zeichen einer Zeile bezüglich einer Gleichheit wieder geprüft werden,
    p) dass zu dem Schritt q.) in dem Fall übergegangen wird, dass eine Gleichheit ermittelt wird, während andererseits zu dem Schritt i) zurückgekehrt v/ird,
    q) dass das Torliegen einer Zeichengleichheit der nächsten vollständigen Zeile des ersten Arbeitspufferregisters
    309830/0983
    und der nächsten vollständigen Zeile des zweiten Arbeitspufferregisters geprüft wird,
    r) dass zu dem Schritt s) in dem EaIl übergegangen wird, dass die nächste vollständige Zeile beider Pufferregister übereinstimmt, während andernfalls zum Sehritt i) zurückgekehrt wird,
    s) dass die Anzahl der ungleichen Zeilen aus dem ersten Arbeitspufferregister und/dem zweiten Arbeitspufferregister festgehalten wird,
    t) dass nach dem Vorliegen identischer symbolischer Adressen in dem Basisbezugsmodul und in dem Modul der modifizierten Fassung gesucht wird,
    u) dass das Vorliegen einer Gleichheit zwischen der Zeile, die einem entsprechenden Symbol in dem ersten Arbeitepuff erregister vorangeht, und der Zeile, die dem entsprechenden Symbol in dem zweiten Arbeitspufferregister vorangeht, geprüft wird,
    v) dass zu dem Schritt w) in dem Fall übergegangen wird, dass die Torhergehenden Zeilen gleich sind, während andernfalls zu dem Schritt y) übergegangen wird,
    v/) dass die nächste vorangehende Zeile in dem ersten Register mit der nächsten vorangehenden Zeile in dem zweiten Pufferregister verglichen wird,
    x) dass zu dem Schritt w) in dem Fall zurückgekehrt wird, dass die vorhergehenden Zeilen gleich sind, während andernfalls zu dem Schritt y) übergegangen wird,
    y) dass die Gesarat-Änderungszeilen berechnet werden, die durch den Vergleich gemäss den Schritten g) bis s) und u) bis w) ermittelt worden sind,
    z) dass die Ergebnisse der verschiedenen Vergleichsniethoden verglichen werdeni
    aa) dass den Beginn und das Ende der Ungleichheitsteile des ersten und zweiten Pufferregisters angebende Zeiger
    309830/0983
DE2302753A 1972-01-21 1973-01-20 Verfahren zum vergleichen von programmen in einem datenverarbeitungssystem Pending DE2302753A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US21972172A 1972-01-21 1972-01-21

Publications (1)

Publication Number Publication Date
DE2302753A1 true DE2302753A1 (de) 1973-07-26

Family

ID=22820507

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2302753A Pending DE2302753A1 (de) 1972-01-21 1973-01-20 Verfahren zum vergleichen von programmen in einem datenverarbeitungssystem

Country Status (4)

Country Link
US (1) US3711863A (de)
JP (1) JPS4883746A (de)
DE (1) DE2302753A1 (de)
GB (1) GB1412328A (de)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3935563A (en) * 1975-01-24 1976-01-27 The United States Of America As Represented By The Secretary Of The Navy Computer footprint file
JPS5641346U (de) * 1979-09-04 1981-04-16
JPS5858650A (ja) * 1981-09-30 1983-04-07 Fujitsu Ltd Cobolソ−スのメンテナンス方式
JPH0789318B2 (ja) * 1985-03-18 1995-09-27 株式会社日立製作所 プログラム比較判定方法
JP2925137B2 (ja) * 1986-07-11 1999-07-28 キヤノン株式会社 ワードプロセッサ及びその制御方法
JP2523289B2 (ja) * 1986-11-20 1996-08-07 株式会社日立製作所 ソフトウエア開発支援システムにおける表示方法
US5191646A (en) * 1986-11-20 1993-03-02 Hitachi, Ltd. Display method in software development support system
US5325531A (en) * 1989-06-30 1994-06-28 Digital Equipment Corporation Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines
US6816872B1 (en) 1990-04-26 2004-11-09 Timespring Software Corporation Apparatus and method for reconstructing a file from a difference signature and an original file
US5479654A (en) * 1990-04-26 1995-12-26 Squibb Data Systems, Inc. Apparatus and method for reconstructing a file from a difference signature and an original file
JPH05341819A (ja) * 1991-02-05 1993-12-24 Mitsubishi Electric Corp Sfcプログラムのデバッグ装置及びデバッグ方法
US5335342A (en) * 1991-05-31 1994-08-02 Tiburon Systems, Inc. Automated software testing system
US5544048A (en) * 1992-12-17 1996-08-06 International Business Machines Method and apparatus for marking text between paired delimiters
US5579223A (en) * 1992-12-24 1996-11-26 Microsoft Corporation Method and system for incorporating modifications made to a computer program into a translated version of the computer program
JPH06274384A (ja) * 1993-03-22 1994-09-30 N T T Data Tsushin Kk 実行ファイル差分抽出/更新装置及び実行ファイル差分抽出方法
DE69430866D1 (de) * 1993-03-30 2002-08-01 Squibb Data Systems Inc Vorrichtung und verfahren zur rekonstruktion einer datei aus einer differenzsignatur und einer originaldatei
WO1995014270A1 (de) * 1993-11-15 1995-05-26 Siemens Aktiengesellschaft Vergleichsverfahren für steuerprogramm-quellcode
JP2793164B2 (ja) * 1995-12-22 1998-09-03 株式会社京三製作所 連動検査用データの作成装置
US6038665A (en) * 1996-12-03 2000-03-14 Fairbanks Systems Group System and method for backing up computer files over a wide area computer network
US5794254A (en) * 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
US6018747A (en) * 1997-11-26 2000-01-25 International Business Machines Corporation Method for generating and reconstructing in-place delta files
US6502239B2 (en) * 1998-11-12 2002-12-31 Computer Associates Think, Inc Method and apparatus for round-trip software engineering
CA2255047A1 (en) * 1998-11-30 2000-05-30 Ibm Canada Limited-Ibm Canada Limitee Comparison of hierarchical structures and merging of differences
US6804814B1 (en) 1999-12-29 2004-10-12 Veritas Operating Corporation Method for simulating back program execution from a traceback sequence
US6745383B1 (en) * 1999-12-29 2004-06-01 Veritas Operating Corporation Early warning mechanism for enhancing enterprise availability
US6748584B1 (en) * 1999-12-29 2004-06-08 Veritas Operating Corporation Method for determining the degree to which changed code has been exercised
US6640317B1 (en) * 2000-04-20 2003-10-28 International Business Machines Corporation Mechanism for automated generic application damage detection and repair in strongly encapsulated application
AU2002253405A1 (en) * 2000-10-25 2002-08-28 Ngame Limited Adapting a game state to be compatible with a new version of a game
US20030009744A1 (en) * 2001-07-05 2003-01-09 Electronic Data Systems Corporation Source code line counting system and method
US20040049767A1 (en) * 2002-09-05 2004-03-11 International Business Machines Corporation Method and apparatus for comparing computer code listings
US20040093564A1 (en) * 2002-11-07 2004-05-13 International Business Machines Corporation Method and apparatus for visualizing changes in data
CA2418255A1 (en) * 2003-01-31 2004-07-31 Ibm Canada Limited - Ibm Canada Limitee Tracking and maintaining related and derivative code
JP2005301859A (ja) * 2004-04-15 2005-10-27 Fujitsu Ltd コード検索プログラム及びコード検索装置
US20160335446A9 (en) * 2004-12-10 2016-11-17 Kendyl A. Román Detection of Obscured Copying Using Discovered Translation Files and Other Operation Data
JP4556807B2 (ja) * 2005-08-23 2010-10-06 横河電機株式会社 プログラムの照合装置
US8108315B2 (en) * 2006-06-19 2012-01-31 Hewlett-Packard Development Company, L.P. Discovering software code subject to licenses
DE102006056432A1 (de) * 2006-11-28 2008-05-29 Certess, Inc., Campbell Verfahren zum Testen eines Computerprogramms
US8276118B2 (en) * 2007-03-01 2012-09-25 International Business Machines Corporation Depicting changes to structures in an integrated development environment
US8578327B2 (en) * 2009-11-24 2013-11-05 Verizon Patent Licensing Inc. Targeted to targetless application converter
JP5725359B2 (ja) * 2011-09-20 2015-05-27 日本電気株式会社 ソースコード比較装置、ソースコード比較方法およびソースコード比較プログラム
TWI484413B (zh) * 2012-04-03 2015-05-11 Mstar Semiconductor Inc 基於功能性的程式比較方法
CN103577319A (zh) * 2012-08-07 2014-02-12 腾讯科技(深圳)有限公司 源代码文件检测方法及装置、文件发布系统
US9268560B2 (en) * 2012-08-31 2016-02-23 Google Technology Holdings LLC Displaying dependent files for computer code in a tabbed-application user interface
CN105408872B (zh) * 2013-08-28 2017-11-24 株式会社日立制作所 源代码等价性验证装置以及源代码等价性验证方法
US10191737B2 (en) 2016-06-29 2019-01-29 Accenture Global Solutions Limited Program code comparison and reporting
EP3839744B1 (de) 2019-12-17 2022-01-19 Codemanufaktur GmbH Computerimplementiertes verfahren zur vorhersage des status eines testfalls
CN112181479A (zh) * 2020-09-23 2021-01-05 中国建设银行股份有限公司 代码文件版本间差异的确定方法、装置及电子设备
US20230367556A1 (en) * 2022-05-16 2023-11-16 Microsoft Technology Licensing, Llc Code Editing Tracking and Management for Vision Impaired

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3568156A (en) * 1967-08-09 1971-03-02 Bell Telephone Labor Inc Text matching algorithm
US3544777A (en) * 1967-11-06 1970-12-01 Trw Inc Two memory self-correcting system

Also Published As

Publication number Publication date
GB1412328A (en) 1975-11-05
JPS4883746A (de) 1973-11-08
US3711863A (en) 1973-01-16

Similar Documents

Publication Publication Date Title
DE2302753A1 (de) Verfahren zum vergleichen von programmen in einem datenverarbeitungssystem
DE2554442C2 (de) Vorrichtung zum Vergleich logischer Größen mit einer Gruppe logischer Bezugsgrößen
DE2234867C2 (de) Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen
DE102005016561B4 (de) Verfahren und Vorrichtung zur strukturierten Erfassung und Bearbeitung von in einem System auftretenden Problemen
DE1499182C3 (de) Datenspeichersystem
DE2055739A1 (de) Datenverarbeitungssystem
DE19844071A1 (de) Verfahren zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld
DE3047251A1 (de) Rechner
DE1151397B (de) Programmgesteuerte Datenverarbeitungs-anlage mit gespeicherten Unterprogrammen
DE3535577A1 (de) Elektronische datenuebergabestation
DE3116100A1 (de) Sprungabschaetz-zentraleinheit
DE2316296A1 (de) Durch mikroprogramme steuerbare verarbeitungseinrichtung
DE1303071B (de)
DE1285219B (de) Steuerwerk zur Ausfuehrung von Unterprogrammen
DE10161332A1 (de) Verfasserwerkzeug für diagnostische Systeme in Bayes-Netzwerken
DE3511683A1 (de) Elektronisch programmierbarer rechner mit einem speicherpaket
DE2807500A1 (de) Digitale logikschaltung zum vergleichen von geordneten zeichenfolgen variabler laenge
EP1005216B1 (de) Verfahren und Vorrichtung zur Validierung von Konfigurationsdaten für Telekommunikationssysteme
DE1171650B (de) Maschine zur serienmaessigen Verarbeitung von Daten in binaerer Zeichenverschluesselung
DE10330607A1 (de) Einzelchip-Mikrocomputer und Verfahren zu dessen Boot-Region-Schaltern
DE3214117A1 (de) Elektronisches uebersetzungsgeraet mit erweitertem speicher
DE2312193A1 (de) Uebersetzer und quellencode-erzeuger fuer eine problemorientierte sprache fuer rechenanlagen
DE10059006B4 (de) Verfahren und System zur sicheren Verwaltung von Dateien in nichtflüchtigen Speichern
DE2244163A1 (de) Verfahren zur verdichtung bzw. dehnung von dateninformationszeichen in einem datenverarbeitungssystem
DE112004001955T5 (de) Benutzeroberflächensoftware-Entwurfssystem