Compiler
Welche grundlegende Bedingung muss die Optimierung eines Compilers einhalten?
- ADie Zahl der Befehle muss stets auf die Hälfte oder weniger des ursprünglichen Programms sinken
- BWenn es schneller wird, darf sich die Ausgabe des Programms etwas ändern
- CBei korrekten Programmen darf sich das von außen sichtbare Ergebnis nicht ändern
Antwort und Erläuterung anzeigen
Antwort: C. Bei korrekten Programmen darf sich das von außen sichtbare Ergebnis nicht ändern
Optimierungen sind Transformationen, die ein Programm schneller oder kleiner machen, dürfen aber das von außen sichtbare Verhalten eines korrekt geschriebenen Programms, etwa Ausgabe und Schreiben in Dateien, nicht verändern. Unter dieser Bedingung werden Berechnungen umgeordnet oder unnötige Berechnungen entfernt. Wie stark die Befehlszahl sinkt, ist fallabhängig, und eine Regel „auf die Hälfte oder weniger“ gibt es nicht. Das Ergebnis darf sich nur ändern, wenn der Benutzer es ausdrücklich gewählt hat, etwa durch Erlauben der Umordnung von Gleitkommaberechnungen.