DE19729603A1 - Fernkompilierung eines Quellencodes für eine Querentwicklung - Google Patents

Fernkompilierung eines Quellencodes für eine Querentwicklung

Info

Publication number
DE19729603A1
DE19729603A1 DE19729603A DE19729603A DE19729603A1 DE 19729603 A1 DE19729603 A1 DE 19729603A1 DE 19729603 A DE19729603 A DE 19729603A DE 19729603 A DE19729603 A DE 19729603A DE 19729603 A1 DE19729603 A1 DE 19729603A1
Authority
DE
Germany
Prior art keywords
computer system
format
development
target
converting
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
DE19729603A
Other languages
English (en)
Inventor
Gerald P Duggan
David J Staudacher
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE19729603A1 publication Critical patent/DE19729603A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Description

Diese Erfindung bezieht sich auf Computersysteme und insbe­ sondere auf das Kompilieren eines Quellencodes in derartigen Computersystemen. Spezieller bezieht sich die Erfindung auf das entfernte Kompilieren eines Quellencodes auf einem Ziel­ computer.
Software wird häufig unter Verwendung mehrerer Typen von Computersystemen entwickelt. Beispielsweise besitzen große Organisationen Mainframe-Computer, Workstation-Computer Ab­ teilungs-Server-Computer und Personalcomputer, die durch einzelne Personen in der Organisation verwendet werden. Ob­ wohl diese Mannigfaltigkeit eine enorme Flexibilität ermög­ licht, um Preis- und Verhaltens-Anforderungen für verschie­ dene Rechenfunktionen zu erfüllen, fügt dieselbe dem Anwen­ dungsentwicklungsprozeß eine Komplexität hinzu.
Viele Entwicklungsorganisationen benötigen ein UnixTM-System auf dem Schreibtisch eines Ingenieurs zur Softwareentwick­ lung, und einen Personalcomputer auf dem gleichen Schreib­ tisch für Büroautomatisationsaufgaben. Dies verdoppelt die Kosten pro Ingenieur für die Organisation effektiv. Überdies müssen alle diese Computersysteme betreut werden, was die Anzahl der Betreuungstrainings- und Systemadministrations- Belegschaft, die von der Organisation benötigt wird, weiter erhöht. Dies erhöht ferner die Trainingsmenge für Entwick­ ler, die notwendig ist, um mehrere Entwicklungsumgebungen zu verwenden, und für die neue Technologie.
Bei bekannten Systemen existieren, wenn Software für ein spezielles Zielcomputersystem entwickelt werden muß, zwei Optionen. Die erste Option besteht darin, die Software auf dem Zielcomputersystem unter Verwendung existierender Text­ editoren, Kompiler usw. für das Zielcomputersystem zu ent­ wickeln. Dies funktioniert sehr gut, wenn der Code nur für ein Zielcomputersystem entwickelt wird. Wenn jedoch ein Code entwickelt werden muß, der auf mehreren Zielcomputersystemen läuft, ist es erforderlich, daß jedes dieser Computersysteme für den Entwickler zugreifbar ist. Für die effizienteste Verwendung der Entwicklerzeit muß jedes dieser Zielcomputer­ systeme ferner auf dem Schreibtisch des Entwicklers vorlie­ gen, was aufwendig und manchmal schwierig einzurichten ist.
Eine Schwierigkeit bei der Entwicklung auf mehreren unter­ schiedlichen Computersystemen besteht darin, daß der Ent­ wickler die Umgebung von jedem der Zielcomputersysteme ler­ nen muß. Dies ist zeitaufwendig, wobei, wenn ein Entwickler häufig zwischen unterschiedlichen Umgebungen wechselt, dies sehr verwirrend werden kann. Ferner muß der Quellencode für das Projekt ebenfalls zu jeder Umgebung bewegt werden, wobei dies in einigen Fällen schwierig oder unmöglich ist.
Eine zweite Option, die verfügbar ist, wenn ein Code für ein Zielcomputersystem entwickelt wird, besteht darin, einen Querkompiler zu verwenden, was ein Kompiler ist, der auf ei­ nem Computersystem arbeitet, jedoch einen ausführbaren Pro­ grammiercode für einen zweiten Computersystemtyp erzeugt. Dies kann die einzige Option sein, wenn das Zielcomputersy­ stem zu klein ist, um einen in demselben enthaltenen Editor oder Kompiler aufzuweisen. Wenn das Zielcomputersystem selbst ein größeres Computersystem ist, sind Querkompiler häufig nicht verfügbar, so daß diese Option nicht möglich ist.
In der Technik besteht ein Bedarf nach einem System, das die Entwicklung eines Codes auf einem Computersystem ermöglicht, während derselbe auf ein zweites Computersystem oder mehr als ein Computersystem abzielt. Es existiert ein weiterer Bedarf in der Technik nach einem solchen System, das den Co­ de, der kompiliert werden soll, zu dem Zielcomputersystem sendet, wodurch der Bedarf nach einem Querkompiler beseitigt ist. Ein weiterer Bedarf existiert nach einem System, das die Benutzerumgebung des Entwicklungscomputersystems beibe­ hält, während ein Code für mehr als ein Zielcomputersystem entwickelt wird. Die vorliegende Erfindung erfüllt diese und weitere Bedürfnisse auf dem Gebiet der Technik.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein flexibles Verfahren und eine flexible Vorrichtung zum Kompi­ lieren eines Codes auf einem Zielcomputersystem zu schaffen.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 und eine Vorrichtung gemäß Anspruch 5 gelöst.
Ein Vorteil der vorliegenden Erfindung besteht darin, einen Quellencode oder einen Verknüpfungsobjektcode, der auf einem Entwicklungscomputersystem entwickelt wird, entfernt auf ei­ nem Zielcomputersystem zu kompilieren.
Ein weiterer Vorteil der Erfindung besteht darin, Kompiler- oder Verknüpfer-Parameter aus der Entwicklungscomputersy­ stem-Syntax in die Zielcomputersystem-Syntax zu übersetzen.
Ein weiterer Vorteil der Erfindung besteht darin, Fehlermel­ dungen und Rückgabecodes, die durch den Zielcomputersystem- Kompiler und -Verknüpfer ausgegeben werden, in ein Format zu übersetzen, das auf dem Entwicklungscomputersystem verwend­ bar ist.
Die obigen und weitere Aspekte der Erfindung werden in einem System erreicht, das auf einem Entwicklungscomputersystem läuft und Befehle über ein Netzwerk zu einem Zielcomputer­ system sendet, um zu bewirken, daß das Zielcomputersystem einen Code kompiliert, der auf dem Entwicklungscomputersy­ stem entwickelt wurde. Das System ersetzt den Kompiler auf dem Entwicklungscomputersystem durch einen Laufkontrollab­ schnitt (RUNSTUB), der den Befehl unterbricht, um den Code auf dem Entwicklungscomputersystem zu kompilieren oder zu verknüpfen. Wenn der Code auf einem Zielcomputersystem kom­ piliert oder verknüpft werden soll, wandelt das System sämt­ liche Befehlszeilen-Kompiler- oder Verknüpfer-Parameter in ein neutrales Parameterformat um, sendet den umgewandelten Befehl über das Netzwerk zu dem Zielcomputersystem und wan­ delt dann den Befehl in ein Format um, das auf dem Zielcom­ putersystem verwendbar ist.
Wenn während des Kompilierens oder Verknüpfens Fehler er­ zeugt werden, wandelt das System die Fehlermeldungen, die durch den Kompiler oder Verknüpfer auf dem Zielcomputersy­ stem erzeugt werden, in ein neutrales Format um und nachfol­ gend in ein Format, das durch das Entwicklungscomputersystem verwendbar ist. Folglich führt ein Entwickler, der das Ent­ wicklungscomputersystem verwendet, das Kompilieren oder Ver­ knüpfen durch und empfängt Fehlermeldungen, als ob das Kom­ pilieren oder Verknüpfen auf dem Entwicklungscomputersystem durchgeführt werden würde, während tatsächlich das wirkliche Kompilieren oder Verknüpfen auf dem Zielcomputersystem durchgeführt wurde.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeich­ nungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm des Entwicklungs- und des Ziel- Computersystems und die Verbindungen derselben;
Fig. 2 ein Flußdiagramm der Laufkontrollabschnittssoftware in dem Entwicklungscomputersystem;
Fig. 3 ein Flußdiagramm des Prozesses des Umwandelns von Parametern; und
Fig. 4 ein Flußdiagramm des Prozesses des Umwandelns von Fehlermeldungen.
Die folgende Beschreibung betrifft die gegenwärtig als am besten betrachtete Art des Durchführens der Erfindung. Diese Beschreibung soll nicht in einem begrenzenden Sinn verwendet werden, sondern dient lediglich dem Zweck der Beschreibung der allgemeinen Grundsätze der Erfindung. Der Bereich der Erfindung sollte durch Bezugnahme auf die beigefügten An­ sprüche bestimmt werden.
Fig. 1 zeigt ein Blockdiagramm des Entwicklungs- und des Ziel-Computersystems der vorliegenden Erfindung. Wie in Fig. 1 gezeigt ist, weist ein Entwicklungscomputersystem 102 eine Benutzerschnittstelle 104 auf, die die Software der Entwick­ lungsumgebung ist. Beispielsweise würde die Benutzerschnitt­ stelle 104 typischerweise einen Texteditor, einen Kompiler, einen Verknüpfer usw. aufweisen, d. h. das, was üblicherweise als eine integrierte Entwicklungsumgebung bezeichnet wird.
Die integrierte Entwicklungsumgebung Visuel C++ von Micro­ soft ist ein Beispiel einer integrierten Entwicklungsumge­ bung, die mit der vorliegenden Erfindung arbeitet. Microsoft Visual C++ verwendet ein Entwicklerstudio (Developer Studio) als eine Komponente, die Dateisammlungen und Kompilerein­ stellungen verwaltet. Wenn das Entwicklerstudio (Developer Studio) hochfährt, fährt dasselbe auf einem Arbeitsraum hoch, der aus einer Sammlung von Projekten besteht. Ein Pro­ jekt besteht aus einem einzelnen Satz von Dateien und einem Satz von einer oder mehreren Projektkonfigurationen. Benut­ zer können ohne weiteres Dateien unter Verwendung der gra­ phischen Benutzerschnittstellenmerkmale (GUI-Merkmale; GUI = graphical user interface) des Entwicklerstudios zu einem Projekt hinzufügen oder von demselben entfernen. Eine Konfi­ guration spezifiziert die Einstellungen des Kompilers, des Verknüpfers und eines Testers (Debugger), die die endgültige Ausgabe für einen Projektaufbau bestimmen. Diese Einstellun­ gen umfassen die Optimierung oder den Testpegel für den Kom­ piler, Bibliotheken, die durch den Verknüpfer (Linker) ge­ sucht werden sollen, Hochfahroptionen für das Programm, wenn dasselbe getestet wird, und viele andere Einstellungen. Der Benutzer muß eine einzelne Konfiguration für jeden speziel­ len Aufbau eines Projekts spezifizieren. Das Ändern einer Konfiguration ist eine einfache Art und Weise, eine neue Konfiguration aus einer Balkenliste (pull down list) von verfügbaren Konfigurationen auszuwählen. Das Erzeugen einer Konfiguration ist ähnlich einfach. In einer Konfiguration kann ein Benutzer das Zielcomputersystem, auf dem das Kompi­ lieren stattfinden soll, spezifizieren.
Unter Verwendung der Benutzerschnittstelle 104 erzeugt ein Entwickler eine Quellencodedatei, die auf einer Platte 106 gespeichert wird, die gemeinsam mit einem Zielcomputersystem 120 verwendet wird. Wenn der Benutzer der Benutzerschnitt­ stelle anzeigt, daß eine Kompilierung oder Verknüpfung stattfinden soll, ruft die Benutzerschnittstelle das Kompi­ ler- oder Verknüpfer-Programm, das in dem Entwicklungscompu­ tersystem enthalten ist, auf. Gemäß der vorliegenden Erfin­ dung wurden der Kompiler und der Verknüpfer jedoch in neue Namen umbenannt, wobei der ursprüngliche Kompiler/Verknüp­ fer-Name ebenfalls in RUNSTUB 108 (Laufkontrollabschnitt) umbenannt wurde, um die Kompilier- und Verknüpfungs-Befehle zu unterbrechen. Wenn die Benutzerschnittstelle 104 ver­ sucht, den Kompiler oder Verknüpfer aufzurufen, ruft daher das Entwicklungscomputersystem statt dessen RUNSTUB 108 auf. RUNSTUB 108 untersucht die Konfiguration, wobei, wenn der Code auf dem Zielcomputersystem kompiliert oder verknüpft werden soll, RUNSTUB 108 über ein Netzwerk mit einer Ziel­ schnittstelle 122 in dem Zielcomputersystem 120 kommuni­ ziert. Die Kommunikation über das Netzwerk 110 bewirkt, daß die Zielschnittstelle 122 einen Ziel-Kompiler oder -Verknüp­ fer 124 in dem Zielcomputersystem aufruft, um die Quelle, oder die Verknüpfungsobjekte, die in der Benutzerschnitt­ stelle 104 des Entwicklungscomputersystems 102 identifiziert ist oder sind, zu kompilieren.
Vor dem Aufrufen des Zielkompilers übersetzt RUNSTUB 108 al­ le Parameter aus dem Format des Entwicklungscomputersystems in ein neutrales Format und sendet die Neutralformatparame­ ter über das Netzwerk, wo die Zielschnittstelle 122 diesel­ ben aus dem neutralen Format in ein Format, das auf dem Zielcomputersystem 120 verwendbar ist, umwandelt. Fachleute auf dem Gebiet werden jedoch erkennen, daß entweder RUNSTUB 108 oder die Zielschnittstelle 122 die gesamte Übersetzung von dem Entwicklungssystemformat in das Zielsystemformat durchführen könnten.
Zusätzlich übersetzt RUNSTUB 108 Dateinamen, so daß der Zielkompiler 124 auf den Quellencode auf der Platte 106 über das Netzwerk 110 zugreifen kann.
Da der Zielkompiler 124 den Quellencode kompiliert, kann derselbe Fehlermeldungen und Rückgabecodes erzeugen, wobei diese durch das Netzwerk 110 übertragen werden. Die Ziel­ schnittstelle 122 übersetzt die Rückgabecodes oder Fehler­ meldungen in ein neutrales Format, wobei RUNSTUB 108 die Neutralformat-Fehlermeldungen in ein Format übersetzt, das durch die Benutzerschnittstelle 104 verwendbar ist. Auf die­ se Weise erscheint die Kompilierung als ob dieselbe auf dem Entwicklungscomputersystem kompiliert worden wäre, was für einen Benutzer des Entwicklungscomputersystems die bequemste Form ist.
Fig. 2 zeigt ein Flußdiagramm der RUNSTUB-Software 108. Be­ zugnehmend auf Fig. 2 erhält nach dem Eintritt ein Block 202 die Befehlszeilenparameter, die von der Benutzerschnittstel­ le 104 (Fig. 1) übertragen werden. Ein Block 204 bestimmt dann, ob die Befehlszeilenparameter einen Parameter aufwei­ sen, der anzeigt, wo der Zielaufbau stattfinden soll, wobei, wenn der Zielaufbau auf dem lokalen Computersystem stattfin­ den soll, der Block 204 die Steuerung zu einem Block 216 überträgt, der gemäß der Anforderung durch die Befehlszei­ lenparameter den lokalen Entwicklungs-Kompiler oder -Ver­ knüpfer aufruft.
Wenn der Aufbau auf dem Zielcomputersystem stattfinden soll, springt der Block 204 zu einem Block 206, der die Zielüber­ setzungsparametertabelle von der Platte 106 (Fig. 1) erhält und dann den Block 208, Fig. 3, aufruft, um die Befehlszei­ lenparameter in Parameter zu übersetzen, die durch das Ziel­ computersystem verwendbar sind. Nachdem die Befehlszeilenpa­ rameter übersetzt sind, übersetzt ein Block 210 den Dateina­ men derart, daß das Zielcomputersystem auf die Quelle und alle anderen Dateien, beispielsweise Einschluß- oder An­ fangsblock-Dateien, direkt von dem Entwicklungscomputersy­ stem zugreifen kann. Ein Block 212 sendet dann die Befehls­ zeile zu dem Zielcomputersystem, um die Kompilierung zu starten.
Während das Zielcomputersystem den Quellencode kompiliert, springt die Steuerung zu einem Block 218, der die Fehler wiedergewinnt, die durch den Zielkompiler 124 (Fig. 1) er­ zeugt werden. Ein Block 220 ruft dann Fig. 4 auf, um alle Fehler oder Rückgabecodes, die durch das Zielsystem erzeugt wurden, in ein Format zu übersetzen, das durch die Entwick­ lungsumgebung verwendbar ist, so daß dieselben durch die Be­ nutzerschnittstelle 104 angezeigt werden können.
Fig. 3 zeigt ein Flußdiagramm des Verfahrens zum Übersetzen von Befehlszeilenparametern, die von dem Block 208 von Fig. 2 aufgerufen werden. Wie in Fig. 3 gezeigt ist, erhält nach dem Eintritt ein Block 302 den ersten oder nächsten Befehl­ zeilenparameter, wobei ein Block 304 bestimmt, ob derselbe ein gemeinsamer Befehlszeilenparameter ist. Befehlszeilenpa­ rameter sind solche, die sowohl in dem Entwicklungscompu­ tersystem als auch dem Zielcomputersystem verfügbar sind, und folglich von dem Entwicklungscomputersystem-Format in das Zielcomputersystem-Format übersetzt werden müssen.
Die vorliegende Erfindung ermöglicht es jedoch, daß ein Be­ nutzer Befehlszeilenparameter einstellt, die nur auf einem speziellen Zielcomputersystem verfügbar sind. Da diese Para­ meter speziell für das Zielcomputersystem erzeugt werden, müssen dieselben nicht übersetzt werden. Bei der vorliegen­ den Erfindung werden, ausschließlich beispielsweise, diese Parametertypen außer Acht gelassen, indem dieselben in Dop­ pelklammern eingehüllt werden. Folglich werden die gemeinsa­ men Parameter dadurch bestimmt, ob dieselben von doppelten Klammern umgeben sind oder nicht.
Wenn der Parameter durch Doppelklammern umgeben ist, ist er kein gemeinsamer Parameter, so daß der Block 304 zu einem Block 312 springt, der die Doppelklammern von dem Parameter beseitigt und denselben direkt zu dem Ausgang sendet.
Wenn der Parameter ein gemeinsamer Parameter ist, springt der Block 304 zu einem Block 306, der den Parameter in ein System-neutrales Format umwandelt. Wenn der Entwicklungssy­ stemkompiler beispielsweise Microsoft Visual C++ ist, ist die Befehlzeilenoption, um normale Testinformationen (de­ bugging information) zu erzeugen, "/Zi". Die äquivalente Option für ein Zielcomputersystem, das einen Kompiler HP-UX C++ durchführt, "-g". Die vorliegende Erfindung wandelt die Testoption "/Zi" in das Wort "debug" als einem neutralen Format um, und wandelt nachfolgend den Neutralformatparame­ ter "debug" in "-g" um, wenn das Ziel HP-UX C++ ist. Wenn andererseits das Ziel ein Kompiler ANSI C++ sein soll, lau­ tet die Testoption (debug option) "-g0". In diesem Fall wür­ de die Erfindung den Neutralparameter "debug" in den Para­ meter "-g0" für die Verwendung durch den ANSI C++-Kompiler umwandeln.
Da die vorliegende Erfindung mit jeder Anzahl von Entwick­ lungscomputersystem-Benutzerschnittstellen arbeiten kann, ebenso wie mit jeder Anzahl von unterschiedlichen Zielcompu­ tersystem-Kompilern, reduziert die Verwendung des neutralen Formats den Codebetrag, der bei der Übersetzung der Parame­ ter anfällt, beträchtlich. Beispielsweise würde bei m unter­ schiedlichen Entwicklungscomputersystemen und n unterschied­ lichen Zielcomputersystemen das System ohne Verwendung des neutralen Formats m × n unterschiedliche Sätze von Überset­ zungscodes benötigen. Durch die Verwendung des neutralen Sy­ stemformats ändert die vorliegende Erfindung dies auf m + n, wodurch der Codebetrag beträchtlich reduziert wird.
Nach dem Umwandeln des Parameters in das neutrale Systemfor­ mat wandelt ein Block 308 das neutrale Systemformat in das spezielle Zielcomputersystem-Format um. Nach dem Umwandeln des Parameters, oder wenn der Parameter kein gemeinsamer Pa­ rameter war, springt die Steuerung zu einem Block 310, der bestimmt, ob weitere Parameter umgewandelt werden sollen, wobei, wenn dies der Fall ist, der Block 310 die Steuerung zu dem Block 302 zurückgibt, um den nächsten Parameter umzu­ wandeln. Nachdem alle Parameter umgewandelt wurden, springt der Block zu Fig. 2 zurück.
Fig. 4 zeigt das Flußdiagramm der Fehlerübersetzungsroutine, die durch den Block 220 von Fig. 2 aufgerufen wird. Wie in Fig. 4 gezeigt ist, erhält nach dem Eintritt ein Block 402 die erste oder die nächste Fehlermeldung, die umgewandelt werden soll. Der Block 404 extrahiert dann den Kompiler-Stu­ fennamen aus der Fehlermeldung, d. h. den Namen der speziel­ len Kompilerstufe, die den Fehler erzeugte. Beispielsweise könnte der Fehler durch einen Kompiler oder einen Verknüpfer oder einen Vorprozessor erzeugt worden sein. Nach dem Extra­ hieren des Kompilerstufennamens extrahiert dann ein Block 406 den Dateinamen der Quellendatei, die den Fehler bewirk­ te, während ein Block 408 die Zeilen- und Spalten-Nummer in der Datei, an der der Fehler auftrat, extrahiert. Ein Block 410 extrahiert dann den Fehlertyp, die Fehler-ID, beispiels­ weise eine interne Kennung, die der Kompiler verwendet, um den speziellen Fehlertyp zu identifizieren, wobei der Block 410 ferner den Fehlertext extrahiert, der zu dem Benutzer zurückgeleitet werden soll. Ein Block 412 erzeugt dann eine Neutralformat-Fehlermeldung aus den extrahierten Daten, auf die gleiche Art und Weise, auf die das neutrale Format ver­ wendet wird, um Befehlszeilenparameter umzuwandeln, wie oben beschrieben wurde. Ein Block 414 wandelt dann die Neutral­ format-Fehlermeldung in das Format um, das auf dem Entwick­ lungscomputersystem angenommen werden kann. Ein Block 416 bestimmt dann, ob weitere Fehlermeldungen, die umgewandelt werden sollen, existieren, wobei, wenn dies der Fall ist, die Steuerung zum Block 402 zurückspringt, um die nächste Fehlermeldung zu verarbeiten. Nachdem alle Fehlermeldungen verarbeitet wurden, springt der Block 416 zu Fig. 2 zurück.

