Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/12/2014, 02:46
Avatar de Profesor_Falken
Profesor_Falken
 
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: ¿Me explican si los .exe necesitan algun framework para funcionar?

Buenas,

Solo por completar la excelente respuesta de Eferion.

Cita:
El código, como habrás notado, viene precompilado en vez de, simplemente, compilado. ¿cual es la diferencia? los compiladores de Java y .Net no generan código ejecutable, sino que procesan el código fuente y lo "traducen" a un lenguaje intermedio ( en el caso de .Net se llama MSIL, en Java lo desconozco ). Este lenguaje intermedio es el que se almacena en el "ejecutable". Como el código del ejecutable no tiene instrucciones que pueda reconocer el ordenador, se hace necesario el uso de la máquina virtual. Ésta incorpora un compilador a medida que coge ese código intermedio y genera código ejecutable.
Esto no es siempre asi. Actualmente tanto Java como C# incluyen, entre sus optimizationes, compiladores Just In Time (JIT).
http://en.wikipedia.org/wiki/Just-in-time_compilation

Gracias al JIT, cuando la maquina virtual detecta una parte del codigo que necesita mas velocidad (ya sea por su complejidad o porque es muy utilizada) realiza una compilacion super-optimizada a lenguaje maquina de dicha parte del codigo y la almacena en una cache. De esta forma, cada vez que ese codigo vuelve a ser invocado, se ejecuta el codigo nativo en lugar de interpretar y compilar al vuelo el lenguage intermedio.
En Java, por ejemplo, un fragmento de codigo se compila y cachea una vez ejecutado 1500 veces, aunque este valor de threshold es configurable. Hay que destacar que este codigo compilado esta tan optimizado que resulta algunas veces incluso mas rapido que si lo desarrollamos en C/C++.

http://www.javacodegeeks.com/2013/07...-buzzword.html
http://programmers.stackexchange.com...-faster-than-c

En el caso de C# el JIT es mas configurable que en Java y se permite incluso pre-compilar directamente todo el codigo fuente.
http://www.c-sharpcorner.com/UploadF...time-compiler/

Un saludo
__________________
If to err is human, then programmers are the most human of us