Retargeting
Inom mjukvaruteknik är retargeting ett attribut för mjukvaruutvecklingsverktyg som har utformats specifikt för att generera kod för mer än en datorplattform .
Kompilatorer
En retargetable kompilator är en kompilator som har utformats för att vara relativt lätt att modifiera för att generera kod för olika CPU -instruktionsuppsättningsarkitekturer . Historien om denna idé går tillbaka till 1950-talet när UNCOL föreslogs som det universella mellanspråket. Pascal P-kompilatorn är ett exempel på en tidig mycket använd kompilator som kan återställas.
Kostnaden för att producera en retargetable kompilator som genererar kod av liknande kvalitet som en icke-retargetable kompilator (dvs en som är designad för att bara producera kod för en enda processor) är högre eftersom det inte är möjligt att använda CPU-specifika detaljer i alla faser av sammanställningen. Fördelarna med en återinriktningsbar kompilator är att den totala kostnaden över flera processorer är mycket lägre än den kombinerade kostnaden för många individuella kompilatorer som inte kan målinriktas.
Vissa retargetable kompilatorer, t.ex. GCC , blev så brett porterade och utvecklade att de nu inkluderar stöd för många optimeringar och maskinspecifika detaljer att kodens kvalitet ofta överträffar den hos icke-retargetable kompilatorer på många processorer.
En allmänt använd global optimerare följt av maskinspecifik titthålsoptimering är en vanlig implementeringsteknik. Optimeringen av kod för vissa högpresterande processorer kräver en detaljerad och specifik kunskap om arkitekturen och hur instruktionerna exekveras. Såvida inte utvecklare investerar den stora mängd tid som krävs för att skriva en kodgenerator specifikt för en arkitektur, kommer de optimeringar som utförs av en omargetbar kompilator endast att vara de som är tillämpliga på generiska processoregenskaper.
En retargetable kompilator är en sorts korskompilator . Ofta (men inte alltid) är en omargetbar kompilator portabel (kompilatorn i sig kan köras på flera olika processorer) och är självvärd .
Exempel på retargetable kompilatorer:
- GCC
- ACK
- lcc
- VBCC
- Bärbar C-kompilator
- SDCC
- LLVM
- Small -C- kompilatorn
- MPG, den "maskinoberoende effektiva mikroprogramgeneratorn"
Dekompilator
retdec ("Retargetable Decompiler") är en öppen källkod -retargetable maskinkodsdekompilerare baserad på LLVM . [ citat behövs ]
- Dekompilatorn är inte begränsad till någon speciell målarkitektur, operativsystem eller körbart filformat:
- Filformat som stöds: ELF, PE, Mach-O, COFF, AR (arkiv), Intel HEX och rå maskinkod.
- Arkitekturer som stöds (för närvarande endast 32bit): Intel x86, ARM, MIPS, PIC32 och PowerPC.
Montörer
Omvänt kan retargetable assemblers generera objektfiler i olika format, vilket är användbart för att porta assembly-språkprogram till olika operativsystem som körs på samma CPU-arkitektur (som Windows och Linux på x86 -plattformen). NASM är en sådan assembler.
Vidare läsning
- En retargetable C-kompilator: design och implementering ( ISBN 0-8053-1670-1 )
externa länkar
- LANCE kompilator webbplats
- LLVM-kompilatorns infrastrukturwebbplats
- ACK sourceforge-sidan (öppen källkod).
- Nils Wellers C-kompilatorsida
- RetDec hemsida