Claims (7)

1. Verfahren zum Kompilieren eines Codes auf einem Ziel­ computersystem (120), wobei der Code auf einem Entwick­ lungscomputersystem (102) entwickelt wurde, mit folgen­ den Schritten:
  • (a) Unterbrechen eines Kompilierbefehls auf dem Ent­ wicklungscomputersystem (202);
  • (b) Umwandeln der Kompilierparameter in ein Format, das auf dem Zielcomputersystem (208) verwendbar ist;
  • (c) Senden eines Kompilierbefehls (212) zu dem Ziel­ computersystem, um den Code zu kompilieren, wobei der Kompilierbefehl die Parameter enthält, die im Schritt (b) umgewandelt wurden;
  • (d) Umwandeln aller Fehlermeldungen (220), die auf dem Zielcomputersystem erzeugt werden, in ein Format, das auf dem Entwicklungscomputersystem verwendbar ist; und
  • (e) Anzeigen der Ergebnisse (108) der Kompilierung auf dem Entwicklungscomputersystem.
2. Verfahren gemäß Anspruch 1, bei dem der Schritt (b) ferner folgende Schritte aufweist:
  • (b1) Umwandeln (306) der Kompilierparameter in ein Computersystem-neutrales Format; und
    (b2) Umwandeln (308) der Kompilierparameter aus dem Computersystem-neutralen Format in das Format, das auf dem Zielcomputersystem verwendbar ist.
3. Verfahren gemäß Anspruch 1 oder 2, bei dem der Schritt (d) ferner folgende Schritte aufweist:
  • (d1) Umwandeln (412) der Fehlermeldungen in ein Compu­ tersystem-neutrales Format; und
    (d2) Umwandeln (414) der Fehlermeldungen aus dem Com­ putersystem-neutralen Format in das Format, das auf dem Entwicklungscomputersystem verwendbar ist.
4. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem der Schritt (c) ferner folgenden Schritt aufweist:
  • (c1) wenn der Kompilierbefehl anzeigt, daß die Kompi­ lierung auf dem Entwicklungscomputersystem durch­ geführt werden soll, Aufrufen (216) eines Kompi­ lers auf dem Entwicklungscomputersystem, um den Quellencode zu kompilieren.
5. Eine Vorrichtung zum Kompilieren eines Codes auf einem Zielcomputersystem (120), wobei der Code auf einem Ent­ wicklungscomputersystem (102) entwickelt wurde, mit folgenden Merkmalen:
einem Übersetzungssystem (108) zum Unterbrechen eines Kompilierbefehls auf dem Entwicklungscomputersystem (102) und zum Umwandeln von Kompilierparametern in ein Format, das auf dem Zielcomputersystem (120) verwendbar ist;
einem Computersystemnetzwerk (110) zum Senden eines Kompilierbefehls zu dem Zielcomputersystem (120), um den Quellencode zu kompilieren, wobei der Kompilierbe­ fehl die Parameter enthält, die durch das Übersetzungs­ system (108) umgewandelt wurden;
einer Einrichtung in dem Übersetzungssystem (108) zum Umwandeln aller Fehlermeldungen, die durch die Ausfüh­ rung des Kompilierbefehls auf dem Zielcomputersystem erzeugt werden, in ein Format, das auf dem Entwick­ lungscomputersystem (102) verwendbar ist; und
einem Anzeigesystem zum Anzeigen der Ergebnisse des Kompilierens auf dem Entwicklungscomputersystem (102).
6. Vorrichtung gemäß Anspruch 5, bei dem die Umwandlungs­ einrichtung in dem Übersetzungssystem ferner folgende Merkmale aufweist:
eine Einrichtung (306) zum Umwandeln der Kompilierpara­ meter in ein Computersystem-neutrales Format; und
eine Einrichtung (308) zum Umwandeln der Kompilierpara­ meter aus dem Computersystem-neutralen Format in das Format, das auf dem Zielcomputersystem verwendbar ist.
7. Vorrichtung gemäß Anspruch 5 oder 6, bei dem das Über­ setzungssystem ferner folgende Merkmale aufweist:
eine Einrichtung (412) zum Umwandeln der Fehlermeldun­ gen in ein Computersystem-neutrales Format; und
eine Einrichtung (414) zum Umwandeln der Fehlermeldun­ gen aus dem Computersystem-neutralen Format in das For­ mat, das auf dem Entwicklungscomputersystem (102) ver­ wendbar ist.
DE19729603A 1996-11-26 1997-07-10 Fernkompilierung eines Quellencodes für eine Querentwicklung Withdrawn DE19729603A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/757,034 US5881289A (en) 1996-11-26 1996-11-26 Remote compiling of source code for cross development

Publications (1)

Publication Number Publication Date
DE19729603A1 true DE19729603A1 (de) 1998-05-28

Family

ID=25046087

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19729603A Withdrawn DE19729603A1 (de) 1996-11-26 1997-07-10 Fernkompilierung eines Quellencodes für eine Querentwicklung

Country Status (4)

Country Link
US (1) US5881289A (de)
JP (1) JPH10161885A (de)
DE (1) DE19729603A1 (de)
GB (1) GB2321731B (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785884B1 (en) * 1999-09-29 2004-08-31 Unisys Corporation Symbolic debug interface for register transfer simulator debugger
US6609246B1 (en) * 1999-12-07 2003-08-19 Bull Hn Information Systems Inc. Integrated development environment for high speed transaction processing WWW applications on heterogeneous computer systems
US6560722B1 (en) * 1999-12-30 2003-05-06 Texas Instruments Incorporated Developing and deploying real-time high-performance applications with DSPs
US6715109B1 (en) 2000-02-04 2004-03-30 International Business Machines Corporation Method, computer program product, and system for making standard stream data accessible that would otherwise be lost in application programs
WO2001079999A2 (en) * 2000-04-12 2001-10-25 Microsoft Corporation Method and system for accepting precompiled information
US7155606B1 (en) 2000-04-12 2006-12-26 Microsoft Corporation Method and system for accepting preverified information
US20020138821A1 (en) * 2001-01-23 2002-09-26 Vadim Furman Method and apparatus for seamless porting of object code between operating system environments
US20040205730A1 (en) * 2001-06-11 2004-10-14 Week Jon J. System and method for building libraries and groups of computer programs
US6880151B2 (en) * 2001-09-27 2005-04-12 International Business Machines Corporation Apparatus and method of providing common distributed services for system management applications across heterogeneous environments
US7660886B2 (en) * 2001-09-27 2010-02-09 International Business Machines Corporation Apparatus and method of representing real-time distributed command execution status across distributed systems
KR20030089044A (ko) * 2002-05-15 2003-11-21 송경섭 소스코드모듈 조합 및 웹환경 제공이 가능한 컴파일시스템 및 방법
US20070214020A1 (en) * 2003-03-18 2007-09-13 Balaji Srinivasan Modeling of insurance product data
CN100388191C (zh) * 2003-04-01 2008-05-14 松下电器产业株式会社 程序连接方法、装置以及终端装置
KR100546742B1 (ko) * 2003-09-04 2006-01-26 한국전자통신연구원 타겟 시스템 기반 소스 프로그램 개발장치 및 방법
DE10344847A1 (de) * 2003-09-26 2005-04-14 Philips Intellectual Property & Standards Gmbh Verfahren zum Compilieren eines Quellcode-Programms in ein maschinenlesbares Zielobjekt-Programm in einer Netzwerkumgebung
US20060031821A1 (en) * 2004-08-04 2006-02-09 Rutter Budd J Ii Divided compiling program application functionality for software development
KR100615450B1 (ko) 2004-12-13 2006-08-28 한국전자통신연구원 임베디드 시스템의 툴체인 구성 및 실행 방법, 그리고 이를이용한 이동 단말 장치
JP4734030B2 (ja) * 2005-05-27 2011-07-27 株式会社リコー 管理システム
US20060282815A1 (en) * 2005-06-09 2006-12-14 Finite State Machine Labs, Inc. System, method and computer program product for developing, configuring, installing and testing software
CN100442234C (zh) * 2005-06-21 2008-12-10 国际商业机器公司 用于嵌入式系统的软件包构建方法和系统
US7966608B2 (en) * 2005-10-26 2011-06-21 Hewlett-Packard Development Company, L.P. Method and apparatus for providing a compiler interface
US9356715B2 (en) * 2007-03-29 2016-05-31 Echostar Technologies L.L.C. User notification of broadcast communication channel problems
CA2698066A1 (en) * 2009-07-31 2011-01-31 Nitobi Software Inc. System and method for remotely compiling multi-platform native applications for mobile devices
US9026905B2 (en) * 2010-12-17 2015-05-05 Facebook, Inc. Customization of mobile applications using web-based technology
US9706006B2 (en) * 2011-07-19 2017-07-11 Infosys Limited System and method of context aware adaption of content for a mobile device
US9830307B1 (en) * 2014-12-11 2017-11-28 Amazon Technologies, Inc. Ahead of time compilation of content pages
CN105511933A (zh) * 2015-12-03 2016-04-20 深圳市创维软件有限公司 一种源代码的编译方法及相关设备
CN113360135B (zh) * 2021-04-21 2022-05-24 浙江大学 一种基于弹性伸缩的异构物联网应用远程编译方法
CN116185532B (zh) * 2023-04-18 2023-07-21 之江实验室 一种任务执行系统、方法、存储介质及电子设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2002201C (en) * 1988-12-06 1999-04-27 John Charles Goettelmann Translation technique
EP0423989A3 (en) * 1989-10-16 1992-09-23 Hewlett-Packard Company Software compiler and linker with improved line number table
US5339419A (en) * 1990-06-25 1994-08-16 Hewlett-Packard Company ANDF compiler using the HPcode-plus compiler intermediate language
US5339428A (en) * 1991-09-04 1994-08-16 Digital Equipment Corporation Compiler allocating a register to a data item used between a use and store of another data item previously allocated to the register
JP2665089B2 (ja) * 1991-09-26 1997-10-22 三菱電機株式会社 分散環境下におけるコンパイル方式
US5673390A (en) * 1992-09-03 1997-09-30 International Business Machines Corporation Method and system for displaying error messages
US5675800A (en) * 1994-11-30 1997-10-07 Digital Equipment Corporation Method and apparatus for remotely booting a computer system
US5600790A (en) * 1995-02-10 1997-02-04 Research In Motion Limited Method and system for loading and confirming correct operation of an application program in a target system

Also Published As

Publication number Publication date
GB2321731A (en) 1998-08-05
GB9725011D0 (en) 1998-01-28
GB2321731B (en) 2001-06-06
US5881289A (en) 1999-03-09
JPH10161885A (ja) 1998-06-19

Similar Documents

Publication Publication Date Title
DE19729603A1 (de) Fernkompilierung eines Quellencodes für eine Querentwicklung
DE69932371T2 (de) Verschiebbare Instrumentationskennzeichen für die Prüfung und die Fehlerbeseitigung eines Computerprogramms
DE60001916T2 (de) Plattformunabhängige speicherabbild analysearchitektur zur programmfehlerbeseitigung
US5812436A (en) Method and apparatus for testing and analyzing the conformance of a proposed set of requirements for a proposed network management application
DE60017457T2 (de) Verfahren zur isolierung eines fehlers in fehlernachrichten
DE60021066T2 (de) Prüfung eines Softwarepakets
DE69735343T2 (de) System, Verfahren und Vorrichtung zum direkten Ausführen eines architekturunabhängigen binären Programms
DE69432974T2 (de) Verfahren und vorrichtung zur automatischen analyse eines zielprogramms
DE69727933T2 (de) Verfahren und gerät zum beschreiben einer definierten schnittstelle, einer operation und eines datentyps in einer schnittstellendefinitionssprache
DE19836333A1 (de) Software Installation und Testen für ein gemäß einer Bestellung gebautes Computersystem
US5715373A (en) Method and apparatus for preparing a suite of test scripts for testing a proposed network management application
DE3842289A1 (de) Verfahren zur entwicklung von programmen in einem verteilten verarbeitungssystem
EP1035707A2 (de) Verfahren, Erzeugungsmodul, Server, Steuermodul und Speichermittel zum Erstellen von Validierungsregeln
EP1038221B1 (de) Verfahren zur überprüfung der pfadüberdeckung bei software-tests
DE10303054A1 (de) Verifizieren einer Programmversion
DE102004009676A1 (de) Verfahren und Systeme zum Erzeugen von Unterstützungsdateien für Befehle
EP1010070B1 (de) Verfahren zum umsetzen eines objektcodes in einen programmcode
WO2005109196A1 (de) Verfahren zur bestimmung von verklemmungen in nebenläufigen prozessen
CN114327416A (zh) 应用于开发分支的接口同步方法、装置及电子设备
EP0519096B1 (de) Wissensbasiertes Diagnosesystem mit graphischer Wissensakquisitionskomponente
EP1606707B1 (de) Verfahren zur ermittlung von abweichungen einer endsystem-nachricht von einer referenznachricht
EP0708941B1 (de) Verfahren zum test eines objektorientierten programms
DE69333420T2 (de) Verfahren und anordnung zum testen von diensten in einem telekommunikationssystem
EP1370028B1 (de) Verfahren zur dynamischen Steuerung der Kanalauslastung eines Übertragungskanals und Lastgenerator zum Senden einer Testsequenz
Pietschker et al. A light-weight method for trace analysis to support fault diagnosis in concurrent systems

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE),

8127 New person/name/address of the applicant

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8130 Withdrawal