Acción f # Intérprete (fsi.exe) también produce lenguaje intermedio de código como F # compilador (fsc.exe) hace?
-
26-09-2019 - |
Pregunta
Actualmente estoy haciendo un recherche para la universidad sobre F #. Tengo una pregunta sobre el F # consola interactiva y el F # compilador.
El F # compilador produce código de lenguaje intermedio de Microsoft (MSIL) cuando su compilación F # -fuente. Esto entonces es traducida por el JIT compilador a código de máquina, al ejecutar el programa escrito.
Pero lo que hace el F # intérprete consola? ¿También la línea por línea # traducir el código F en MSIL, y después de que JIT a código de máquina? ¿O se traduce el F # -Code directamente en código máquina?
Si se convierte en IL primero, entonces creo que es probable que haya un IL-intérprete porque el JIT compilador sólo compila programas completos. ¿no es así?
¿Qué opinas, ¿cómo F # F # -Intérprete maneja código y lo traduce?
Saludos, Martin
Solución
El F # compilador emite IL usando su propia biblioteca ABSIL . ABSIL es otro proyecto MSR que fue absorbida por F #.
Cuando se compila para el modo interactivo, ABSIL utiliza la System.Reflection.Emit espacio de nombres para emitir IL en la memoria, en tiempo de ejecución, que es a su vez compilado a código nativo por el JIT conforme se ejecuta el código.