Re: Compileroptimierung: Was passiert?
28. Okt 2005, 08:39
Also "Inc(I)" und "I := I + 1;" werden vom Compiler zu ein und demselben Code verarbeitet.
Seit Delphi 7 laeuft eine for-Schleife abwaerts sofern es die Statements im Block der Schleife erlauben.
for- und while-Schleife sind nur in C synonym. In Pascal wird die obere Grenze nur einmal ausgewertet.
Zusaetzlich ist die Schleifenvariable insofern priviligiert als es nicht garantiert ist das nach Ablauf der Schleife der Wert garantiert ist (siehe obige Richtungsoptimierung).
Vermutlich optimiert der Compiler eine leere for-Schleife komplett weg.
Bei Konstanten muss man typisierte und untypisierte Konstanten unterscheiden.
Typisierte Konstanten werden durch Variablen implementiert. Bei untypisierte Konstanten setzt der Compiler den Wert direkt in den generierten Code.
Eine textuelle Ersetzung ist nur beim C Präprozessor vorhanden, der eine eigene Sprache bildet.
|