Compilers
Welke uitspraak over een basisblok (basic block) is juist?
- AEen reeks instructies zonder sprongen erin of eruit, die altijd achtereenvolgens worden uitgevoerd
- BAlle instructies binnen één functie samengevoegd tot één geheel
- CDe body van een lus meerdere malen achter elkaar geschreven, zodat het aantal iteraties afneemt
Antwoord en toelichting tonen
Antwoord: A. Een reeks instructies zonder sprongen erin of eruit, die altijd achtereenvolgens worden uitgevoerd
Een basisblok is een reeks instructies met alleen aan het begin een ingang en alleen aan het eind een uitgang; eenmaal begonnen met uitvoeren wordt het blok niet halverwege verlaten en kan er niet halverwege worden ingestapt. Blokken worden afgebakend bij instructies die doel van een sprong zijn en direct na sprong-instructies. Omdat de volgorde van uitvoering binnen het blok vastligt, zijn lokale optimalisaties gemakkelijk, en de totale stroom wordt weergegeven met een controleflowgraaf waarvan de blokken de knopen zijn. Een hele functie bestaat gewoonlijk uit meerdere basisblokken, en het achter elkaar plaatsen van lusbodies is loop unrolling.