DE10300541A1 - Erzeugen einer ausführbaren Datei - Google Patents

Erzeugen einer ausführbaren Datei

Info

Publication number
DE10300541A1
DE10300541A1 DE10300541A DE10300541A DE10300541A1 DE 10300541 A1 DE10300541 A1 DE 10300541A1 DE 10300541 A DE10300541 A DE 10300541A DE 10300541 A DE10300541 A DE 10300541A DE 10300541 A1 DE10300541 A1 DE 10300541A1
Authority
DE
Germany
Prior art keywords
instructions
machine
cause
compiler
list
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.)
Withdrawn
Application number
DE10300541A
Other languages
English (en)
Inventor
Helge Altfeld
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.)
Qimonda AG
Original Assignee
Infineon Technologies 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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE10300541A1 publication Critical patent/DE10300541A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • 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)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

Bei einem Verfahren zum Erzeugen einer ausführbaren Datei wird ein Zielname an einem oder mehreren vorbestimmten Punkten in Teile unterteilt. Bei dem Verfahren wird außerdem mindestens ein Teil als eine Listenvariable gespeichert. Bei dem Verfahren kann außerdem bestimmt werden, ob der Zielname an einem oder mehreren Begrenzungszeichen weiter unterteilt werden kann.

Description

    GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft die Softwareentwicklung und insbesondere das Erzeugen eines ausführbaren Bilds unter Verwendung eines Makefiles.
  • HINTERGRUND
  • Bei der Entwicklung von Software wird in der Regel ein Satz von Tools verwendet, um Sourcecode in ein ausführbares Programm umzuwandeln. Ein typisches Tool enthält einen Preprocessor, einen Compiler, einen Assembler und einen Linker. Wenn ein Entwickler den Sourcecode geschrieben hat, bereitet der Preprocessor den Code für den Compiler vor. Bei der Vorbereitung werden in der Regel Macros durch ihre Macrodefinition ersetzt, "include"-Statements aufgelöst, indem andere Komponenten aufgenommen werden, oder Kommentarzeilen bereinigt. Danach wird er von einem Compiler kompiliert. Der Sourcecode besteht in der Regel aus einem oder mehreren in einer höheren Sprache geschriebenen Sourcefiles. Der Compiler übersetzt diese Sourcefiles in eine niedrigere Sprache. So konvertiert beispielsweise ein Compiler für die Sprache C ein Sourcefile in C, einer Hochsprache, in eine Assembler- Sprache, eine niedrigere Sprache. In der Regel enthält ein Befehl zum Starten des Compilers Bedingungen, mit denen der Compiler den Code verarbeitet.
  • Der Assembler konvertiert dann den Assembler-Sprachcode in Objectfiles. Objectfiles enthalten einen Objectcode, den ein Computer direkt versteht. In der letzten Entwicklungsstufe verknüpft der Linker die Objectfiles sowohl miteinander als auch mit Codebibliotheken, die eingebaute Funktionen enthalten. Das Ergebnis dieser Verknüpfungsoperation ist eine ausführbare Datei.
  • Das Kompilieren größerer Programme dauert in der Regel viel länger als das Kompilieren von kurzen Programmen. In den meisten Fällen wird zwischen den Kompilierungsoperationen nur ein kleiner Abschnitt des Sourcecodes tatsächlich modifiziert, und der Rest des Sourcecodes bleibt unverändert. Ein "Make"-Befehl verfolgt, welche Teile des Sourcecodes geändert worden sind, und kompiliert nur diejenigen Teile des Sourcecodes, die sich seit der letzten Kompilierung geändert haben.
  • Um den "Make"-Befehl effektiv zu verwenden, insbesondere wenn viele Sourcecodefiles kombiniert werden müssen, wird eine als ein "Makefile" bezeichnete Datei beschrieben. Das Makefile beschreibt die Beziehungen zwischen den einzelnen Dateien des Programms und liefert Befehle zur Aktualisierung jeder Datei. Das Makefile bestimmt die Beziehungen zwischen Sourcefiles, Objectfiles und der ausführbaren Datei. Sobald ein geeignetes Makefile existiert, nimmt der "Make"-Befehl immer dann alle notwendigen Kompilierungen vor, wenn sich die Sourcefiles ändern.
  • KURZE DARSTELLUNG DER ERFINDUNG
  • Unter einem Aspekt handelt es sich bei der Erfindung um ein Verfahren zum Erzeugen einer ausführbaren Datei. Bei dem Verfahren wird ein Zielname an einem oder mehreren vorbestimmten Punkten in Teile unterteilt und mindestens ein Teil als eine Listenvariable gespeichert.
  • Dieser Aspekt kann eines oder mehrere der folgenden Merkmale enthalten. Das Unterteilen beinhaltet das Identifizieren der vorbestimmten Punkte, indem eine erste Zeichenfolge erfaßt wird, die Compilerbedingungen trennt. Das Erfassen der ersten Zeichenfolge beinhaltet das Erfassen einer Unterstreichung. Das Unterteilen beinhaltet das Identifizieren der vorbestimmten Punkte durch Erfassen einer zweiten Zeichenfolge, die Runset-Komponenten trennt. Das Erfassen der zweiten Zeichenfolge beinhaltet das Erfassen eines Punktes. Das Sichern mindestens eines Teils beinhaltet das Verwenden der Listenvariable als eine Runset-Komponente. Das Sichern mindestens eines Teils beinhaltet das Verwenden der Listenvariablen als eine Manufacturingset-Komponente. Das Sichern mindestens eines Teils beinhaltet das Verwenden der Listenvariablen als eine Compilerbedingung. Bei dem Verfahren wird bestimmt, daß der Zielname an einem oder mehreren Begrenzungszeichen weiter unterteilt werden kann. Bei dem Verfahren wird weiterhin die Listenvariable als eine Abhängigkeit verwendet. Bei dem Verfahren wird die Listenvariable als ein deklariertes Objekt verwendet. Bei dem Verfahren wird die Listenvariable so transformiert, daß sie eine compilerspezifische Vorsilbe aufweist.
  • Unter einem weiteren Aspekt handelt es sich bei der Erfindung um eine Vorrichtung, die einen Speicher, der ausführbare Anweisungen zum Erzeugen einer ausführbaren Datei unter Verwendung einer Computersprache speichert, und einen Prozessor enthält. Der Prozessor führt Anweisungen aus, um einen Zielnamen an einem oder mehreren vorbestimmten Punkten in Unterteile zu unterteilen und mindestens einen Unterteil als eine Listenvariable zu speichern.
  • Dieser Aspekt kann eines oder mehrere der folgenden Merkmale aufweisen. Anweisungen zum Unterteilen beinhalten Anweisungen zum Identifizieren der vorbestimmten Punkte durch Erfassen einer ersten Zeichenfolge, die Compilerbedingungen trennt. Das Erfassen der ersten Zeichenfolge beinhaltet das Erfassen einer Unterstreichung. Anweisungen zum Unterteilen beinhalten Anweisungen zum Identifizieren der vorbestimmten Punkte durch Erfassen einer zweiten Zeichenfolge, die Runset-Komponenten trennt. Das Erfassen der zweiten Zeichenfolge beinhaltet das Erfassen eines Punktes. Anweisungen zum Sichern mindestens eines Teils beinhalten Anweisungen zur Verwendung der Listenvariablen als eine Runset-Komponente. Anweisungen zum Sichern mindestens eines Teils beinhalten Anweisungen zum Verwenden der Listenvariablen als eine Manufacturingset-Komponente. Anweisungen zum Sichern mindestens eines Teils beinhalten Anweisungen zur Verwendung der Listenvariablen als eine Compilerbedingung. Der Prozessor führt Anweisungen aus, um zu bestimmen, daß der Zielname an einem oder mehreren Begrenzungszeichen weiter unterteilt werden kann. Der Prozessor führt Anweisungen aus, um die Listenvariable als eine Abhängigkeit zu verwenden. Der Prozessor führt Anweisungen aus, um die Listenvariable als ein deklariertes Objekt zu verwenden. Der Prozessor führt Anweisungen aus, um die Listenvariable zu transformieren, so daß sie eine compilerspezifische Vorsilbe aufweist.
  • Unter noch einem weiteren Aspekt ist die Erfindung ein Gegenstand, der ein maschinenlesbares Medium enthält, das ausführbare Anweisungen zum Erzeugen einer ausführbaren Datei speichert. Die Anweisungen bewirken, daß eine Maschine einen Zielnamen an einem oder mehreren vorbestimmten Punkten in Unterteile unterteilt und mindestens einen Unterteil als eine Listenvariable speichert.
  • Dieser Aspekt kann eines oder mehrere der folgenden Merkmale aufweisen. Die Anweisungen zum Unterteilen beinhalten Anweisungen, die bewirken, daß eine Maschine die vorbestimmten Punkte identifiziert, indem sie eine erste Zeichenfolge erfaßt, die Compilerbedingungen trennt. Anweisungen zum Erfassen der ersten Zeichenfolge umfassen Anweisungen, die bewirken, daß eine Maschine eine Unterstreichung erfaßt. Anweisungen zum Unterteilen beinhalten Anweisungen, die bewirken, daß eine Maschine die vorbestimmten Punkte durch Erfassen einer zweiten Zeichenfolge identifiziert, die Runset- Komponenten trennt. Anweisungen zum Erfassen der zweiten Zeichenfolge beinhalten Anweisungen, die bewirken, daß eine Maschine einen Punkt erfaßt. Anweisungen zum Sichern mindestens eines Teils beinhalten Anweisungen, die bewirken, daß eine Maschine die Listenvariable als eine Runset-Komponente verwendet. Anweisungen zum Sichern mindestens eines Teils beinhalten Anweisungen, die bewirken, daß eine Maschine die Listenvariable als eine Manufacturingset-Komponente verwendet. Anweisungen zum Sichern mindestens eines Teils beinhalten Anweisungen, die bewirken, daß die Maschine die Listenvariable als eine Compilerbedingung verwendet: Anweisungen zum Bestimmen, daß der Zielname an einem oder mehreren Begrenzungszeichen weiter unterteilt werden kann, Anweisungen zur Verwendung der Listenvariablen als eine Abhängigkeit, Anweisungen zum Verwenden der Listenvariablen als ein deklariertes Objekt und Anweisungen zum Transformieren der Listenvariablen, so daß sie eine compilerspezifische Vorsilbe aufweist.
  • Einige oder alle der Aspekte der oben beschriebenen Erfindung können einige oder alle der folgenden Vorteile aufweisen. Die Erfindung gestattet die automatische Erstellung ausführbarer Dateien, ohne daß ein Benutzer für jeden einzelnen Runset eine Zeile eingeben muß. Die Erfindung erzeugt automatisch Aufrufe an einen Compiler für alle Kombinationen von Runset-Komponenten und Manufacturingprocess-Komponenten immer dann, wenn das Runset in einem "Makefile" beschrieben ist.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Flußdiagramm für einen Prozeß des Erzeugens einer ausführbaren Datei.
  • Fig. 2 ist ein Blockschaltbild eines Computersystems, in dem der Prozeß von Fig. 1 implementiert werden kann.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Unter Bezugnahme auf Fig. 1 wird ein Prozeß 10 dazu verwendet, unter Verwendung eines Makefile einen Softwarecode zu erstellen. Insbesondere erstellt der Prozeß 10 automatisch alle Aufrufe an einen Compiler (d. h., ohne daß ein Benutzer für jede Komponente ein Script schreiben muß). Der Prozeß 10 erstellt diese Aufrufe auf der Basis eines hier als der "Zielname" bezeichneten Namens der zu erstellenden Software.
  • Bei einer Kompilierung wird ein Compiler aufgerufen, die Sourcefiles zu verarbeiten. Gleichzeitig werden dem Compiler Compilerbedingungen zugeordnet, die der Compiler während der Kompilierung verwendet. Compilerbedingungen sind auch als Compilerflags und Compilerswitches bekannt. Alle Aufrufe an einen Compiler werden in ein Runscript geschrieben, beispielsweise in ein "Makefile". Die die Codeerstellung steuernden Runscripts erfordern jedoch, daß die Compilerbedingungen sowie die Sourcefilenames in das Runscript aufgenommen und direkt in dieses geschrieben werden.
  • Das manuelle Schreiben der Compilerbedingungen und der Sourcefilenames in die Runscripts ist wegen der einzugebenden Menge an Informationen eine Aufgabe, die für Fehler anfällig ist. Dies gilt insbesondere dann, wenn viele Komponenten mit vielen Sourcefilevariationen vorliegen.
  • Beispielsweise ist es schwierig, Konfigurationsscripts (Runsets) zu ändern, um als Reaktion auf Änderungen bei der Herstellungstechnologie das physische Design eines Halbleiters zu verifizieren. Bei diesem Beispiel ist jeder Halbleiterherstellungstechnologie (z. B. C9D1, C10D0 und C10D1) ein Satz von Verifikationsrunsettypen zugeordnet (z. B. drc, extract und lvs). Jeder Runset enthält: eine Runset- Komponente, die den Typ von Runset eindeutig definiert, und eine Manufacturingprocess-Komponente, die die Manufacturingtechnologie eindeutig definiert. Somit existiert ein Runset aus Sourcefile-Kombinationen. Beispielsweise können drei verschiedene Manufacturingprocess-Komponenten und drei Typen von Runset-Komponenten wie folgt in einem Runset dargestellt werden:


  • Ohne den Prozeß 10 müßte ein Entwickler für jedes der Runsets eine Zeile in das Makefile eingeben. In dem obigen Beispiel gibt es neun Runset-Einträge, die die Beziehung zwischen jedem Typ von Runset-Komponente und jeder Manufacturingprocess-Komponente beschreiben. Ohne den Prozeß 10 würde ein Entwickler für jeden weiteren Herstellungsprozeß drei Zeilen des Runscripts ändern müssen. Der Prozeß 10 erstellt jedoch automatisch die Aufrufe an einen Compiler für alle Kombinationen aus Runset-Komponenten und Manufacturingprocess-Komponenten immer dann, wenn in einem "Makefile" ein Runset beschrieben wird.
  • Der Prozeß 10 basiert auf zwei zugrundeliegenden Annahmen. Erstens enthält der Zielname eine eindeutige Referenz auf ein Sourcefile und/oder eine Compilerbedingung. Beispielsweise gibt es in dem obigen Beispiel nur einen mit C10D0 bezeichneten Herstellungsprozeß. Zweitens weisen die abzuändernden Softwarekomponenten und die Compilerbedingungen eine eindeutige Beziehung auf. Bei dem obigen Beispiel weist jeder Herstellungsprozeß drei Typen von Sourcefiles für jeden der Runsets auf, z. B. *.drc, *.extract und *.lvs.
  • Der Prozeß 10 unterteilt (12) den Zielnamen entlang im voraus spezifizierten Punkten. Es soll beispielsweise der Zielname "C10DD0_PROPC_CDS.drc.rul." betrachtet werden. Der Prozeß 10 trennt den Zielnamen in fünf Teile: "C10DD0", "PROPC", "CDS", "drc" und "rul". Der erste Teil jedes Zielnamens wird standardmäßig als eine Komponente bezeichnet, und der letzte Teil wird ignoriert, da er einen Dateityp bezeichnet. Von den verbleibenden Teilen nimmt der Prozeß 10die Teile vor einem Punkt und behandelt diesen Teil als eine Komponente. Dann werden die Teile, vor denen eine Unterstreichung steht, als Compilerbedingungen gekennzeichnet. Somit weist der obige Zielname zwei Compilerbedingungen (PROPC, CDS) und zwei Komponenten (C10DD0, drc) auf.
  • Der Prozeß 10 speichert (14) einen oder mehrere Teile des Zielnamens als Listenvariable, beispielsweise TECH="C10DD0" und PURPOSE = "drc". Der Prozeß 10 muß nicht jeden Teil des Zielnamens einer Listenvariablen gleichsetzen. Beispielsweise kann der Prozeß 10 eine Listenvariable TECHSWITCH gleich "PROPC CDS" setzen, so daß zwei Teile in einer Listenvariablendefinition verwendet werden.
  • Der Prozeß 10 bestimmt (16), ob die Teile des Zielnamens weiter in Unterteile unterteilt werden können. Falls dies der Fall ist, unterteilt (12) der Prozeß 10 den Zielnamen weiter und sichert (14) Unterteile des Zielnamens als zusätzliche Listenvariablen. Beispielsweise kann TECH="C10DD0" an einem Begrenzungszeichen "DD" weiter segmentiert werden, so daß neue Listenvariablen zugeordnet werden können. Beispielsweise MAJORTECH="10" und MINORTECH="0".
  • Der Prozeß 10 verwendet (18) die Listenvariablen zur Darstellung der Komponenten als eine Abhängigkeit oder ein deklariertes Objekt oder eine Kombination aus beiden. Abhängigkeiten sind Dateien, die innerhalb der Kompilierung verwendet werden und somit im voraus durch den "Make"- Mechanismus überprüft werden. Die Abhängigkeit ist ein von der "Make"-Beschreibung herrührender Name. Ein deklariertes Objekt ist das Sourcefile, an dem der Compiler arbeitet. Beispielsweise wird als Zielzeile folgendes in ein Makefile gesetzt:

    *.rul::TECH.definition PURPOSE.source SHAREDFILES cpp -DSTEP=MAJORTECH -DREVISION=MINORTECH PURPOSE.source

    wobei PURPOSE.source das deklarierte Objekt ist, TECH.definition, PURPOSE.source und SHAREDFILES Abhängigkeiten sind und cpp den C-Preprocessor darstellt. Das obige Beispiel führt dazu, daß beim Kompilieren die extrahierten Komponenten. "C10DD0.defs" und "drc.source" verwendet werden. Der Teil "C10DD0" des Zielnamens wird in die Variable "TECH" gesteckt, der Teil "drc" des Zielnamens in die Variable "PURPOSE". Diese Variablen werden mit den jeweiligen Dateiendungen kombiniert und innerhalb des Preprocessoraufrufs als Dateinamen verwendet. Im obigen Beispiel entspricht die "-D"-Option einem "#define" im Sourcecode.
  • Der Prozeß 10 transformiert (20) die die Compilerbedingungen darstellenden Listenvariablen durch Hinzufügen einer compilerspezifischen Vorsilbe. Beispielsweise steht vor jeder Komponente von TECHSWITCH ein compilerspezifisches Optionsvorzeichen (innerhalb einer Schleife). Unter der Annahme, daß die spezifische Option "-D" ist, wird dann die Liste TECHSWITCH="PROPC CDS" transformiert in TECHSWITCH="-DPROPC -DCDS". Diese modifizierte Liste wird dann in der Aufrufzeile an den Compiler übergeben, d. h.

    cpp . . . TECHSWITCH PURPOSE.source.
  • Das folgende Beispiel ist ein Codebeispiel, das Prozeß 10 verwendet:




    #Hierarchischer Aufruf des Compilers mit den oben # extrahierten Bedingungen und Komponenten
    all: $(ALLTARGETS)
    $ (ALLPURPS): %: $ (foreach P1, $ (ALLTECHS), $ (P1). %. rul)
    $ (ALLTECHS): %: $ (foreach P1, $ (ALLPURPS), %. $ (P1). rul)
  • #Da Make Variablen nicht in der Abhängigkeitszeile # interpretiert, muß es rekursiv sein, so daß diese #benötigten Komponenten aus RCS heraus überprüft werden


  • Fig. 2 zeigt einen Computer 50 zum Erstellen von Softwarecode unter Verwendung des Prozesses 10. Der Computer 50 enthält einen Prozessor 52 zum Verarbeiten von Softwarecode, einen Speicher 54 und ein Speichermedium 56 (z. B. eine Festplatte). Auf dem Speichermedium 56 sind ein Betriebssystem 60, Daten 62 zum Speichern von Sourcefiles, Objectfiles und ausführbaren Dateien und Computeranweisungen 58 gespeichert, die zur Ausführung des Prozesses 10 vom Prozessor 52 ausgeführt werden müssen.
  • Der Prozessor 10 ist nicht auf die Verwendung mit der Hardware und Software von Fig. 2 beschränkt und kann in jeder Rechner- oder Verarbeitungsumgebung und bei jedem beliebigen Maschinentyp angewendet werden, auf dem ein Computerprogramm laufen kann. Der Prozeß 10 kann in Hardware, Software oder einer Kombination der beiden implementiert werden. Der Prozeß 10 kann in Computerprogrammen implementiert werden, die auf programmierbaren Computern/Maschinen ausgeführt werden, die jeweils einen Prozessor, ein Speichermedium/einen Gegenstand, der vom Prozessor gelesen werden kann (einschließlich flüchtiger und nichtflüchtiger Speicher und/oder Speicherkomponenten), mindestens eine Eingabeeinrichtung und eine oder mehrere Ausgabeeinrichtungen enthält. Der Programmcode kann auf Daten angewendet werden, die unter Verwendung einer Eingabeeinrichtung eingegeben werden, um den Prozeß 10 durchzuführen und Ausgabeinformationen zu erzeugen.
  • Jedes derartige Programm kann in einer höheren prozedur- oder objektorientierten Programmiersprache implementiert werden, um mit einem Computersystem zu kommunizieren. Die Programme können jedoch in Assembler- oder Maschinensprache implementiert werden. Die Sprache kann eine kompilierte oder eine interpretierte Sprache sein. Jedes Computerprogramm kann auf einem Speichermedium (Gegenstand) oder einer Speichereinrichtung (z. B. CD-ROM, Festplatte oder magnetischer Diskette) gespeichert werden, die von einem programmierbaren Allzweck- oder Spezialcomputer gelesen werden kann, um den Computer zu konfigurieren und zu betreiben, wenn das Speichermedium oder die Speichereinrichtung zur Ausführung des Prozesses 10 vom Computer gelesen wird. Der Prozeß 10 kann auch als ein maschinenlesbares Speichermedium implementiert werden, das mit einem Computerprogramm konfiguriert ist, wobei Anweisungen im Computerprogramm bei Ausführung bewirken, daß der Computer gemäß Prozeß 10 arbeitet.
  • Die Erfindung ist nicht auf die hier beschriebenen spezifischen Ausführungsformen beschränkt. Beispielsweise kann der Prozeß 10 für Aufrufe zu einem Preprocessor anstatt einem Compiler modifiziert werden oder so modifiziert werden, daß er beide enthält. Außerdem ist die Erfindung nicht auf Makefiles oder den Make-Befehl beschränkt, sondern umfaßt jedes beliebige Softwareprogramm, das Aufrufe von mehreren Quellen erfordert. Die Erfindung ist nicht auf die spezifische Verarbeitungsreihenfolge von Fig. 1 beschränkt. Vielmehr können die Blöcke von Fig. 1 gegebenenfalls umgeordnet werden, um die oben dargelegten Ergebnisse zu erzielen.
  • Weitere, hier nicht beschriebene Ausführungsformen liegen ebenfalls innerhalb des Umfangs der folgenden Ansprüche.

