Selv om begrepet "søskenbarn" ikke er et strengt teknisk begrep innen informatikk, kan vi tenke på følgende verktøy som nære pårørende til kompilatorer:
1. Tolker:
* Forhold: Tolker er som kompilatorer, men i stedet for å produsere maskinkode, utfører de kildekoden direkte.
* Forskjell: Kompilatorer oversetter hele programmet på en gang, mens tolker utfører hver linje en etter en.
* eksempel: Python, JavaScript, Ruby
2. Assempers:
* Forhold: Assempers oversetter monteringsspråk (lavt nivå kode) til maskinkode, og fungerer som en bro mellom menneskelig lesbar kode og datamaskinens språk.
* Forskjell: Kompilatorer jobber med språk på høyt nivå, mens samlerne takler instruksjoner på lavt nivå.
* eksempel: NASM, MASM
3. Transpillere:
* Forhold: Transpillere, eller kilde-til-kilde-kompilatorer, konverterer kode fra et programmeringsspråk til et annet.
* Forskjell: I stedet for å produsere maskinkode, sender de kode på et annet språk på høyt nivå.
* eksempel: Babel (Transpiles JavaScript Code), TypeScript (Transpiles to JavaScript), CoffeeScript (Transpiles to JavaScript)
4. Forprosessorer:
* Forhold: Forprosessorer endrer kildekode før den er samlet. De kan definere makroer, inkludere eksterne filer og håndtere betinget sammenstilling.
* Forskjell: De brukes som et forbehandlingstrinn før den faktiske kompileringsprosessen.
* eksempel: C forbehandler, SASS (forbehandler for CSS)
5. DEPOMPILERS:
* Forhold: Nedbrytere er det motsatte av kompilatorer. De prøver å reversere ingeniørkode tilbake til et språk på høyt nivå.
* Forskjell: Nedbrytere mister ofte informasjon under prosessen, noe som resulterer i mindre lesbar kode.
* eksempel: Ida Pro, Ghidra
6. Linkere:
* Forhold: Linkere kombinerer kompilert kode fra flere filer til en enkelt kjørbar fil.
* Forskjell: De er ikke en del av selve kompileringsprosessen, men er avgjørende for å bygge et komplett program.
* eksempel: GNU LD, Microsoft Linker
Disse verktøyene har alle et lignende mål å konvertere kode fra en form til en annen, noe som gjør dem nære slektninger til kompilatorfamilien. De har imidlertid spesifikke oppgaver og jobber på forskjellige abstraksjonsnivåer.