Compilers
Welke basisvoorwaarde moet een optimalisatie van een compiler respecteren?
- AHet aantal instructies moet altijd tot de helft of minder van het oorspronkelijke programma worden teruggebracht
- BAls het sneller wordt, mag de uitvoer van het programma iets veranderen
- CBij een correct programma mag het van buiten zichtbare resultaat niet veranderen
Antwoord en toelichting tonen
Antwoord: C. Bij een correct programma mag het van buiten zichtbare resultaat niet veranderen
Optimalisatie is een transformatie om het programma sneller of kleiner te maken, maar bij een correct geschreven programma mag het van buiten zichtbare gedrag, zoals uitvoer en schrijfacties naar bestanden, niet veranderen. Binnen deze voorwaarde worden de volgorde van berekeningen gewijzigd of onnodige berekeningen verwijderd. Hoeveel het aantal instructies kan afnemen verschilt per geval en er is geen regel dat het de helft of minder moet zijn. Het resultaat mag alleen veranderen als de gebruiker daar expliciet voor kiest, zoals bij het toestaan van herordening van floating point.