1
resposta

Dúvida processo de compilação

1- Pré Processamento 2 - Compilação 3 - Assembler 4 - Linker 5 - Código binário executável

Em relação aos processos de compilação levando em conta a linguagem C#

1 - Ao realizar a 2 etapa compilação é gerado um arquivo EXE ou DLL??.

2 - O código Assembler gerado seria o IL da Microsoft?? Caso sim esse código e gerado dentro do Exe do processo de compilação??

3 - O montador e responsável por traduzir o código intermediário em codigo de máquina, nesse caso seria a CLR ou o JVM em java?

4 - Em qual parte das etapas entras a maquina virtual, ou é um processo aparte ??

1 resposta

Olá, Saulo!

Vamos às respostas das suas dúvidas sobre o processo de compilação em relação à linguagem C#:

1 - Ao realizar a segunda etapa de compilação, é gerado um arquivo EXE ou DLL? Na compilação de um projeto em C#, o resultado pode ser tanto um arquivo EXE (executável) quanto um arquivo DLL (biblioteca de classes). Isso vai depender do tipo de projeto que você está compilando. Se for um projeto de aplicativo, será gerado um arquivo EXE. Se for um projeto de biblioteca, será gerado um arquivo DLL.

2 - O código Assembler gerado seria o IL da Microsoft? Sim, o código Assembler gerado em C# é conhecido como IL (Intermediate Language) da Microsoft. O IL é uma linguagem de baixo nível que é independente de plataforma e é executada pela máquina virtual .NET.

3 - O montador é responsável por traduzir o código intermediário em código de máquina, nesse caso seria a CLR ou o JVM em Java? No caso do C#, o montador é responsável por traduzir o código intermediário (IL) em código de máquina. A CLR (Common Language Runtime) é a máquina virtual responsável por executar o código IL e realizar a compilação just-in-time (JIT) para código de máquina específico da plataforma em que está sendo executado. Já a JVM (Java Virtual Machine) é a máquina virtual da linguagem Java, que possui um processo de compilação e execução diferente.

4 - Em qual parte das etapas entra a máquina virtual, ou é um processo à parte? A máquina virtual (CLR) entra em ação durante a execução do código IL. Ela é responsável por carregar, compilar e executar o código IL em tempo de execução. Portanto, a máquina virtual não faz parte do processo de compilação em si, mas sim do processo de execução do código compilado.

Bons estudos!