DE10041111A1 - Verfahren zum Überarbeiten eines in einer Programmiersprache verfaßten Computerprogramms - Google Patents
Verfahren zum Überarbeiten eines in einer Programmiersprache verfaßten ComputerprogrammsInfo
- Publication number
- DE10041111A1 DE10041111A1 DE10041111A DE10041111A DE10041111A1 DE 10041111 A1 DE10041111 A1 DE 10041111A1 DE 10041111 A DE10041111 A DE 10041111A DE 10041111 A DE10041111 A DE 10041111A DE 10041111 A1 DE10041111 A1 DE 10041111A1
- Authority
- DE
- Germany
- Prior art keywords
- computer program
- computer
- violations
- violation
- rule
- 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
Links
- 238000004590 computer program Methods 0.000 title claims abstract description 78
- 238000012937 correction Methods 0.000 title claims abstract description 46
- 230000006378 damage Effects 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 40
- 208000027418 Wounds and injury Diseases 0.000 claims description 15
- 208000014674 injury Diseases 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 15
- 230000015654 memory Effects 0.000 claims description 3
- 239000004567 concrete Substances 0.000 claims 2
- 230000008859 change Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000035945 sensitivity Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000003936 working memory Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000007373 indentation Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 210000002105 tongue Anatomy 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- NQLVQOSNDJXLKG-UHFFFAOYSA-N prosulfocarb Chemical compound CCCN(CCC)C(=O)SCC1=CC=CC=C1 NQLVQOSNDJXLKG-UHFFFAOYSA-N 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or 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)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
Bei dem erfindungsgemäßen Verfahren wird der Quellcode eines Computerprogramms zunächst auf Verletzungen von vorgegebenen Konsistenz-, Syntax- oder Grammatik-Regeln oder lexikalischen Regeln durchsucht. Für eine Verletzung einer vorgegebenen Regel wird eine mögliche Korrektur berechnet. Anschließend wird der Quellcode des Computerprogramms gemäß der berechneten Korrektur automatisch oder interaktiv geändert. Alternativ können Verletzungen definiert werden, die bei der Analyse automatisch ignoriert werden.
Description
Fehler im Quell- oder Sourcecode von Computerprogrammen füh
ren zu Funktionsstörungen des Computerprogramms bzw. des Com
puters, auf dem das Computerprogramm ausgeführt wird. Wegen
der oft hohen Komplexität von Computerprogrammen sind Fehler
im Quellcode häufig nur mit Schwierigkeiten zu lokalisieren.
Für große Computerprogramme ist es weiterhin wichtig, daß sie
gut lesbar sind, so daß auch Außenstehende den Quellcode -
ggf. nach vielen Jahren - lesen und nachvollziehen können.
Die Lesbarkeit von Quellcode kann z. B. dadurch erhöht werden,
daß letzterer streng nach gewissen Regeln oder Kodierstilen
gestaltet ist, die die Lesbarkeit erhöhen. Sollte ein Compu
terprogramm eine Verletzung einer Kodierregel aufweisen, dann
sollte diese nach Möglichkeit beseitigt werden.
Dabei ist es zweckmäßig, die manuelle Fehlersuche mit Hilfe
geeigneter Computerprogramme zu unterstützen. Bekannt sind
sogenannte Beautifier, die Einrückungen und Zeilenumbrüche in
Quellcode einfügen bzw. entfernen. Einrückungen sind jedoch
lediglich Trennzeichen, durch deren Veränderung keine Fehler
behoben werden. Beautifier beachten lediglich reine Formatie
rungsregeln.
Ferner gibt es Computerprogramme zur Überprüfung der Verlet
zung von Kodierstilen in Computerprogrammen, aber auch in
Hardware-Modellen, die in einer Hardware-Beschreibungssprache
wie VHDL verfaßt sind. Diese Programme sind (lediglich) in
der Lage, auf ermittelte Regelverletzungen hinzuweisen.
In speziellen Fällen kann es vorkommen, daß Verletzungen von
Kodierregeln nicht vermieden werden können, etwa wenn exter
ner Code eingebunden wird, der nicht den internen Kodierregeln
folgt. In solchen Fällen ist es für den Programmierer
lästig, wenn diese unumgänglichen Verletzungen, die im
Quellcode verbleiben sollen, bei jeder erneuten Überprüfung
als Verletzungen gemeldet werden, woraufhin sie jedesmal als
zu ignorieren gekennzeichnet werden müssen bzw. eine vorge
schlagene Änderung verworfen werden muß.
Aufgabe der Erfindung ist es, die bekannten Computerprogramme
zur Überprüfung von Computerprogrammen zu verbessern.
Nach einem ersten Aspekt der Erfindung wird die Aufgabe durch
ein Verfahren nach Anspruch 1, ein Computerprogrammprodukt
nach Anspruch 6 oder 7, einen Datenträger nach Anspruch 8 so
wie durch ein Computersystem nach Anspruch 9 oder 10 gelöst.
Unter Computerprogrammprodukt wird dabei das Computerprogramm
als handelbares Produkt verstanden, in welcher Form auch im
mer, z. B. auf einem computerlesbaren Datenträger, über ein
Netz verteilt, etc.
Erfindungsgemäß wird ein Computerprogramm eingesetzt, das zu
nächst, wie bekannt, Regelverletzungen erkennt. Eine Regel
verletzung kann dabei ein echter Programmierfehler oder die
Verletzung eines Kodierstils oder einer sonstigen Konsi
stenz-, Syntax- oder Grammatik-Regel oder einer lexikalischen
Regel sein. Die Regelverletzungen werden jedoch nicht nur
ausgegeben, sondern es werden auch eine oder mehrere mögliche
Korrekturen des Computerprogramms berechnet. Aus den mög
lichen Korrekturen wird eine Korrektur automatisch oder in
teraktiv ausgewählt und das Computerprogramm wird gemäß der
ermittelten Korrektur sofort oder nach nochmaliger inter
aktiver Zustimmung geändert.
Die Erfindung schafft eine automatische grammatikalische,
syntaktische und semantische Korrektur von Computerprogram
men. Ein Vorteil der Erfindung besteht daher in dem erhebli
chen Zeitgewinn gegenüber einer manuellen Korrektur. Ferner
werden alle Änderungen durch den automatisierten Charakter
konsistent durchgeführt. Dadurch wird ferner der Aufwand für
die Überprüfung von Computerprogrammen erheblich reduziert.
Ein Computerprogramm kann somit in jeder einzelnen Version
überprüft werden.
Die Erfindung kann für beliebige Programmiersprachen einge
setzt werden. Auch kann sie für Hardware-Modelle eingesetzt
werden, die in Hardware-Beschreibungssprachen verfaßt sind.
In einer vorteilhaften Weiterbildung der Erfindung gemäß ih
rem ersten Aspekt kann ein entstehendes Computerprogramm be
reits während einer sukzessiven Eingabe auf Verletzungen von
vorgegebenen Regeln durchsucht werden. Sobald ein Ausdruck
derart abgeschlossen ist, daß eine Verletzung erkannt werden
kann, kann diese noch während der Eingabe graphisch kenntlich
gemacht werden. Ein Programmierer kann dadurch sofort bei der
Eingabe Verletzungen von Regeln erkennen.
Einfache Regelverletzungen mit eindeutigen Korrekturen können
- sobald sie eindeutig zu erkennen sind - unmittelbar während
der Eingabe korrigiert werden.
Gemäß einem zweiten Aspekt der Erfindung wird die Aufgabe
durch ein Verfahren nach Anspruch 15, ein Computerprogramm
produkt nach Anspruch 23 oder 24, einen Datenträger nach An
spruch 25 sowie durch ein Computersystem nach Anspruch 26
oder 27 gelöst.
Es wird ein Computerprogramm eingesetzt, das zunächst, wie
bekannt, Regelverletzungen erkennt und/oder gemäß dem ersten
Aspekt der Erfindung Korrekturen ermittelt und ggf. selbstä
tig ausführt. Eine Regelverletzung kann dabei ein echter Pro
grammierfehler oder die Verletzung einer Kodierregel oder ei
ner sonstigen Konsistenz-, Syntax- oder Grammatik-Regel oder
einer lexikalischen Regel sein. Nach dem zweiten Aspekt der
Erfindung können dabei jedoch Verletzungen gesondert oder interaktiv
definiert werden, die bei der Analyse automatisch
ignoriert werden.
Die Überprüfung unvermeidlicher Verletzungen wird somit ver
mieden. Dadurch wird der Aufwand für die Überprüfung von Com
puterprogrammen reduziert.
Die Erfindung kann für beliebige Programmiersprachen einge
setzt werden. Auch kann sie für Hardware-Modelle eingesetzt
werden, die in Hardware-Beschreibungssprachen verfaßt sind.
Besonders günstig ist es, die zu ignorierenden Verletzungen
durch ihre Stellung in der Programm-Hierarchie zu definieren,
oder durch Angabe ihrer Deklarationsumgebung oder sonstiger
Gebiete im Code. Eine derartige Spezifizierung ist robust ge
gen gewisse Änderungen des analysierten Computerprogramms,
etwa das Verschieben von Zeilen durch Einfügen oder Auslas
sen, oder das Entfernen gewisser Blöcke des Programms. Glei
ches gilt, wenn Verletzungen von Kodierregeln für eine Klasse
von Konstrukten generell zugelassen werden.
Weitere vorteilhafte Weiterbildungen der Erfindung sind in
den Unteransprüchen angegeben.
Im Folgenden wird die Erfindung anhand von Ausführungsbeipie
len näher erläutert, die in den Figuren schematisch darge
stellt sind. Im Einzelnen zeigt:
Fig. 1 eine schematische Darstellung des erfindungsgemäßen
Computersystems;
Fig. 2 eine schematische Darstellung eines erfindungsgemäßen
Verfahrens nach dem ersten Aspekt der Erfindung; und
Fig. 3 eine schematische Darstellung eines erfindungsgemäßen
Verfahrens nach dem zweiten Aspekt der Erfindung.
Fig. 1 zeigt einen Computer 10 mit einer Tastatur 12, die als
Eingabemittel dienen kann. Ferner weist der Computer 10 ein
Diskettenlaufwerk 14 auf, das sowohl zur Ein- als auch zur
Ausgabe dienen kann. Im Computer 10 befindet sich ein Spei
cher 16. Dieser kann beispielsweise eine Festplatte oder auch
ein Arbeitsspeicher sein. Der Computer 10 weist eine zentrale
Rechen- oder Verarbeitungseinheit 18 auf (CPU, central
processing unit). Weiterhin dienen der Ausgabe ein Monitor 20
und ein Drucker 22. Der Computer 10 kann zur Ein- und Ausgabe
auch an ein Netzwerk (nicht gezeigt) angeschlossen sein.
Fig. 2 zeigt schematisch die Schritte des auf dem Computer 10
ausgeführten Verfahrens. Zunächst wird das zu überprüfende
Computerprogramm etwa von einer Diskette im Diskettenlaufwerk
14 in den RAM 16 geladen.
Das Computerprogramm ist in einer Programmiersprache ge
schrieben, beispielsweise in VHDL (siehe unten). Zu der Gram
matik von VHDL möge es noch weitere Kodierkonventionen geben,
die zwar nicht zwingend durch VHDL vorgegeben sind, aber die
Lesbarkeit oder Konsistenz des Computerprogramms erhöhen.
Diese Regeln beschränken die Grammatik von VHDL.
Die CPU 18 liest das zu untersuchende Computerprogramm aus
dem Arbeitsspeicher 16 und durchsucht es auf Verletzungen von
vorgegebenen Regeln der Programmiersprache und der weiteren
Kodierkonventionen. Für jede gefundene Verletzung einer vor
gegebenen Regel wird mindestens eine mögliche Korrektur im
Computerprogramm berechnet. Hierfür wird die gefundene Ver
letzung formal analysiert und auf der Basis des Analyseergeb
nisses werden Korrekturmöglichkeiten bestimmt. Zu diesem
Zweck sind jedem Analyseergebnis eine oder mehrere entspre
chende Korrekturmöglichkeiten zugeordnet. Die Korrekturmög
lichkeiten werden auf dem Monitor 20 oder über das Netzwerk
zur interaktiven Auswahl oder Bestätigung durch einen Benut
zer ausgeben. Der Benutzer kann aus den verschiedenen Korrekturmöglichkeiten
mit Hilfe der Tastatur 12 oder einer (nicht
gezeigten) Maus oder mittels Sprachsteuerung auswählen.
Nach Wahl einer Korrekturmöglichkeit wird das zu überarbei
tende Computerprogramm durch die Verarbeitungseinheit ent
sprechend geändert.
Dies wird mit allen ermittelten Regelverletzungen wiederholt.
Nach Abschluß der Korrekturen wird das Computerprogramm von
der CPU 18 wieder in den Arbeitsspeicher 16 geschrieben, von
wo aus es den diversen Ausgabemitteln zugeleitet werden kann.
Im Folgenden werden anhand der Programmiersprache VHDL einige
Beispiele für den Einsatz des anhand Fig. 2 erläuterten Ver
fahrens aufgezeigt. VHDL steht für "very high speed integra
ted circuits hardware description language". Es ist eine ob
jektbasierte Programmiersprache, die speziell zum Beschreiben
und Testen von Hardwarebausteinen wie ASICs entwickelt wurde.
Das Verfahren erkennt eine unbenutzte Variable v in dem unten
dargestellten kurzen Programm und entfernt diese automatisch
oder interaktiv.
Der Quellcode lautet zunächst:
Hier wurde die Variable v zwar definiert, sie wird jedoch im
weiteren Verlauf nicht verwendet. Nach der automatischen Kor
rektur erhält man:
Die überflüssige Variable v wurde eliminiert. Die Konsistenz
des Programms ist wieder hergestellt.
Zusätzlich zu der Grammatik von VHDL möge es als Kodierkon
vention noch die folgende lexikalische Namensregel geben, wo
nach Funktionen stets durch "_f" beendet werden und Konstan
ten durch _"c". Das Verfahren erkennt nun Namen, die nicht
dem vorgegebenen Regelsatz entsprechen, und korrigiert diese.
Der Quellcode lautet zunächst:
Nach der automatischen Korrektur erhält man:
Die Konstanten und Funktionen sind nun sofort als solche zu
erkennen, ohne daß es einer weitergehenden Analyse bedarf.
Das Verfahren überprüft in diesem Beispiel die Sensitivity-
Liste (aus der Hardware-Beschreibungssprache VHDL) auf Voll
ständigkeit und Minimalität und korrigiert sie entsprechend.
Die Sensitivity-Liste (im unten stehenden Beispiel "(a, b)"
bzw. "(a, c)") ist eine Liste von Signalen, deren Änderung
eine vorgegebene Aktion auslöst. Im unten stehenden korri
gierten Beispiel löst eine Änderung von a oder c die Neube
rechnung von d aus. "Vollständig" ist eine Sensitivity-Liste,
wenn sie alle Signale enthält, deren Änderung die Aktion aus
löst. "Minimal" ist sie, wenn sie keine überflüssigen Signale
enthält.
Der Quellcode in diesem Beispiel lautet zunächst:
Hier ist die Sensitivity-Liste weder vollständig (es fehlt c)
noch minimal (b ist überflüssig). Die Änderung von a oder c
bewirkt eine Neuberechnung von d.
Nach der automatischen Korrektur erhält man:
Diese Zeilen sind konsistent, d. h. die Sensitivity-Liste ist
minimal und vollständig.
Die CASE-Anweisung ist eine Verzweigungsanweisung in Abhän
gigkeit von einer endlichen Anzahl von möglichen Zuständen
von Objekten, hier der Variablen "state". Diese kann im unten
gezeigten Beispiel die Werte "red, green" oder "blue" anneh
men. Jeder dieser Werte löst eine unterschiedliche Aktion
aus. Das Verfahren erkennt solche sogenannten Finite State
Machines (FSM) und fügt hier einen Default-Zweig in die ent
sprechende CASE-Anweisung ein, um Probleme beim Compilieren
und Abbilden in Hardware zu vermeiden. Ein Default-Zweig gibt
an, welche Aktion eintritt, falls die Variable "state" keinen
der bereits definierten Zustände einnimmt. Es handelt sich
hierbei um eine zusätzlich Grammatik-Regel, die die Konsi
stenz des Programms gewährleisten soll.
Der Quellcode lautet zunächst:
Nach der automatischen Korrektur erhält man:
Die Konsistenz ist auch hier gewährleistet.
Das Verfahren erkennt Referenzen, die sich auf die eigene Bi
bliothek beziehen, aber nicht mit work benannt sind, wie sie
es sein sollten. Da eine solche ungenaue Namensgebung Proble
me für die Übersetzung bringen kann, benennt das Verfahren
diese Referenzen automatisch um. Es handelt sich hier somit
um eine weitere lexikalische Regel.
Der Quellcode lautet zunächst:
Nach der automatischen Korrektur erhält man:
Die Bibliothek hat jetzt den vorgegebenen Namen.
Das Verfahren löst kombinierte Deklarationen in übersichtli
chere Einzeldeklarationen auf, beeinflußt somit die Syntax
des Programms mit einer entsprechenden Syntax-Regel.
Der Quellcode lautet zunächst:
Nach der automatischen Korrektur erhält man:
Die syntaktische Umstellung der Deklaration hat hier den Ef
fekt einer erhöhten Übersichtlichkeit.
Das Verfahren wandelt Anweisungen der Hardware-Beschreibungs
sprache VHDL, die die sogenannte positional association be
nutzen, in Anweisungen um, die die übersichtlichere named as
sociation benutzen. Bei der positional association ergibt
sich die Zuordnung von aktuellen Parametern (hier z. B. "clk"
oder "req") zu formalen Parametern aus der Stellung der Ob
jekte im Ausdruck (hier an erster und dritter Position). Bei
der named association wird explizit mit Namen angegeben, wel
ches Objekt auf welchen Parameter abgebildet wird. Dadurch
erhöht sich die Übersichtlichkeit gerade bei einer Vielzahl
an Objekten erheblich.
Der Quellcode lautet zunächst:
Nach der automatischen Korrektur erhält man:
Hier liegt somit ein weiteres Beispiel einer syntaktischen
Regel für einen übersichtlichen Kodierstil vor.
Fig. 3 zeigt schematisch die Schritte eines bevorzugten Aus
führungsbeispiels des auf dem Computer 10 ausgeführten Ver
fahrens nach dem zweiten Aspekt der Erfindung. Zunächst wird
wiederum das zu überprüfende Computerprogramm etwa von einer
Diskette im Diskettenlaufwerk 14 in den RAM 16 geladen.
Entsprechend dem bereits erläuterten Verfahren liest die CPU
18 das zu untersuchende Computerprogramm aus dem Arbeitsspei
cher 16 und durchsucht es auf Verletzungen von vorgegebenen
Regeln der Programmiersprache und der weiteren Kodierregeln.
Für jede gefundene Verletzung einer vorgegebenen Regel wird
zunächst überprüft, ob diese Regelverletzung zu ignorieren
ist.
Dies geschieht anhand einer Liste der zu ignorierenden Regel
verletzungen. Diese Liste enthält die unterschiedlichen Defi
nition für erlaubte Regelverletzungen, welche weiter unten
genauer erläutert werden.
Ist die Rechtsverletzung zu ignorieren, so wird unmittelbar
die nächste Regelverletzung gesucht.
Für jede gefundene und nicht zu ignorierende Verletzung einer
vorgegebenen Regel wird mindestens eine mögliche Korrektur im
Computerprogramm berechnet. Die Korrekturmöglichkeiten werden
auf dem Monitor 20 oder über das Netzwerk zur interaktiven
Auswahl durch einen Programmierer ausgeben.
Dabei kann der Programmierer wählen, ob er die Regelverlet
zung korrigieren oder ignorieren will.
Will er sie korrigieren, kann er aus den verschiedenen Kor
rekturmöglichkeiten mit Hilfe der Tastatur 12 oder einer
(nicht gezeigten) Maus oder mittels Sprachsteuerung eine Kor
rekturmöglichkeit auswählen. Nach Wahl einer Korrekturmög
lichkeit wird das zu überarbeitende Computerprogramm durch
die Verarbeitungseinheit entsprechend geändert. Anschließend
wird die nächste Regelverletzung gesucht.
Will der Programmierer die Regelverletzung ignorieren, so
kann er zwischen einem einmaligen Ignorieren und einem stän
digen Ignorieren wählen.
Wählt der Programmierer das einmalige Ignorieren, so wird die
nächste Regelverletzung gesucht.
Wählt der Programmierer das ständige Ignorieren dieser Ver
letzung, so wird ihm eine Auswahl an möglichen Definitionen
dieser Regelverletzung (siehe unten) angeboten. Hat er eine
Definition gewählt, so wird diese in einer gesonderten Liste
von Definitionen von zu ignorierenden Regelverletzungen ge
speichert. Anschließend wird die nächste Regelverletzung ge
sucht.
Nach Abschluß der Korrekturen wird das Computerprogramm von
der CPU 18 wieder in den Arbeitsspeicher 16 geschrieben, von
wo aus es den diversen Ausgabemitteln zugeleitet werden kann.
Die Liste von Definitionen von zu ignorierenden Regelverlet
zungen kann zur Dokumentation ausgegeben werden.
Im bevorzugten Ausführungsbeispiel der Erfindung, der Korrek
tur von Regelverletzungen in VHDL (siehe unten), werden die
zu ignorierenden Regelverletzungen auf unterschiedliche Weise
alternativ oder kumulativ definiert.
Führt ein Name eines Objektes oder einer Funktion, der auf
einen anderswo deklarierten Namen verweist, zu einer Regel
verletzung, kann ein Ausnahmefall definiert werden durch
- - eine konkrete Angabe des deklarierten Namens, oder
- - die hierarchische Definition des Namens mittels der Biblio thek, zu der er gehört, der Designunit innerhalb der Bi bliothek und schließlich des Namens innerhalb der De signunit.
Weiterhin kann eine Ausnahme durch Angabe einer Deklarations
umgebung definiert werden. Die Deklarationsumgebung kann zum
einen eine Designunit sein. Sie kann auch eine Datei aus der
Mehrzahl von Dateien sein, in die das Computerprogramm zer
legt wurde. Oder die Deklarationsumgebung kann ein beliebiger
sichtbarer Deklarationsbereich sein, das ist die Zusammen
schau aller durch explizites Einbinden als bekannt angegebe
ner Bereiche aus anderen Bibliotheken oder Designunits.
Es kann die Definition einer Ausnahme auch durch Angabe le
diglich eines Teils der oben erwähnten Bereiche erfolgen.
Führt ein Name lokal zu einer Verletzung, so kann der Name
konkret oder hierarchisch definiert werden. Der Name kann
auch als zu einem bestimmten Bereich bzw. Umfeld eines Kon
strukts gehörend spezifiziert werden.
Gebiete des Quellcodes können von der Überprüfung ausgenommen
werden. Die Gebiete können definiert werden durch:
- - Zeilen und/oder Spalten;
- - Anfangszeilen und Endzeilen und/oder Anfangsspalten und Endspalten;
- - Knoten im Parse-/Syntax-Baum, d. h. der Baumstruktur, die den grammatischen Aufbau des Quellcodes strukturiert wider spiegelt;
- - Anfangs- und Endknoten im Parse-/Syntax-Baum;
- - einem Pfad im Parse-/Syntax-Baum;
- - Knoten mit Unterknoten im Parse-/Syntax-Baum; und/oder
- - Knoten und/oder Unterknoten im Parse-/Syntax-Baum innerhalb eines ausgewählten Gebiets.
Auch können gewisse Klassen von Konstrukten von der Überprü
fung bzw. Korrektur ausgenommen werden.
Im Folgenden werden anhand der Programmiersprache VHDL einige
Beispiele für den Einsatz des Verfahrens aufgezeigt. VHDL
steht für "very high speed integrated circuits hardware
description language". Es ist eine objektbasierte Program
miersprache, die speziell zum Beschreiben und Testen von
Hardwarebausteinen wie ASICs entwickelt wurde.
Bestimmte Simulationswerkzeuge erfordern es, daß zur Spezifi
kation von Attributen sogenannte Dummy-Objekte, d. h. nicht
weiter benutzte Objekte, deklariert werden. Solche unbenutz
ten Objekte müssen im Quellcode verbleiben und dürfen nicht
automatisch entfernt werden. Im folgenden, grob skizzierten
Beispiel ist die Konstante c ein solches Dummy-Objekt.
Oft wird externer Code in einen Quellcode eingebunden, der
aus unterschiedlichen Gründen nicht vorgegebenen Kodierregeln
entspricht, der aber auch nicht geändert werden soll. Es kann
sich dabei z. B. um älteren Code oder zugekauften Code han
deln. Werden definierte Konstrukte wie Typen, Objekte, etc.
aus diesem Code verwendet, so zieht deren Benutzung automa
tisch die Meldung einer Verletzung einer Kodierregel nach
sich, die bisher nicht verhindert werden konnte. In einem
solchen Fall soll die Meldung der Verletzung unter Nennung
der Kodierregel unterbleiben.
Als Beispiel diene die Kodierregel, gemäß derer Funktionen
stets durch "_f" beendet werden und Konstanten durch "_c".
Der nachfolgend beispielhaft abgedruckte fremde Quellcode
verletzt diese Konvention:
Die Einbindung dieser Funktion führt zu einer unumgänglichen
Benutzung des nicht der Kodierregel entsprechenden Namens
"inc" anstelle von "inc_f":
Im Zusammenhang mit der Modellierung von Gated Clocks kann es
notwendig sein, das Datum, welches an den Eingang eines ge
takteten Elements angelegt wird, etwas zu verzögern. Dies ist
in der Regel durch Kodierregeln verboten. Im folgenden
Beispiel wird der Eingang I um eine Femtosekunde (1 fs = 10-15 s)
verzögert, indem der Eingang I auf die interne Variable T
um 1 fs verzögert gegeben wird und anschließend T auf den
Ausgang O gegeben wird.
Ein solches Konstrukt kann als Ausnahme erlaubt werden.
Im Rahmen der Erfindung sind zahlreiche Abwandlungen und Wei
terbildungen sowohl der zu Fig. 2 als auch der zu Fig. 3 be
schriebenen Beispiele möglich. Die vorgestellten Beispiele
beschreiben nur einen Bruchteil der möglichen Ermittlungen
von Korrekturen bzw. Ausnahmen von Korrekturen. Ferner können
die beiden in den Fig. 2 und 3 beschriebenen Verfahrensabläu
fe kombiniert werden, wodurch erreicht wird, daß sowohl eine
Ermittlung von Korrekturen als auch eine Ignorierung von bestimmten,
vordefinierten "Ausnahme-Regelverletzungen" im sel
ben Programmdurchlauf erfolgt.
Claims (34)
1. Verfahren zum Überarbeiten eines in einer Programmierspra
che verfaßten Computerprogramms, wobei durch einen Computer
das Computerprogramm zunächst auf Verletzungen von vorgege benen Konsistenz-, Syntax-, Grammatik-Regeln oder lexikali schen Regeln durchsucht wird;
für eine Verletzung einer vorgegebenen Regel eine mögliche Korrektur im Computerprogramm berechnet wird; und wobei
das Computerprogramm gemäß der berechneten Korrektur geän dert wird.
das Computerprogramm zunächst auf Verletzungen von vorgege benen Konsistenz-, Syntax-, Grammatik-Regeln oder lexikali schen Regeln durchsucht wird;
für eine Verletzung einer vorgegebenen Regel eine mögliche Korrektur im Computerprogramm berechnet wird; und wobei
das Computerprogramm gemäß der berechneten Korrektur geän dert wird.
2. Verfahren nach Anspruch 1,
dadurch gekennzeichnet, daß
für eine Verletzung einer vorgegebenen Regel eine Mehrzahl an
möglichen Korrekturen der Regelverletzung im Computerprogramm
berechnet wird.
3. Verfahren nach Anspruch 2,
dadurch gekennzeichnet, daß
für eine Verletzung einer vorgegebenen Regel eine Korrektur
möglichkeit aus der Mehrzahl an Korrekturmöglichkeiten auto
matisch oder interaktiv ausgewählt wird.
4. Verfahren nach einem der Ansprüche 1 bis 3,
dadurch gekennzeichnet, daß
das Computerprogramm bereits während einer sukzessiven Einga
be auf Verletzungen von vorgegebenen Regeln durchsucht wird
und die Verletzungen noch während der Eingabe graphisch
kenntlich gemacht werden.
5. Verfahren nach einem der Ansprüche 1 bis 4,
dadurch gekennzeichnet, daß
das Computerprogramm bereits während einer sukzessiven Einga
be auf Verletzungen von vorgegebenen Regeln durchsucht wird
und eine vorgegebene Art von Verletzungen noch während der
Eingabe automatisch korrigiert wird.
6. Computerprogrammprodukt, das direkt in den internen Spei
cher (16) eines Computers (10) geladen werden kann und Compu
terprogramm-Code-Abschnitte umfaßt, mit denen die Schritte
nach einem der Ansprüche 1 bis 5 ausgeführt werden, wenn das
Computerprogrammprodukt auf einem Computer ausgeführt wird.
7. Computerprogrammprodukt, das auf einem computergeeigneten
Medium gespeichert ist und computerlesbare Programmittel um
faßt, die es einem Computer (10) ermöglichen, das Verfahren
nach einem der Ansprüche 1 bis 5 auszuführen.
8. Datenträger, auf dem ein Computerprogramm gespeichert ist,
das es einem Computer (10) ermöglicht, das Verfahren nach ei
nem der Ansprüche 1 bis 5 auszuführen.
9. Computersystem mit Mitteln zum Ausführen des Verfahrens
nach einem der Ansprüche 1 bis 5.
10. Computersystem zum Überarbeiten eines in einer Program
miersprache verfaßten Computerprogramms
mit einer Speichereinrichtung (14, 16) zum Speichern des Computerprogramms auf einem Speichermedium;
mit einer Verarbeitungseinheit (18), die das Computerpro gramm aus der Speichereinrichtung (14, 16) ausließt und analysiert;
wobei die Verarbeitungseinheit (18) das Computerprogramm zunächst auf Verletzungen von vorgegebenen Konsistenz-, Syntax-, Grammatik-Regeln oder lexikalischen Regeln durch sucht;
wobei die Verarbeitungseinheit (18) für eine Verletzung ei ner vorgegebenen Regel eine mögliche Korrektur im Computer programm berechnet;
wobei die Verarbeitungseinheit (18) das Computerprogramm gemäß der berechneten Korrektur ändert;
wobei die Verarbeitungseinheit (18) anschließend das Compu terprogramm in überarbeiteter Form in die Speichereinrich tung (14, 16) schreibt; und
mit einer Ausgabeeinrichtung (20, 22), wobei die Ausgabe einrichtung (20, 22) das Computerprogramm in überarbeiteter Form aus der Speichereinrichtung (14, 16) ausließt und aus gibt.
mit einer Speichereinrichtung (14, 16) zum Speichern des Computerprogramms auf einem Speichermedium;
mit einer Verarbeitungseinheit (18), die das Computerpro gramm aus der Speichereinrichtung (14, 16) ausließt und analysiert;
wobei die Verarbeitungseinheit (18) das Computerprogramm zunächst auf Verletzungen von vorgegebenen Konsistenz-, Syntax-, Grammatik-Regeln oder lexikalischen Regeln durch sucht;
wobei die Verarbeitungseinheit (18) für eine Verletzung ei ner vorgegebenen Regel eine mögliche Korrektur im Computer programm berechnet;
wobei die Verarbeitungseinheit (18) das Computerprogramm gemäß der berechneten Korrektur ändert;
wobei die Verarbeitungseinheit (18) anschließend das Compu terprogramm in überarbeiteter Form in die Speichereinrich tung (14, 16) schreibt; und
mit einer Ausgabeeinrichtung (20, 22), wobei die Ausgabe einrichtung (20, 22) das Computerprogramm in überarbeiteter Form aus der Speichereinrichtung (14, 16) ausließt und aus gibt.
11. Computersystem nach Anspruch 10,
dadurch gekennzeichnet, daß
die Verarbeitungseinheit (18) für eine Verletzung einer vor
gegebenen Regel eine Mehrzahl an möglichen Korrekturen der
Regelverletzung im Computerprogramm berechnet.
12. Computersystem nach Anspruch 11,
dadurch gekennzeichnet, daß
die Verarbeitungseinheit (18) für eine Verletzung einer vor
gegebenen Regel eine Korrekturmöglichkeit aus der Mehrzahl an
Korrekturmöglichkeiten automatisch oder interaktiv auswählt.
13. Computersystem nach einem der Ansprüche 10 bis 12,
dadurch gekennzeichnet, daß
die Verarbeitungseinheit (18) das Computerprogramm bereits
während einer sukzessiven Eingabe auf Verletzungen von vorge
gebenen Regeln durchsucht und die Verletzungen von der Ausga
beeinrichtung (18) noch während der Eingabe graphisch kennt
lich gemacht werden.
14. Computersystem nach einem der Ansprüche 10 bis 13,
dadurch gekennzeichnet, daß
die Verarbeitungseinheit (18) das Computerprogramm bereits
während einer sukzessiven Eingabe auf Verletzungen von vorge
gebenen Regeln durchsucht und eine vorgegebene Art von Ver
letzungen noch während der Eingabe automatisch korrigiert.
15. Verfahren zum Überarbeiten eines in einer Programmier
sprache verfaßten Computerprogramms, wobei durch einen Compu
ter
das Computerprogramm auf Verletzungen von vorgegebenen Kon sistenz-, Syntax-, Grammatik-Regeln oder lexikalischen Re geln hin analysiert wird; und wobei
Verletzungen definiert werden können, die bei der Analyse automatisch ignoriert werden.
das Computerprogramm auf Verletzungen von vorgegebenen Kon sistenz-, Syntax-, Grammatik-Regeln oder lexikalischen Re geln hin analysiert wird; und wobei
Verletzungen definiert werden können, die bei der Analyse automatisch ignoriert werden.
16. Verfahren nach Anspruch 15,
dadurch gekennzeichnet, daß
die Definition von zu ignorierenden Verletzungen durch kon
krete, verallgemeinerte oder hierarchische Spezifizierung der
Verletzung erfolgt.
17. Verfahren nach Anspruch 15 oder 16,
dadurch gekennzeichnet, daß
die Definition von zu ignorierenden Verletzungen durch Angabe
der Deklarationsumgebung der Verletzung erfolgt.
18. Verfahren nach einem der Ansprüche 15 bis 17,
dadurch gekennzeichnet, daß
die Definition von zu ignorierenden Verletzungen durch Spezi
fizierung eines Bereichs oder Umfelds eines Konstrukts er
folgt.
19. Verfahren nach einem der Ansprüche 15 bis 18,
dadurch gekennzeichnet, daß
die Definition von zu ignorierenden Verletzungen durch Spezi
fizieren von Gebieten des Quellcodes des Computerprogramms
erfolgt, wobei die Gebiete definiert werden durch die Angabe
von:
Zeilen und/oder Spalten;
Anfangszeilen und Endzeilen und/oder Anfangsspalten und Endspalten;
Knoten im Parse-/Syntax-Baum;
Anfangs- und Endknoten im Parse-/Syntax-Baum;
einem Pfad im Parse-/Syntax-Baum.
Zeilen und/oder Spalten;
Anfangszeilen und Endzeilen und/oder Anfangsspalten und Endspalten;
Knoten im Parse-/Syntax-Baum;
Anfangs- und Endknoten im Parse-/Syntax-Baum;
einem Pfad im Parse-/Syntax-Baum.
20. Verfahren nach einem der Ansprüche 15 bis 19,
dadurch gekennzeichnet, daß
die Definition von zu ignorierenden Verletzungen durch Angabe
einer Klasse von Konstrukten erfolgt.
21. Verfahren nach einem der Ansprüche 15 bis 20,
dadurch gekennzeichnet, daß
die Definition von zu ignorierenden Verletzungen durch Angabe
einer Klasse von Knoten erfolgt.
22. Verfahren nach Anspruch 21,
dadurch gekennzeichnet, daß
die Definition von zu ignorierenden Verletzungen durch Angabe
einer Klasse von Knoten mit Unterknoten erfolgt.
23. Computerprogrammprodukt, das direkt in den internen Spei
cher (16) eines Computers (10) geladen werden kann und Compu
terprogramm-Code-Abschnitte umfaßt, mit denen die Schritte
nach einem der Ansprüche 15 bis 22 ausgeführt werden, wenn
das Computerprogrammprodukt auf einem Computer ausgeführt
wird.
24. Computerprogrammprodukt, das auf einem computergeeigneten
Medium gespeichert ist und computerlesbare Programmittel um
faßt, die es einem Computer (10) ermöglichen, das Verfahren
nach einem der Ansprüche 15 bis 22 auszuführen.
25. Datenträger, auf dem ein Computerprogramm gespeichert
ist, das es einem Computer (10) ermöglicht, das Verfahren
nach einem der Ansprüche 15 bis 22 auszuführen.
26. Computersystem mit Mitteln zum Ausführen des Verfahrens
nach einem der Ansprüche 15 bis 22.
27. Computersystem zum Überarbeiten eines in einer Program
miersprache verfaßten Computerprogramms
mit einer Speichereinrichtung (14, 16) zum Speichern des Computerprogramms auf einem Speichermedium;
mit einer Verarbeitungseinheit (18), die das Computerpro gramm aus der Speichereinrichtung (14, 16) ausliest und analysiert;
wobei die Verarbeitungseinheit (18) das Computerprogramm zunächst auf Verletzungen von vorgegebenen Konsistenz-, Syntax-, Grammatik-Regeln oder lexikalischen Regeln durch sucht; und
mit Mitteln zum Definieren von Verletzungen, die bei der Analyse automatisch ignoriert werden.
mit einer Speichereinrichtung (14, 16) zum Speichern des Computerprogramms auf einem Speichermedium;
mit einer Verarbeitungseinheit (18), die das Computerpro gramm aus der Speichereinrichtung (14, 16) ausliest und analysiert;
wobei die Verarbeitungseinheit (18) das Computerprogramm zunächst auf Verletzungen von vorgegebenen Konsistenz-, Syntax-, Grammatik-Regeln oder lexikalischen Regeln durch sucht; und
mit Mitteln zum Definieren von Verletzungen, die bei der Analyse automatisch ignoriert werden.
28. Computersystem nach Anspruch 27,
gekennzeichnet durch
Mittel zum Definieren von zu ignorierenden Verletzungen durch
konkrete, verallgemeinerte oder hierarchische Spezifizierung
der Verletzung.
29. Computersystem nach Anspruch 27 oder 28,
gekennzeichnet durch
Mittel zum Definieren von zu ignorierenden Verletzungen durch
Angabe der Deklarationsumgebung der Verletzung.
30. Computersystem nach einem der Ansprüche 27 bis 29,
gekennzeichnet durch
Mittel zum Definieren von zu ignorierenden Verletzungen durch
Spezifizierung eines Bereichs oder Umfelds eines Konstrukts.
31. Computersystem nach einem der Ansprüche 27 bis 30,
gekennzeichnet durch
Mittel zum Definieren von zu ignorierenden Verletzungen durch
Spezifizieren von Gebieten des Quellcodes des Computerpro
gramms, wobei die Gebiete definiert werden durch die Angabe
von:
Zeilen und/oder Spalten;
Anfangszeilen und Endzeilen und/oder Anfangsspalten und Endspalten;
Knoten im Parse-/Syntax-Baum;
Anfangs- und Endknoten im Parse-/Syntax-Baum;
einem Pfad im Parse-/Syntax-Baum.
Zeilen und/oder Spalten;
Anfangszeilen und Endzeilen und/oder Anfangsspalten und Endspalten;
Knoten im Parse-/Syntax-Baum;
Anfangs- und Endknoten im Parse-/Syntax-Baum;
einem Pfad im Parse-/Syntax-Baum.
32. Computersystem nach einem der Ansprüche 27 bis 31,
gekennzeichnet durch
Mittel zum Definieren von zu ignorierenden Verletzungen durch
Angabe einer Klasse von Konstrukten.
33. Computersystem nach einem der Ansprüche 27 bis 32,
gekennzeichnet durch
Mittel zum Definieren von zu ignorierenden Verletzungen durch
Angabe einer Klasse von Knoten.
34. Computersystem nach Anspruch 33,
gekennzeichnet durch
Mittel zum Definieren von zu ignorierenden Verletzungen durch
Angabe einer Klasse von Knoten mit Unterknoten.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10041111A DE10041111A1 (de) | 2000-08-22 | 2000-08-22 | Verfahren zum Überarbeiten eines in einer Programmiersprache verfaßten Computerprogramms |
US09/935,355 US20020104072A1 (en) | 2000-08-22 | 2001-08-22 | Method, computer program product, programmed data medium, and computer system for revising a computer program written in a programming language |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10041111A DE10041111A1 (de) | 2000-08-22 | 2000-08-22 | Verfahren zum Überarbeiten eines in einer Programmiersprache verfaßten Computerprogramms |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10041111A1 true DE10041111A1 (de) | 2002-03-14 |
Family
ID=7653338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10041111A Ceased DE10041111A1 (de) | 2000-08-22 | 2000-08-22 | Verfahren zum Überarbeiten eines in einer Programmiersprache verfaßten Computerprogramms |
Country Status (2)
Country | Link |
---|---|
US (1) | US20020104072A1 (de) |
DE (1) | DE10041111A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2048781A1 (de) * | 2007-10-08 | 2009-04-15 | Whirpool Corporation | Berührungsschalter für Elektrogeräte und Elektrogerät mit derartigem Schalter |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10127170A1 (de) * | 2001-06-05 | 2002-12-19 | Infineon Technologies Ag | Fehlersuchverfahren und Fehlersuchvorrichtung |
US20040031017A1 (en) * | 2002-08-12 | 2004-02-12 | Shankar Vaidyanathan | System and method for context-sensitive help in a design environment |
US20050114841A1 (en) * | 2003-11-21 | 2005-05-26 | Moskowitz Milton E. | Automatic computer code review tool |
US20060277525A1 (en) * | 2005-06-06 | 2006-12-07 | Microsoft Corporation | Lexical, grammatical, and semantic inference mechanisms |
US8954852B2 (en) * | 2006-02-03 | 2015-02-10 | Sonic Solutions, Llc. | Adaptive intervals in navigating content and/or media |
KR101051600B1 (ko) * | 2010-03-29 | 2011-07-22 | 주식회사 소프트 포 소프트 | 아밥 소스코드의 코드 검사를 수행하는 코드검사 수행시스템 |
US9027001B2 (en) | 2012-07-10 | 2015-05-05 | Honeywell International Inc. | Systems and methods for verifying expression folding |
WO2014152800A1 (en) | 2013-03-14 | 2014-09-25 | Massively Parallel Technologies, Inc. | Project planning and debugging from functional decomposition |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6016467A (en) * | 1997-05-27 | 2000-01-18 | Digital Equipment Corporation | Method and apparatus for program development using a grammar-sensitive editor |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5487147A (en) * | 1991-09-05 | 1996-01-23 | International Business Machines Corporation | Generation of error messages and error recovery for an LL(1) parser |
US5613119A (en) * | 1994-07-25 | 1997-03-18 | Motorola Inc. | Data processor initialization program and method therefor |
US6343376B1 (en) * | 1998-10-22 | 2002-01-29 | Computer Computer Corporation | System and method for program verification and optimization |
-
2000
- 2000-08-22 DE DE10041111A patent/DE10041111A1/de not_active Ceased
-
2001
- 2001-08-22 US US09/935,355 patent/US20020104072A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6016467A (en) * | 1997-05-27 | 2000-01-18 | Digital Equipment Corporation | Method and apparatus for program development using a grammar-sensitive editor |
Non-Patent Citations (1)
Title |
---|
HASELIER, FAHNENSTICH: Word 6.0 für Windows, Bonn, Addison-Wesley GmbH, 1994, S. 250-253 und 580-581, ISBN 3-89319-627-7 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2048781A1 (de) * | 2007-10-08 | 2009-04-15 | Whirpool Corporation | Berührungsschalter für Elektrogeräte und Elektrogerät mit derartigem Schalter |
Also Published As
Publication number | Publication date |
---|---|
US20020104072A1 (en) | 2002-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69817581T2 (de) | System und verfahren zum umwandeln von graphischen programmen in hardware-implementierungen | |
DE69316210T2 (de) | Fehlerbeseitiger, der die zuordnung zwischen dem quellprogramm und optimierten objektcode beinhaltet. | |
DE69229889T2 (de) | Automatische Logikmodell-Erzeugung aus einer Schaltschema-Datenbank | |
DE69625948T2 (de) | Kompiler mit generischem Front-End und dynamisch ladbaren Back-Ends | |
DE69720821T2 (de) | Fehlersuchsystem für Programme mit einer graphischen Benutzerschnittstelle | |
DE102005055133A1 (de) | System für den maschinengestützten Entwurf technischer Vorrichtungen | |
WO2015185328A1 (de) | Computerimplementiertes verfahren und signalfolge für ein programm zur wiederverwendung von ausführbaren softwarekonfigurationen für softwaresysteme sowie rechneranlage und ein computerprogramm mit programmcode zur durchführung des verfahrens | |
EP1723513A1 (de) | Verfahren zur konfiguration eines computerprogramms | |
DE10127170A1 (de) | Fehlersuchverfahren und Fehlersuchvorrichtung | |
EP1904923A1 (de) | Verfahren und softwaresystem zur konfiguration eines modularen systems | |
DE10333087A1 (de) | Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle | |
DE10041111A1 (de) | Verfahren zum Überarbeiten eines in einer Programmiersprache verfaßten Computerprogramms | |
DE10038499A1 (de) | Verfahren und System für die verbesserte Entwicklungsprüfung mittels angepasster Ablaufverfolgung | |
EP3047341B1 (de) | System zum rechnergestützten erstellen von regeln zur überwachung und/oder diagnose einer technischen anlage | |
DE102010033861A1 (de) | Auf einer formellen Analyse basierte Entwicklung von Anforderungsspezifikationen | |
DE102021116315A1 (de) | Verfahren zum Zusammenführen von Architekturinformationen | |
EP2363809B1 (de) | Verfahren zur Optimierung eines Steuerprogramms für Aktuatoren | |
DE10256990A1 (de) | Programmcodegenerator und Programm | |
DE10324594A1 (de) | Verfahren zum Bereitstellen einer verbesserten Simulationsfähigkeit eines dynamischen Systems außerhalb der ursprünglichen Modellierungsumgebung | |
DE102009043287A1 (de) | Verfahren und Anordnung zum Installieren und Konfigurieren eines Computersystems | |
DE102019008598A1 (de) | Identifikation und Visualisierung von Assoziationen zwischen Code, der von einem Modell generiert ist, und Quellen, welche die Codegeneration beeinflussen | |
WO2005109196A1 (de) | Verfahren zur bestimmung von verklemmungen in nebenläufigen prozessen | |
DE69329007T2 (de) | Kompilierungsmechanismus für Simulationsmodelle | |
EP3001318A1 (de) | Bestimmung von Signalen für Readback aus FPGA | |
EP2360576B1 (de) | Verfahren und Einrichtung zur Projektierung einer industriellen Automatisierungsanordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |