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?
- AMet een tussenrepresentatie kan worden gecompileerd zonder de broncode te lezen
- BEen tussenrepresentatie kan door de CPU rechtstreeks worden uitgevoerd, zodat het genereren van machinecode overbodig is
- 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.