|
|
Nameulc - Bartels User Language Compiler Synopsisulc [-wcon|-wcoff] [[-S[ource]] srcfile...] [-lib libname...] [-dll libname...] [{-cp|-cl} [dstname...]] [-I[nclude] includepath...] [-D[efine] macroid...] [-O[0|1]] [-e[0|1]] [-w[0|1|2|3|4]] [-t[0|1]] [-l[0|1|2|3|4|5]] [-ld listingdirectory name] [-dp prgname...] [-dl libname...] [-ulp prgfilename] [-ull libfilename] [-log logfilename] BeschreibungDer User Language Compiler ulc dient dazu, User Language-Quelltext in User Language-Maschinenprogramme bzw. in User Language-Libraries zu übersetzen. User Language-Programme können vom User Language Interpreter ausgeführt werden. User Language-Libraries werden üblicherweise aus häufig benötigten Quelltexten erzeugt. Der Maschinencode von User Language-Libraries kann wahlweise statisch (während der Kompilierung durch den User Language Compiler) oder dynamisch (während der Laufzeit durch den User Language Interpreter) eingebunden werden in anderen Maschinencode (Programme oder Libraries). Der Vorteil des Librarykonzepts besteht darin, dass häufig benötigte Quelltexte nur einmal der zeitaufwändigen Kompilierung unterzogen werden müssen; anschließend kann der entsprechende Maschinencode über die sehr viel schnelleren Linkprozesse referenziert werden. OptionenDie Kommandozeilenoptionen des
User Language Compilers bestehen aus einem Bindestrich
( Wildcard Option [-wcon|-wcoff]Mit Hilfe dieser Option kann die Berücksichtigung von Wildcards bei der Spezifikation von Datei- und Elementnamen aktiviert (Option
-wcon; Default) bzw. deaktiviert (Option
-wcoff) werden. Ist die Wildcarderkennung aktiviert, dann erlangen die Zeichen
Source File Option [[-S[ource]] srcfile...]Mit dieser Option werden die Namen der zu übersetzenden Quelltextdateien spezifiziert. Die Dateinamen dürfen dabei Verzeichnispfade enthalten, d.h. die Quelltextdateien müssen nicht notgedrungen im aktuellen Verzeichnis abgelegt sein. Bei der Auswertung von Dateinamen werden Wildcards berücksichtigt, sofern die Wildcarderkennung mit der Option
-wcon (siehe oben) aktiviert ist. Dateinamen können wahlweise mit oder ohne Namenserweiterung spezifiziert werden. Wird die Namenserweiterung weggelassen, dann für der Compiler automatisch die Extension
Static Link Option [-lib libname...]Die Static Link Option
-lib erwartet den Namen einer oder mehrerer
User Language-Libraries sowie die Spezifikation von zumindest einer Quellcodedatei (siehe oben, Option
-Source). Die mit
-lib angeforderten Libraries müssen in kompilierter Form in der Datei
Dynamic Link Option [-dll libname...]Die Dynamic Link Option
-lib erwartet den Namen einer oder mehrerer
User Language-Libraries sowie die Spezifikation von zumindest einer Quellcodedatei (siehe oben, Option
-Source). Die mit
-dll angeforderten Libraries müssen in kompilierter Form in der Datei
Create Program/Library Option [{-cp|-cl} [dstname...]]Mit dieser Option wird der Typ des zu erzeugenden Maschinencodes festgelegt. Der
User Language Compiler kann sowohl
User Language-Programme als auch
User Language-Libraries generieren. Wenn weder die Option
-cp noch die Option
-cl angegeben ist, dann erzeugt der Compiler
User Language-Programme. Mit der Option
-cp kann die Generierung von Programmen explizit veranlasst werden, die Option
-cl hingegen veranlasst die Generierung von Libraries; es dürfen nicht beide Optionen gleichzeitig angegeben werden. Der Elementname des zu erzeugenden Maschinencodes ergibt sich standardmäßig aus dem jeweiligen Quellcodedateinamen durch Elimination des Verzeichnispfades und der Namenserweiterung. Abweichend von dieser Konvention können mit den Optionen
-cp und
-cl explizit andere Elementnamen für zu erzeugenden Maschinencode angegeben werden, wobei dann aber nur noch genau eine Quelltextdatei spezifiziert werden darf (siehe oben, Option
-Source). Der generierte Maschinencode wird unter dem spezifizierten Zielelementnamen in der Datei
Include Path Option [-I[nclude] includepath...]Mit der Option
-Include (bzw.
-I) können Alternativpfade für die Suche nach Includedateien spezifiziert werden. Diese Option erwartet zumindest einen Verzeichnispfadnamen als Argument. Stößt der Compiler im Quelltext auf eine
Define Option [-D[efine] macroid...]Mit der Option
-Define (bzw.
-D) können beim Compileraufruf Makros definiert werden. Diese Option erwartet zumindest einen Makronamen als Argument. Die Option
-Define entspricht der
Optimizer Option [-O[0|1]]Mit der Option
-O kann der Optimierer des
User Language Compilers aktiviert bzw. deaktiviert werden. Per Default (d.h., wenn diese Option nicht spezifiziert ist) ist der Optimierer deaktiviert. Die Option
-O bzw.
Error Severity Option [-e[0|1]]Mit der Option
-e kann der Error Severity Level gesetzt werden. Per default (d.h., wenn diese Option nicht spezifiziert ist) ist der Wert 1 eingestellt. Die Option
Warning Severity Option [-w[0|1|2|3|4]]Mit der Option -w kann der Warning Severity Level auf einen Wert von 0 bis 4 gesetzt werden. Per Default (d.h., wenn diese Option nicht spezifiziert ist) ist der Wert 0 eingestellt. Wird diese Option ohne die explizite Angabe eines Levels angegeben (-w), dann wird der Wert 3 eingestellt. Jede im Compiler definierte Warnmeldung ist einem speziellen Warning Severity Level zugeordnet, wobei höhere Werte unwichtigere Warnungen kennzeichnen. Der Compiler gibt nur die Warnungen aus, deren Warning Severity Level kleiner oder gleich dem mit der Option -w eingestellten Level ist, d.h. mit dieser Option kann die Ausgabe weniger bedeutsamer Warnmeldungen unterdrückt werden. Top Level Warnings Only Option [-t[0|1]]Mit der Option -t können wahlweise Warnungen mit Bezug auf die Kompilierung von Includedateien unterdrückt werden (Wert 1). Per Default (d.h., wenn diese Option nicht spezifiziert ist bzw. der Optionswert 0 gesetzt ist) werden Warnmeldungen mit Bezug auf alle kompilierten Quellcodedateien ausgegeben. Ist dieser Optionswert auf 1 gesetzt, dann unterdrückt der User Language Compiler die Ausgabe von Warnmeldungen mit Bezug auf die Kompilierung von Includedateien und gibt lediglich die Warnmeldungen mit Bezug auf die "Top-Level"-Quellcodedatei(en) aus. Dies reduziert die Anzahl der Warnmeldungen und erleichtert damit deren Analyse insbesondere dann, wenn mit Standardincludedateien gearbeitet wird, die (eine Vielzahl von) Funktionen und Variablen enthalten, welche nicht in jedem Programm verwendet werden. Listing Option [-l[0|1|2|3|4|5]]Mit der Option
-l kann die Listingausgabe gesteuert werden. Dabei können Listingmode im Bereich von 0 bis 5 spezifiziert werden. Mit dem Listingmodus 0 wird keine Listingausgabe erzeugt, während der Modus 5 die detailliertesten Informationen liefert. Modus 0 ist der Standardwert, d.h. wenn die Option
-l nicht angegeben ist, dann erfolgt auch keine Listingausgabe. Wird diese Option ohne die explizite Angabe des Modus spezifiziert
(-l), dann wird der Modus 5 eingestellt. Der Name der Listingdatei wird aus dem Namen der Quelltextdatei durch Abändern der Dateinamenserweiterung in
Listing Directory [-ld listingdirectoryname]Die Option
-ld gestattet die Spezifikation eines alternativen Verziechnisses für die mit der Option
-l auszugebenden Listindateien. Dies ist insbesondere bei der Verwendung von
Delete Program Option [-dp prgname...]Mit der Option
-dp können einmal übersetzte
User Language-Programme wieder aus der Datei
Delete Library Option [-dl libname...]Mit der Option
-dl können einmal übersetzte
User Language-Libraries wieder aus der Datei
Program Database File Name Option [-ulp prgfilename]Per Default speichert der
User Language Compiler User Language-Programme in der Datei
Library Database File Name Option [-ull libfilename]Per Default speichert der
User Language Compiler User Language-Libraries in der Datei
Log File Option [-log logfilename]Der
User Language Compiler gibt alle Meldungen auf die Standardausgabe und gleichzeitig auf eine Reportdatei aus. Die Ausgabe auf die Reportdatei erfolgt, um längere Listen von Meldungen, welche insbesondere bei der Übersetzung mehrerer Quelltextdateien entstehen können, zu sichern. Der Standardname der Reportdatei ist
BeispieleKompilieren des in
> ulc ulprog -Ow
Kompilieren des in
> ulc ulprog -l -cp newprog
Löschen der
User Language-Programme mit Namen
> ulc -dp ulprog newprog -dl test*lib
Erzeugen der
User Language-Library
> ulc libbae.ulh -cl libsll -l2O
Kompilieren aller im aktuellen Verzeichnis enthaltenen Quelltextdateien mit der Extension
> ulc *.ulc -Define USELIB -lib libsll -O
Generieren der User Language-Libraries
> ulc -w2 -O -cl libstd stdlib -Source std.ulh
Generieren der User Language-Library
> ulc /wO -cl liblay -S \baeulc\lay.ulh -dll libstd -log genlib.rep
Generieren der User Language-Programm
> ulc laypcr.old /dll liblay /cp -O /S tracerep
Dateien
Siehe auchuserlist, User Language Interpreter, Bartels User Language Programmierhandbuch DiagnosisDie durch ulc erzeugten Fehlermeldungen sind selbsterklärend. Warnungen
ulc ist ein Programmierwerkzeug zur Erzeugung von Programmen, die die Manipulation von DDB-Dateiinhalten ebenso wie die Erzeugung von Fertigungsdaten zulassen. Auch eine weit reichende Änderung der Benutzeroberfläche ist durch die mit
ulc erzeugten Programme möglich. Daher sollte jedes mit
ulc erzeugte Programm vor einem produktiven Einsatz in jedem Fall zunächst in einer unkritischen Umgebung (Test-Software-Installation, Test-Job, Arbeitsdateien vorher sichern, ...) einem sorgfältigen Test unterzogen werden. In diesem Zusammenhang muss auch eindringlich auf die Möglichkeit des Missbrauchs durch Dritte (Einspielen zerstörerisch wirkender Programme in Ihr eigenes
ULC - User Language Compiler |
|