Compilers

Wat is het belangrijkste voordeel van het gebruik in een compiler van een tussenrepresentatie (IR) die niet van de brontaal en niet van de CPU afhangt?

  1. AMet een tussenrepresentatie kan worden gecompileerd zonder de broncode te lezen
  2. BEen tussenrepresentatie kan door de CPU rechtstreeks worden uitgevoerd, zodat het genereren van machinecode overbodig is
  3. CDe voorkant per taal en de achterkant per CPU kunnen worden gescheiden en optimalisaties kunnen gemeenschappelijk worden gebruikt
Antwoord en toelichting tonen

Antwoord: C. De voorkant per taal en de achterkant per CPU kunnen worden gescheiden en optimalisaties kunnen gemeenschappelijk worden gebruikt

Bij ondersteuning van M talen en N CPU's zouden voor elke combinatie compilers nodig zijn, M×N in totaal, maar met een gemeenschappelijke tussenrepresentatie volstaan M frontends (van taal naar tussenrepresentatie) en N backends (van tussenrepresentatie naar CPU). Ook veel optimalisaties hoeven maar één keer op de tussenrepresentatie te worden gemaakt en zijn voor alle talen en CPU's bruikbaar. Een tussenrepresentatie kan niet rechtstreeks door de CPU worden uitgevoerd en moet ten slotte naar machinecode worden omgezet.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Compilers

  1. Welke uitspraak over een basisblok (basic block) is juist?
  2. Welke combinatie van wat knopen en pijlen in een controleflowgraaf voorstellen is juist?
  3. Welke uitspraak over de tussenrepresentatie in SSA-vorm is juist?
  4. Als de bovenstaande code in SSA-vorm wordt gebracht, komt na het if-statement een uitdrukking zoals "x3 = φ(x1, x2)". Welke uitspraak over de werking van deze φ-functie is juist?
  5. Welk voorbeeld van constant folding in een compiler is juist?

Vergelijkingen bij dit onderwerp