Compilers

Welke uitspraak over de basisopzet van LLVM is juist?

  1. AEen compiler uitsluitend voor C, die niet voor andere talen kan worden gebruikt
  2. BEen combinatie van assembler en linker voor slechts één specifieke CPU
  3. CFrontends en backends worden gecombineerd rond een gemeenschappelijke tussenrepresentatie
Antwoord en toelichting tonen

Antwoord: C. Frontends en backends worden gecombineerd rond een gemeenschappelijke tussenrepresentatie

LLVM is een compilerinfrastructuur rond een gemeenschappelijke tussenrepresentatie, LLVM IR. Frontends voor allerlei talen, te beginnen met Clang voor C/C++, zetten de broncode om in LLVM IR, die door gemeenschappelijke optimalisatiefasen gaat, waarna backends voor veel CPU's, zoals x86, Arm, RISC-V en GPU's, machinecode genereren. Een sterk punt is dat bij ondersteuning van een nieuwe taal of CPU maar één kant hoeft te worden gemaakt. Het is niet alleen voor C en niet voor één specifieke CPU.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Compilers

  1. In welke situatie wordt de instelling zonder optimalisatie (zoals -O0) bij de optie voor het optimalisatieniveau van een compiler vaak gebruikt?
  2. Welke uitspraak over profielgestuurde optimalisatie (PGO) is juist?
  3. Welke optimalisatie wordt het best mogelijk gemaakt door link-time optimization (LTO)?
  4. In C is overflow van gehele getallen met teken ongedefinieerd gedrag. Welke code kan een compiler die de bovenstaande functie optimaliseert op deze grondslag genereren?
  5. Welke van de fouten in een programma kan al tijdens het compileren worden gevonden?

Vergelijkingen bij dit onderwerp