-
-
Verfahren zur Kennzeichnung von miteinander verschach-
-
telten Source-Programm-Bldcken.
-
Die Erfindung stellt eine Weiterentwicklung des im Oberbegriff des
Patentanspruches 1 definierten, durch die DE-OS 29 39 194 bekannten Verfahrens dar.
Bei den Blöcken des bekannten Verfahrens handelt es sich jeweils um Unterprogramme,
genauer gesagt im allgemeinen um tief verschachtelte Unterprogramme von Unterprogrammen.
Sowohl die ersten Zeilen als auch die letzten Zeilen eines Jeden solchen Blockes
bzw. Unterprogrammes sind Jeweils durch ein Kennzeichen markiert, das die Änderung
der Verschachtelungstiefe des betreffenden Unterprogrammes markiert. Diese Markierung
ist dort angebracht, um blockweise, d.h. unterprogrammweise, Fehler der Verarbeitung
von Daten suchen zu können, wobei die betreffenden Kennzeichen dort vor allem zur
Begrenzung der Menge der zu durchsuchenden Zeilen des Programmes verwendet werden.
-
Bei der Erfindung braucht hingegen der betreffende Block nicht Jeweils
ein eigenes thlterprogramm dazzustellen Der betreffende Block kann auch ein, aus
welchem Grunde auch immer, spezieller Abschnitt des Source-Programmes sein, also
z.B. auch nur eine Schleife oder einen in sich irgendwie einheitlichen Abschnitt
innerhalb des Source-Programmes bilden. Die Erfindung ist auch nicht auf das Durchsuchen
von solchen einzelnen Blöcken nach Fehlern der Verarbeitung von Daten beschränkt.
Bei der Erfindung kann das betreffende Kennzeichen nämlich z.B. auch dazu dienen,
anhand Jeder einzelnen Zeile sofort die Zugehörigkeit zu dem betreffenden Block
feststellen zu können, oder z.B. um sehr schnell einen ganzen Block gegen einen
anderen,
bereits vorbereiteten Block wegen Mordernisierung des Source-Programmes austauschen
zu können. Falls von dem Kennzeichen Jeweils Zählerstandsanzeigen am Anfang und/oder
Ende des Jeweiligen Blockes mit Hilfe eines vor##:ärts- und r#ckwärtszählenden Zählers
gesäuert werden, wird bei der Erfindung auch vermieden, daß durch einen einmaligen
Fehler in einem Kennzeichen oder durch einen einmaligen Fehler in der Kennzeichen-Abtastung
mitgeschleppte Fehler in den Zahl erstandsanieigen auftreten, welche Irrtümer über
die Zugehörigkeit einer Zeile zu einem speziellen Block, also z.B. fehlerhafte Identifizierungen
und Verarbeitungen von Daten, auslösen.
-
Das erfindungsgemäße Verfahren gestattet also eine derartige, maschinell
erkennbare Kennzeichnung, daß nach Abschluß des Verfahrens zuverlässig ohne laufendes
Mitzählen Jederzeit bereits an kleinen Ausschnitten eines Blockes, z.B. an einer
Zeile, die Zugehörigkeit zu einem bestimmten Block feststellbar ist.
-
Die Aufgabe der Erfindung wird durch die im Patentanspruch 1 angegebenen
Maßnahmen gelöst.
-
Die in den beiden Unteransprüchen angegebenen zusätzlichen Maßnahmen
gestatten zusätzliche Vorteile, nämlich die Maßnahme gemäß Patentanspruch 2, aus
den Kennzeichen neben der Verschachtelungstiefe des betreffenden Blockes auch die
Änderungsrichtung bzw. -größe dieser Verschachtelungstiefe in Bezug auf den vorhergehenden
bzw. auf den folgenden Block bzw. auf die, während des Abarbeitens der CODES des
Blockes, durch einen Sprung mögliche Verschachtelungstiefenänderung anzuzeigen,
sowie 3, mittels eines speziellen Zählers die Verschachtelungstiefe des betreffenden
Blockes automatisch als Kennzeichen einzufügen.
-
Die Erfindung wird anhand des in der Figur gezeigten Beispieles weiter
erläutert.
-
Das in der Figur gezeigte Beispiel stellt einen Ausschnitt aus einem
Source-#rogramm mit sehr starker Verschachtelung seiner Blöcke dar. Dieser Ausschnitt
des in Registern bzw. Speichern eingeschriebenen Source-Programmes ist hier abschnittsweise
so wiedergegeben, wie dessen Zeichen durch einen späteren Ausdruck oder durch eine
spätere Bildschirmanzeige, z.B. zur visuellen Uberprüfung der Zugehörigkeit zu einem
speziellen Block, erhalten werden können.
-
Bei dem in der Figur gezeigten Beispiel ist die Stelle S, an der erfindungsgemäß
Jeweils das Kennzeichen eingefügt wird, stets am Anfang einer Jeden Zeile Z des
betreffenden Blockes. Nicht nur in den ersten und letzten Zeilen Z eines jeden solchen
Blockes, vgl. den Ubergang vom Block BS zum Block B6, ist Jeweils ein solches die
Blockänderung bzw. die Blockzugehörigkeit markierendes Kennzeichen eingefügt, vgl.
die eine solche Änderung markierenden Kennzeichen 5 und 6+ an diesem Ubergang von
B5 zu B6. Auch innerhalb des betreffenden Blockes, vgl.
-
den Block B6, ist das betreffende Kennzeichen, hier 6, Jeweils einheitlich
an der gleichen definierten Stelle S einer Jeden dieser Zeilen Z des Blockes 36
eingefügt.
-
In entsprechender Weise sind auch die gezeigten Blöcke B5 durch die
Kennzeichen 5 an der betreffenden Stelle S jeder Zeile Z markiert. Die betreffenden
Zeilen Z enthalten also nicht nur irgendwelche Befehle und Adressen als CODE, sondern
zusätzlich das betreffende Kennzeichen des Blockes an einer typischen, für alle
Zeilen Z einheitlich gewählten Stelle S, und zwar insbesondere am Zeilenanfang.
-
Jeder einzelnen Zeile Z ist also sofort die Zugehörigkeit zu einem
speziellen Block, z.B. zum Block 36, zu entnehmen,
und zwar sehr
leicht auch dann, wenn der betreffende Block, vgl. B6selber viele Hunderte von Zeilen
Z enthält. Die Erfindung erleichtert dadurch insbesondere den automatischen kompletten
Austausch eines Blockes gegen einen bereitgestellten anderen Block sehr stark.
-
Nicht nur bei einer blindlings aus der Mitte des Source-Programmes
maschinell probeweise ausgelesenen Zeile Z, sondern auch bei Bildschirmanzeigen
von nur kurzen Ausschnitten aus dem Source-Programm, ist also Jeweils stets selbst
bei Jeweils vergleichsweise extrem langen Blöcken, zuverlässig sofort die Zugehörigkeit
Jeder einzelnen Zeile zu einem bestimmten Block feststellbar.
-
Bei der Erfindung ist damit eine häufige Hauptschwierigkeit der komplexen
Verschachtelung der einzelnen Blöcke des Programmes gelöst, daß nämlich bei der
Erstellung, Änderung, Wartung und/oder Pflege von bereits bestehenden Source-Programmen,
d.h. letztenendes bei der gesamten Software-Betreuung, komplexe Block-Verschachtelungen
nur noch sehr schwer in ihre Einzelblöcke zerlegbar sind.
-
Zwar schreiben einige der Programmsprachen zwingend eine gewisse Kennzeichnung
von Blöcken, insbesondere von den ren Verschachtelungstiefen, z.B. in Form schwer
abzählbarer Leertastendrucke vor, so z.B. Algol, Pascal oder Chill. Trotzdem ist
es bisher auch bei diesem Programmsprachen, wenn die Erfindung nicht verwendet wird,
noch zu umständlich, Jeweils z.B.'die Verschachtelungstiefe von Blöcken ausfindig
zu machen, bzw. sofort den Blockumfang festzustellen, vor allem weil die Anzahl
der Leertastendrucke schwer am Bildschirm auszählbar ist, besonders wenn ein angezeigter
Blockausschnitt viel kürzer als die Gesamtlänge des Blockes ist. Uberdies müssen
bei diesem Stand der Technik zu viele Speicherplätze an Jener Zeilenstelle S von
vorne herein für Leertastendrucke reserviert werden.Bei der Erfindung wird dagegen
in wenigen Speicherplätzen pro Zeile das Markier-Kennzeichen auf
einfache
Weise gespeichert, wobei man in jede Zeile bzw.
-
in jeden Schritt des Blockes das Jeweilige, leicht wiederfindbare,
verleichsweise sehr kurze Kennzeichen, z.B.
-
als numerischen oder alphabetischen Wert, einfügt.
-
Falls das betreffende Kennzeichen die Verschachtelungstiefe angeben
soll, kann man zum automatischen Einschreiben des Kennzeichens das ganze Source-Programm
zeilenweise nach CODES bzw. nach dessen typischen Befehlen bzw. Adressen durchsuchen,
die Jeweils den Anfang oder das Ende eines solchen Blockes bedeuten. Wenn ein solcher
Schritt bzw. eine solche Zeile gefunden wird, wird der Zählerstand eines Zählers,
nämlich eines Verschachtelungstiefenzählers, entsprechend vorwärts oder rückwärts
gesteuert, wobei der Zählerstand dieses Zählers anschließend als Kennzeichen an
der Stelle S Jeweils automatisch eingefügt wird.
-
Zusätzlich kann man ein Zusatzzeichen zu diesem Kennzeichen hinzufügen,
das die Richtung bzw. Größe der Veränderung anzeigt, also insbesondere dem Umstand,
ob nun die Verschachtelungstiefe größer oder kleiner wird.
-
Bleibt aber die Verschachtelungstiefe bei der betreffenden Zeile bzw.
Schritt Z weiterhin konstant, dann kann ein solches Zusatzzeichen völlig weggelassen
werden,vgl.
-
die Zeilen innerhalb des Blockes B6 in der Figur. Wenn also ein Block,
vgl. B6, nach solchen CODES durchsucht wird, welche den Anfang oder das Ende eines
Blockes bedeuten, und wenn bei dieser Suche in einer Zeile bzw. in einem Schritt
kein solcher CODE gefunden wird, so wird der-alte Zählerstand des betreffenden verschachtelungstiefen
Zählers als Kennzeichen an der betreffenden Stelle S dieser Zeile bzw. dieses Schrittes
eingefügt.
-
Es können auch solche Zusatzzeichen angebracht werden, welche einen
Hinweis darauf geben, daß zu der betreffenden Zeile Z ein Sprungbefehl gehört, welcher
einen Sprung in einen anderen Block mit anderer Verschachtelungstiefe ermöglicht
- wobei sogar die Verschachtelungstiefe dieses anderen Blockes ebenfalls mit an
der Stelle S der Zeile bzw. des Schrittes Z eingefügt werden kann, vgl. in der Figur
das Kennzeichen 65 3 beim CODE OPQ im Block B6. Durch solche Zusatzzeichen wird
die automatische und die optische Lesbarkeit des Source-Programmes noch stärker
erleichtert.
-
Alle Blöcke, welche erfindungsgemäß bzw. gemäß den beschriebenen Weiterbildungen
der Erfindung markiert wurden'*>ind weiterhin ohne Einschränkung in andere Sprachen
übersetzbar, insbesondere in die Maschinensprache, ohne daß nach dem Austausch zweier
Blöcke eine entsprechende zusätzliche Pflege des Source-Programmes oder des Maschinensprachen-Programmes
benötigt wird. Nach der Ubersetzung des neuen Source-Programmes kann auch das Ubersetzungsprotokoll
das Kennzeichen, das insbesondere die Verschachtelungstiefe angeben kann, mitenthalten,
so daß eine Nachbearbeitung für Dokumentationszwecke Jedenfalls hinsichtlich dieser
Markierung wegfallen kann. Falls trotzdem aus irgendeinem Grunde eine zusätzliche
Nachbearbeitung gewünscht wird, ergibt sich ein weiterer Vorteil: Durch das Einfügen
der Kennzeichen an den fest definierten Stellen 5 kann diese Nachbearbeitung ohne
großen Aufwand an Rechenzeit durchgeführt werden, weil die Zugehörigkeit zu den
einzelnen Blöcken Jeweils sofort feststellbar ist.
-
Die Erfindung ist außerdem nicht an eine spezielle Programmsprache
für das Source-Programm gebunden. Sie kann *) wobei das Kennzeichen jeweils auch
als blosergommentar behandelt werden kann
nämlich sogar bei Jeder
freiformatierten höheren Programmsprache angewandt werden, also z.B. auch bei der
Sprache Chill für Source-Programme der Fernsprech-Vermittlungstechnik.
-
3 Patentansprüche 1 Figur
- Leerseite -