Claims (36)

1. Verfahren zum Erzeugen einer ausführbaren Datei, wobei das Verfahren umfaßt:
Unterteilen eines Zielnamens in Teile an einem oder mehreren vorbestimmten Punkten und
Sichern mindestens eines Teils als Listenvariable.
2. Verfahren nach Anspruch 1, wobei das Unterteilen das Identifizieren der vorbestimmten Punkte durch Erfassen einer ersten Zeichenfolge umfaßt, die Compilerbedingungen trennt.
3. Verfahren nach Anspruch 2, wobei das Erfassen der ersten Zeichenfolge das Erfassen einer Unterstreichung umfaßt.
4. Verfahren nach Anspruch 1, wobei das Unterteilen das Identifizieren der vorbestimmten Punkte durch Erfassen einer zweiten Zeichenfolge umfaßt, die Runset- Komponenten trennt.
5. Verfahren nach Anspruch 4, wobei das Erfassen der zweiten Zeichenfolge das Erfassen eines Punktes umfaßt.
6. Verfahren nach einem der Ansprüche 1 bis 5, wobei das Sichern mindestens eines Teils das Verwenden der Listenvariablen als eine Runset-Komponente umfaßt.
7. Verfahren nach einem der Ansprüche 1 bis 5, wobei das Sichern mindestens eines Teils das Verwenden der Listenvariablen als eine Manufacturingset-Komponente umfaßt.
8. Verfahren nach einem der Ansprüche 1 bis 5, wobei das Sichern mindestens eines Teils das Verwenden der Listenvariablen als eine Compilerbedingung umfaßt.
9. Verfahren nach einem der Ansprüche 1 bis 8, weiterhin umfassend ein Bestimmen, daß der Zielname an einem oder mehreren Begrenzungszeichen weiter unterteilt werden kann.
10. Verfahren nach Anspruch 8, weiterhin umfassend ein Verwenden der Listenvariablen als eine Abhängigkeit.
11. Verfahren nach Anspruch 8, weiterhin umfassend ein Verwenden der Listenvariablen als ein deklariertes Objekt.
12. Verfahren nach Anspruch 11, weiterhin umfassend ein Transformieren der Listenvariable, so daß sie eine compilerspezifische Vorsilbe aufweist.
13. Vorrichtung, die umfaßt:
einen Speicher, der ausführbare Anweisungen zum Erzeugen von Softwarecode unter Verwendung einer Computersprache speichert, und
einen Prozessor, der die Anweisungen ausführt, um:
einen Zielnamen an einem oder mehreren vorbestimmten Punkten in Unterteile zu unterteilen und
mindestens einen Unterteil als eine Listenvariable zu sichern.
14. Vorrichtung nach Anspruch 13, wobei das Unterteilen das Identifizieren der vorbestimmten Punkte durch Erfassen einer ersten Zeichenfrequenz umfaßt, die Compilerbedingungen trennt.
15. Vorrichtung nach Anspruch 13 oder 14, wobei das Erfassen der ersten Zeichenfolge das Erfassen einer Unterstreichung umfaßt.
16. Vorrichtung nach einem der Ansprüche 13 bis 15, wobei das Unterteilen das Identifizierten der vorbestimmten Punkte durch Erfassen einer zweiten Zeichenfolge umfaßt, die Runset-Komponenten trennt.
17. Vorrichtung nach Anspruch 16, wobei das Erfassen der zweiten Zeichenfolge das Erfassen eines Punktes umfaßt.
18. Vorrichtung nach einem der Ansprüche 13 bis 16, wobei das Sichern mindestens eines Teils die Verwendung der Listenvariablen als eine Runset-Komponente umfaßt.
19. Vorrichtung nach einem der Ansprüche 13 bis 16, wobei das Sichern mindestens eines Teils die Verwendung der Listenvariablen als eine Manufacturingset-Komponente umfaßt.
20. Vorrichtung nach einem der Ansprüche 13 bis 16, wobei das Sichern mindestens eines Teils die Verwendung der Listenvariablen als eine Compilerbedingung umfaßt.
21. Vorrichtung nach einem der Ansprüche 13 bis 20, weiterhin umfassend ein Bestimmen, daß der Zielname an einem oder mehreren Begrenzungszeichen weiter unterteilt werden kann.
22. Vorrichtung nach einem der Ansprüche 13 bis 21, weiterhin umfassend ein Verwenden der Listenvariablen als eine Abhängigkeit.
23. Vorrichtung nach einem der Ansprüche 13 bis 21, weiterhin umfassend ein Verwenden der Listenvariablen als ein deklariertes Objekt.
24. Vorrichtung nach Anspruch 23, weiterhin umfassend ein Transformieren der Listenvariablen, so daß sie eine compilerspezifische Vorsilbe aufweist.
25. Gegenstand mit einem maschinenlesbaren Medium, das ausführbare Anweisungen zum Erzeugen einer ausführbaren Datei speichert, wobei die Anweisungen bewirken, daß eine Maschine:
einen Zielnamen an einem oder mehreren vorbestimmten Punkten in Unterteile unterteilt und
mindestens einen Unterteil als eine Listenvariable sichert.
26. Gegenstand nach Anspruch 25, wobei die Anweisungen, die bewirken, daß die Maschine unterteilt, Anweisungen umfassen, die bewirken, daß die Maschine die vorbestimmten Punkte durch Erfassen einer ersten Zeichenfolge identifiziert, die Compilerbedingungen trennt.
27. Gegenstand nach Anspruch 25 oder 26, wobei die Anweisungen, die bewirken, daß die Maschine die erste Zeichenfolge erfaßt, Anweisungen umfassen, die bewirken, daß die Maschine eine Unterstreichung erfaßt.
28. Gegenstand nach einem der Ansprüche 25 bis 27, wobei die Anweisungen, die bewirken, daß die Maschine unterteilt, Anweisungen umfassen, die bewirken, daß die Maschine die vorbestimmten Punkte durch Erfassen einer zweiten Zeichenfolge identifiziert, die Runset-Komponenten trennt.
29. Gegenstand nach Anspruch 28, wobei die Anweisungen, die bewirken, daß die Maschine die zweite Zeichenfolge erfaßt, Anweisungen umfassen, die bewirken, daß die Maschine einen Punkt erfasst.
30. Gegenstand nach einem der Ansprüche 25 bis 29, wobei die Anweisungen, die bewirken, daß die Maschine mindestens einen Teil sichert, Anweisungen umfassen, die bewirken, daß die Maschine die Listenvariable als eine Runset- Komponente verwendet.
31. Gegenstand nach einem der Ansprüche 25 bis 29, wobei die Anweisungen, die bewirken, daß die Maschine mindestens einen Teil sichert, Anweisungen umfassen, die bewirken, daß die Maschine die Listenvariable als eine Manufacturingset-Komponente verwendet.
32. Gegenstand nach einem der Ansprüche 25 bis 31, wobei die Anweisungen, die bewirken, daß die Maschine mindestens einen Teil sichert, Anweisungen umfassen, die bewirken, daß die Maschine die Listenvariable als eine Compilerbedingung verwendet.
33. Gegenstand nach einem der Ansprüche 25 bis 32, weiterhin umfassend Anweisungen, die bewirken, daß die Maschine bestimmt, daß der Zielname an einem oder mehreren Begrenzungszeichen weiter unterteilt werden kann.
34. Gegenstand nach einem der Ansprüche 25 bis 33, weiterhin umfassend Anweisungen, die bewirken, daß die Maschine die Listenvariable als eine Abhängigkeit verwendet.
35. Gegenstand nach einem der Ansprüche 25 bis 33, weiterhin umfassend Anweisungen, die bewirken, daß die Maschine die Listenvariable als ein deklariertes Objekt verwendet.
36. Gegenstand nach Anspruch 35, weiterhin umfassend Anweisungen, die bewirken, daß die Maschine die Listenvariable transformiert, so daß sie eine compilerspezifische Vorsilbe aufweist.
DE10300541A 2002-01-25 2003-01-09 Erzeugen einer ausführbaren Datei Withdrawn DE10300541A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/057,500 US6976247B1 (en) 2002-01-25 2002-01-25 Generating an executable file

