Compilers

Welke basisvoorwaarde moet een optimalisatie van een compiler respecteren?

  1. AHet aantal instructies moet altijd tot de helft of minder van het oorspronkelijke programma worden teruggebracht
  2. BAls het sneller wordt, mag de uitvoer van het programma iets veranderen
  3. 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.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Compilers

  1. Welke uitspraak over instructieselectie (instruction selection), een van de fasen van codegeneratie, is juist?
  2. Welke uitspraak over een cross-compiler is juist?
  3. Als een met optimalisatie gecompileerd programma met een debugger wordt onderzocht, wordt de waarde van sommige variabelen soms als "niet beschikbaar" weergegeven. Wat is de belangrijkste reden?
  4. Welke uitspraak over de teruggegeven waarde en de resterende code van de bovenstaande functie is juist wanneer constant propagation, constant folding en verwijdering van dode code voldoende zijn toegepast?
  5. Welke uitspraak over de rol van lexicale analyse in een compiler is juist?

Vergelijkingen bij dit onderwerp