Embora o termo "primos" não seja um termo técnico estrito na ciência da computação, podemos pensar nas seguintes ferramentas como parentes próximos aos compiladores:  
 1. Interpretadores:   * Relacionamento: Os intérpretes são como compiladores, mas em vez de produzir código de máquina, eles executam o código -fonte diretamente. 
 * 
 Diferença: Os compiladores traduzem todo o programa de uma só vez, enquanto os intérpretes executam cada linha um por um. 
 * 
 Exemplo: Python, JavaScript, Ruby   
 2. Montadores:   * Relacionamento: Os montadores traduzem a linguagem de montagem (código de baixo nível) em código da máquina, atuando como uma ponte entre o código legível pelo homem e o idioma do computador. 
 * 
 Diferença: Os compiladores trabalham com idiomas de alto nível, enquanto os montadores lidam com instruções de baixo nível. 
 * 
 Exemplo: Nasm, MASM   
 3. Transpilers:   * Relacionamento: Transpilers, ou compiladores de origem a fonte, convertem o código de uma linguagem de programação para outra. 
 * 
 Diferença: Em vez de produzir código da máquina, eles produzem código em um idioma de alto nível diferente. 
 * 
 Exemplo: Babel (Código JavaScript de transpilos), TypeScript (transpilos para JavaScript), CoffeeScript (transpilos para JavaScript)   
 4. Pré -processadores:   * Relacionamento: Os pré -processadores modificam o código -fonte antes de ser compilado. Eles podem definir macros, incluir arquivos externos e lidar com a compilação condicional. 
 * 
 Diferença: Eles são usados como uma etapa de pré -processamento antes do processo de compilação real. 
 * 
 Exemplo: C pré -processador, SASS (pré -processador de CSS)   
 5. Decompiladores:   * Relacionamento: Os decompiladores são o oposto dos compiladores. Eles tentam reverter o código da máquina de engenharia em um idioma de alto nível. 
 * 
 Diferença: Os decompiladores geralmente perdem informações durante o processo, resultando em código menos legível. 
 * 
 Exemplo: Ida Pro, Ghidra   
 6. Linkers:   * Relacionamento: Os ligantes combinam código compilado de vários arquivos em um único arquivo executável. 
 * 
 Diferença: Eles não fazem parte do próprio processo de compilação, mas são cruciais para a construção de um programa completo. 
 * 
 Exemplo: GNU LD, Linker da Microsoft  
 Todas essas ferramentas têm um objetivo semelhante de converter código de um formulário para outro, tornando -os parentes próximos à família Compiler. No entanto, cada um deles tem tarefas específicas e trabalha em diferentes níveis de abstração.