Publications (1)

Publication Number Publication Date
DE10300541A1 true DE10300541A1 (de) 2003-08-21

Family

ID=27622739

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10300541A Withdrawn DE10300541A1 (de) 2002-01-25 2003-01-09 Erzeugen einer ausführbaren Datei

Country Status (2)

Country Link
US (1) US6976247B1 (de)
DE (1) DE10300541A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7742833B1 (en) 2006-09-28 2010-06-22 Rockwell Automation Technologies, Inc. Auto discovery of embedded historians in network
US8181157B2 (en) * 2006-09-29 2012-05-15 Rockwell Automation Technologies, Inc. Custom language support for project documentation and editing
US7930261B2 (en) * 2007-09-26 2011-04-19 Rockwell Automation Technologies, Inc. Historians embedded in industrial units
US20090089671A1 (en) * 2007-09-28 2009-04-02 Rockwell Automation Technologies, Inc. Programmable controller programming with embedded macro capability

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389460B1 (en) * 1998-05-13 2002-05-14 Compaq Computer Corporation Method and apparatus for efficient storage and retrieval of objects in and from an object storage device

Also Published As

Publication number Publication date
US6976247B1 (en) 2005-12-13

Similar Documents

Publication Publication Date Title
EP1723513B1 (de) Verfahren zur konfiguration eines computerprogramms
DE60010420T2 (de) Automatisches Regressionstesten von Arbeitsplatz-Software
DE69909945T2 (de) Verfahren und Anordnung zur Korrelation von Profildaten dynamisch erzeugt durch ein optimiertes ausführbares Programm mit Quellcodeanweisungen
DE69720821T2 (de) Fehlersuchsystem für Programme mit einer graphischen Benutzerschnittstelle
DE60313652T2 (de) Verfahren und gerät zur kontrolle der umwandlung von programm-kodes
DE69831732T2 (de) Verfahren und gerät zum korrigieren von fehlern in einem rechnersystem
DE3750188T2 (de) Verfahren zur In-Linie Implementierung einer Vorstellung in einem Informationsverarbeitungssystem.
DE69932371T2 (de) Verschiebbare Instrumentationskennzeichen für die Prüfung und die Fehlerbeseitigung eines Computerprogramms
DE3750515T2 (de) Verfahren zur Zugriffssteuerung einer Datenbasis.
EP1738257B1 (de) Verfahren zum vermeiden von dateninkonsistenz zwischen zugriffen verschiedener funktionen einer anwendung auf eine globale variable in einer datenverarbeitungsanlage
EP1904923A1 (de) Verfahren und softwaresystem zur konfiguration eines modularen systems
DE69026208T2 (de) Verfahren zur Erkennung möglicher Fehler einer Programmierung in Assembler Sprache mit Erfassung offensichtlicher Inkonsistenz mit einer vorhergehenden Operation
DE19581754B4 (de) System und Verfahren zum bedingten Kompilieren einer Software-Kompiliereinheit
DE112018002316T5 (de) Codeabdeckungsverfolgung für ein mikrocontroller-programm
DE19924702A1 (de) Systeme mit einheitlicher Datenstruktur, Verfahren und Computerprogrammprodukte zur Feststellung von globalen Konflikten
EP2977888B1 (de) Verfahren und System zur Speicherung und zur Versionsverwaltung von Computerprogrammen
DE112019002778T5 (de) Simulationsvorrichtung, simulationsverfahren und elektronische steuereinheitsvorrichtung
DE102018214541A1 (de) Verfahren und vorrichtung zum abbilden von single-static-assignment-anweisungen auf einen datenflussgraphen in einer datenflussarchitektur
WO2009010338A1 (de) Verfahren zur rechnergestützten obfuskierung eines softwareprogramms und computerprogrammprodukt
DE10300541A1 (de) Erzeugen einer ausführbaren Datei
DE102011006000B4 (de) Signaturaktualisierung durch Codetransformation
DE10393511T5 (de) Programmentwicklungsunterstützungsvorrichtung, Programmausführungsvorrichtung, Kompilierverfahren und Diagnoseverfahren
Ducasse et al. Tool support for refactoring duplicated OO code
DE102019008598A1 (de) Identifikation und Visualisierung von Assoziationen zwischen Code, der von einem Modell generiert ist, und Quellen, welche die Codegeneration beeinflussen
DE69219420T2 (de) Verfahren und gerät zur rechnercode-verarbeitung in einem codeübersetzer

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: QIMONDA AG, 81739 MUENCHEN, DE

8141 Disposal/no request for examination