Tips & Tricks für Programmierer

Problem mit dem Linker?

Der Compiler zum GFA-Basic III verwendet im Gegensatz zum Compiler der Version 2 eine gänzlich andere Technik. Er erstellt ähnlich wie ein C- oder Pascal-Compiler erst einmal eine Objektdatei. Danach fügt er mit dem mitgelieferten Linker die fehlenden Routinen hinzu. Diese entnimmt er einer Bibliotheksdatei, die alle »lebenswichtigen« Funktionen enthält. Der Vorteil dieses Systems ist, daß Fehler in einzelnen Routinen schneller zu finden und zu beseitigen sind. Dabei wird die Bibliothek verändert, der Compiler selbst kann in der Regel unverändert bleiben.

In solchen Bibliotheksdateien befinden sich wesentliche Grundfunktionen der jeweiligen Sprache. Diese Funktionen sind in jeder Sprache mehr oder weniger komplex, sie beanspruchen deshalb auch unterschiedlich viel Platz. So ist beispielsweise die »printf«-Routine von C sehr komfortabel, sie belegt dafür immerhin 6 KByte. Es ist hier egal, ob die Routine nur einmal oder 100mal Verwendung findet, die Länge bleibt fast konstant. Bei kurzen Programmen, deren compilierte Länge weniger als 15 bis 20 KByte beträgt, werden sehr komplexe Funktionen nur in den seltensten Fällen wirklich ausgenutzt, so daß ein Großteil des Programmcodes unbenutzt und überflüssig ist. Deshalb sollten Sie bei der Programmierung darauf achten, daß Sie statt langer, komplexer Funktionen lieber kürzere, aber anwendungsspezifischere verwenden. In vielen Fällen kann selbst die Verknüpfung einfacher Funktionen Platz- und Geschwindigkeitsvorteile gegenüber einer einzigen aufwendigen Funktion bringen.

So ist es besser, in C-Programmen die Funktion »puts« anstelle von »printf« zu verwenden. Als »Abfallprodukt« wird dabei auch noch eine Geschwindigkeitssteigerung erreicht.

In unserem GFA-Basic-Programm verwenden wir statt der komplizierten »VAL«-Routine eine selbstgestrickte und im Compilat wesentlich kürzere Funktion. Sie ist zwar nicht im entferntesten so universell anwendbar wie »VAL«, genügt an dieser Stelle aber völlig.

Bei der Programmierung ist es wichtig, kurze und anwendungsbezogene Routinen zu verwenden, denn schnelle und kurze Programme werden es Ihnen danken. Welche Routinen im Endeffekt die kürzeren sind, probieren Sie entweder aus, oder lassen sich die Länge bestimmter Funktionen von geeigneten Librarian-Programmen anzeigen. Im übrigen liegt dem T\irbo-C-Entwicklungspaket ein kleiner Kommandozeilen-Librarian bei. Der GFA-Assembler bietet sogar einen integrierten Librarian, den Sie bei der Assemblerprogrammierung durch die Tastenkombination < Esc F6 F5> anwählen.

(mb)

Quellenangaben:

[1] L. Prüßner, »Der Manager im Hintergrund«, ST-Magazin 8/89, Seiten 74 ff., Markt & Technik Verlag AG

[2] L. Prüßner, »Das neue alte GEMDOS«, ST-Magazin 12/89, Seiten 68 f., Markt & Technik Verlag AG

[3] M. Waldvogel, »Guck mal da!«, ST-Magazin 7/89, Seite 98, Markt & Technik Verlag AG

[4] Borland International, »Die Schnittstelle zu anderen Sprachen«, Turbo-C für den Atari, Seiten 133 ff.



Links

Copyright-Bestimmungen: siehe Über diese Seite