DE3248189A1 - Verfahren zur kennzeichnung von miteinander verschachtelten source-programm-bloecken - Google Patents

Verfahren zur kennzeichnung von miteinander verschachtelten source-programm-bloecken

Info

Publication number
DE3248189A1
DE3248189A1 DE19823248189 DE3248189A DE3248189A1 DE 3248189 A1 DE3248189 A1 DE 3248189A1 DE 19823248189 DE19823248189 DE 19823248189 DE 3248189 A DE3248189 A DE 3248189A DE 3248189 A1 DE3248189 A1 DE 3248189A1
Authority
DE
Germany
Prior art keywords
block
line
source program
relevant
nesting depth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE19823248189
Other languages
English (en)
Inventor
Manhard Dipl.-Math. 8080 Fürstenfeldbruck Fuchs
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE19823248189 priority Critical patent/DE3248189A1/de
Publication of DE3248189A1 publication Critical patent/DE3248189A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

  • 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 -

Claims (3)

  1. Patentansprüche.
    @ Verfahren zur Kennzeichnung (s) von miteinander verschachtelten Source-Programm-Blöcken, die, aus Schritten bzw. Zeilen zusammengesetzt, in Registern bzw. Speichern einer EDV, insbesondere eines Compilers, eingeschrieben sind, wobei in ersten bzw. letzten Schritten bzw. Zeilen Jedes Blockes Jeweils ein solche Blockbegrenzungen markierendes, insbesondere der Änderung der Verschachtelungstiefe entsprechendes,Kennzeichen (6+, 5-) eingefügt wird, d a d u r c h g e k e n n z e i c h n e t , daß das einem graphischen, insbesondere alphabetischen und/ oder numerischen, Zeichen entsprechende digitale Kennzeichen (6) einheitlich auch innerhalb des Blockes(36) Jeweils an der gleichen definierten Stelle (S) eines jeden Schrottes bzw. einer Jeden Zeile des Blockes (36) eingefügt wird.
  2. 2. Verfahren nach Patentanspruch 1, d a d u r c h g e k e n n z e i c h n e t , daß gegebenenfalls dem Kennzeichen ein die Richtung einer Veränderung der Verschachtelung angebendes Zusatzzeichen (+, - ,>,<) hinzugefügt wird, das nämlich angibt, ob bei dem betreffenden Schritt bzw. bei der betreffenden Zeile eine Verzweigung (>,<) (: und/oder und/oder ein Sprung zu einer geringeren (-) oder größeren (+) Verschachtelungstiefe durchgeführt wird.
  3. 3. Verfahren nach Patentanspruch 1 oder 2, d a d u r c h g e k e n n z e i c h n e t , daß das bisher noch keine oder nicht alle Kennzeichen (5) enthaltende Source-Programm von der EDV automatisch nach solchen besonderen Begriffen bzw. Befehlen durchsucht wird, welche den Anfang (HIK) und/oder das Ende (RST) des Blockes (B6) angeben, daß diese besonderen Begriffe bzw.
    Befehle den Zählerstand (6) eines Verschachtelungstiefenzählers steuern,und daß der Zählerstand (6) jeweils als Kennzeichen (S) an der betreffenden Stelle eines Jeden Schrittes bzw. einer Jeden Zeile eingefügt wird.
DE19823248189 1982-12-27 1982-12-27 Verfahren zur kennzeichnung von miteinander verschachtelten source-programm-bloecken Ceased DE3248189A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19823248189 DE3248189A1 (de) 1982-12-27 1982-12-27 Verfahren zur kennzeichnung von miteinander verschachtelten source-programm-bloecken

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19823248189 DE3248189A1 (de) 1982-12-27 1982-12-27 Verfahren zur kennzeichnung von miteinander verschachtelten source-programm-bloecken

Publications (1)

Publication Number Publication Date
DE3248189A1 true DE3248189A1 (de) 1984-06-28

Family

ID=6181883

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19823248189 Ceased DE3248189A1 (de) 1982-12-27 1982-12-27 Verfahren zur kennzeichnung von miteinander verschachtelten source-programm-bloecken

Country Status (1)

Country Link
DE (1) DE3248189A1 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3568158A (en) * 1968-01-03 1971-03-02 Bell Telephone Labor Inc Program and subroutine data storage and retrieval equipment
US4068300A (en) * 1973-12-13 1978-01-10 Honeywell Information Systems, Inc. Data processing system utilizing data field descriptors for processing data files
US4330822A (en) * 1971-09-02 1982-05-18 Burroughs Corporation Recursive system and method for binding compiled routines

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3568158A (en) * 1968-01-03 1971-03-02 Bell Telephone Labor Inc Program and subroutine data storage and retrieval equipment
US4330822A (en) * 1971-09-02 1982-05-18 Burroughs Corporation Recursive system and method for binding compiled routines
US4068300A (en) * 1973-12-13 1978-01-10 Honeywell Information Systems, Inc. Data processing system utilizing data field descriptors for processing data files

Similar Documents

Publication Publication Date Title
DE1928202C3 (de) Einrichtung zur Erstellung statistischer Daten über den Operationsablauf programmgesteuerter Datenverarbeitungsanlagen
DE2228526C3 (de) Verfahren und Anordnung zum Lesen und Decodieren von Strichmarken-Gruppen, die Daten in codierter Form darstellen
DE3629104C2 (de)
DE69232110T2 (de) Darstellungssystem von Geschichtsinhalt für einen Informationsprozessor
DE2417795C2 (de) Datenverarbeitungsanlage
DE3416939A1 (de) Verfahren zur steuerung von betriebseinrichtungen
DE1499182B2 (de) Datenspeichersystem
DE2431379B2 (de) Datenverarbeitungseinrichtung
DE3326583C2 (de)
DE1424732A1 (de) Elektronische Ziffernrechenmaschine
DE2758829C2 (de) Datenverarbeitungsanlage mit mehreren Prozessoren
DE1285219B (de) Steuerwerk zur Ausfuehrung von Unterprogrammen
DE69026573T2 (de) Verfahren und Vorrichtung zum selektiven Stoppen und Starten von rechnergesteuerten Herstellungsprozessen
DE2163211A1 (de) Zeilenende-Steueranordnung
DE2435889A1 (de) Verfahren und einrichtung zum unterscheiden von zeichengruppen
DE3785980T2 (de) Automatische Nähmaschine.
DE1774421B1 (de) Mehrprogramm datenverarbeitungsanlage
DE3248189A1 (de) Verfahren zur kennzeichnung von miteinander verschachtelten source-programm-bloecken
DE1474376A1 (de) Verfahren und Anordnung zum schnellen Zugriff bei grossen seriellen Speichern
DE69815656T2 (de) Rechnersystem mit einem mehrfach Sprungbefehlzeiger und -Verfahren
DE2717244C2 (de)
DE10065498A1 (de) Verfahren und Vorrichtung zur Rekonstruktion des Prozessablaufs eines Steuerprogramms
DE1763948A1 (de) Vorrichtung zum Steuern der Anordnung eines Gegenstandes
DE19510539C1 (de) Verfahren zur Speicherung von Prozeßsignalen einer technischen Anlage
DE1572942A1 (de) Programmiertafel

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
8110 Request for examination paragraph 44
8131 Rejection