Eintrag kommentierenErfahrung zum Thema berichtenEintrag bewerten
Dieser Eintrag wurde im Schnitt mit 0 von 5 Punkten bewertet
Verfahren
Compiler
Methode/Technik:22210
Externe Quellen zum Thema NEU: Externe Quellen zum Thema suchen 
Beschreibung
Compiler übersetzen den Quellcode in ausführbaren Programmcode. Die Qualität des Compilers wirkt sich unmittelbar auf den Herstellungsprozess und natürlich auch auf das Endprodukt aus. Ein guter Compiler sollte folgende Eigenschaften erfüllen [Literatur PoBl96 ]:
  • Korrektheit und Zuverlässigkeit
    Das Testen und die damit einhergehende Fehlersuche gehören zu den aufwändigsten Tätigkeiten bei der Software-Entwicklung. Der Entwickler muss sich darauf verlassen können, dass der Compiler aus dem vorliegenden Quelltext semantisch äquivalenten Maschinencode generiert. Der Compiler muss seine Aufgabe auch unter extremen Bedingungen (z.B. bei sehr großen Programmen) erfüllen.

  • Geschwindigkeit
    Der Compiler muss schnell sein, damit der immer wiederkehrende Zyklus "Editieren => Übersetzen => Starten" möglichst schnell durchlaufen werden kann.

  • Erzeugung effizienten Codes
    Der erzeugte Code soll kompakt und schnell sein. Ein guter Compiler ist in der Lage, zahlreiche Optimierungen vorzunehmen (z.B. Haltung häufig benutzter Variablen in Registern, Optimierung von Schleifen usw.). Erzeugt der Compiler effizienten Code, kann die Programmiersprache auch für zeitkritische Programmteile verwendet und so auf den Einsatz von Assemblersprachen verzichtet werden.

  • Gutes Fehlerverhalten
    Der Compiler muss fehlerhafte Programme zurückweisen. Im Fehlerfall sollte der Compiler möglichst genaue Informationen über die Fehlerursache liefern und die Fehlerstelle markieren. In Editoren integrierte Compiler können die Übersetzung beim ersten Fehler abbrechen und die Korrektur des Fehlers vom Programmierer verlangen; ein Stapel-Editor sollte hingegen möglichst viele Fehler auf einmal finden.
Linker dienen zur Erstellung ausführbarer Programmsysteme aus einzeln übersetzten Programmmodulen. In manchen Entwicklungssystemen sind Linker Bestandteil des Compilers, unter Umständen treten jedoch auch getrennte Linker auf, die von der Quellsprache unabhängig sind. Beide Systeme haben Vor- und Nachteile. Ein zum Compiler gehörender Linker kann sprachspezifische Inkonsistenzen zwischen den einzelnen Modulen entdecken und melden, während ein zum System gehörender Linker heterogene (in mehreren Quellsprachen geschriebene) Programmsysteme unterstützt.

Das vom Übersetzen getrennten Linken (sog. "Binden") hat den Vorteil, dass jedes Modul inkrementell entwickelt und übersetzt werden kann und auf diese Weise große Programmsysteme effizient erstellt und lange Übersetzungszeiten zur Übersetzung des gesamten Quellcodes in einem vermieden werden [Literatur May01 ]. Ein aus mehreren oder vielen Modulen bestehender Quellcode besitzt jedoch vielfach eine sehr komplexe Abhängigkeitsstruktur zwischen den Modulen. Wenn sich die Schnittstelle eines Moduls ändert, müssen alle Module, die diese Schnittstelle benutzen, neu übersetzt werden [PoBl96]. Die kontrollierte Neuübersetzung eines aus mehreren Modulen bestehenden Systems wird günstigenfalls automatisiert durchgeführt, wobei die Mehrzahl der verfügbaren Werkzeuge ähnlich dem UNIX-Werkzeug make arbeitet.
Externe Quellen zum Thema NEU: Externe Quellen zum Thema suchen 
 Eintrag kommentieren 
 Eintrag bewerten 
 Erfahrung zum Thema berichten 
Zu dieser Seite wurden noch keine Kommentare oder Bewertungen abgegeben.
 
Zum Seitenanfang Top Drucken Impressum AGB
Home

VSEK ©2001-2012