Documente Academic
Documente Profesional
Documente Cultură
una
compilacin
posteriormente
una
interpretacin. No es un concepto nuevo, pero sin duda, no ha tenido una aplicacin prctica masiva hasta la llegada de la plataforma Java de Sun
Microsystems a principios de los 90, y algo despus con la plataforma .NET de Microsoft.
2
La confeccin de un programa se realiza escribiendo una serie de rdenes o instrucciones que siguen las normas de un lenguaje de programacin.
sencillo,
bien
alguno
de
los
editores
especficas para escribir programas, con muchas ventajas para el programador... pero por muy
compleja
que
sea
la
herramienta
para
confeccionar programas, por lo general, el programa siempre se reduce a una serie de instrucciones en un fichero de texto.
4
A estos ficheros de texto les llamamos fuente. (del ingls source. A menudo se utilizan expresiones como cdigo fuente, ficheros fuente, etc.). Sin embargo, sabemos que la CPU slo entiende su propio lenguaje, que normalmente
aprendiendo.
El lenguaje de la CPU es el cdigo mquina (del ingls machine code). El cdigo mquina son secuencias binarias que la CPU ejecuta como instrucciones sencillas. Por supuesto, cada modelo de CPU tiene su propio cdigo mquina, aunque a veces, varios
Es necesario tener en cuenta que cada orden de un lenguaje de alto nivel (por ejemplo, una orden para imprimir "hola mundo" por la pantalla) se
extremadamente
Tampoco
podemos
olvidarnos
del
sistema
operativo. Los programas de aplicacin se apoyan no slo en la CPU, sino que necesitan de la
A menudo, incluso hay que incluir en esta lista otros programas como servidores de aplicaciones, sistemas gestores de bases de datos, libreras de cdigo, etc. A este conjunto de requisitos necesarios para la ejecucin de un programa se le suele llamar a menudo plataforma.
COMPILAR
10
-La ejecucin es muy rpida debido a que el programa ya ha sido traducido a cdigo mquina
-La ejecucin es ms lenta, ya que para cada lnea del programa es necesario realizar la traduccin
11
12
-Una vez compilado el programa, el -El cdigo fuente es necesario en cdigo fuente no es necesario para cada ejecucin, as que no puede ejecutarlo, as que puede permanecer en secreto permanecer en secreto si se desea.
-Los errores sintcticos se detectan durante la compilacin. Si el fuente contiene errores sintcticos, el compilador no producir un ejecutable.
Los errores sintcticos se detectan durante la ejecucin, ya que traduccin y ejecucin se van haciendo simultneamente. Algn error sintctico podra quedar enmascarado, si para una ejecucin concreta no es necesario traducir la lnea que lo contiene. (Algunos intrpretes son capaces de evitar esto)
13
MAQUINA VIRTUAL
Los programas interpretados o compilados tienen distintas ventajas e inconvenientes. En un intento de combinar lo mejor de ambos mundos, durante la dcada de los 90 surge con fuerza el enfoque de mquina virtual.
14
MAQUINA VIRTUAL
Los principales lenguajes abanderados de esta tecnologa son, por un lado, el lenguaje Java de Sun Microsystems, y por otro, los lenguajes de la plataforma .NET de Microsoft: Visual Basic, C# y J#. Tambin merece mencin el lenguaje Delphi de la compaa Borland, que desde hace tiempo funciona
MAQUINA VIRTUAL
La filosofa de la mquina virtual es la siguiente: el cdigo fuente se compila, detectando los errores sintcticos, y se genera una especie de ejecutable, con un cdigo mquina dirigido a una CPU imaginaria. A esta especie de cdigo mquina se le denomina cdigo intermedio, lenguaje intermedio, p-code, o
byte-code .
16
MAQUINA VIRTUAL
Como esa CPU imaginaria no existe, para poder ejecutar ese ejecutable, se construye un intrprete. Este intrprete es capaz de leer cada una de las instrucciones de cdigo mquina imaginario y ejecutarlas en una CPU real. A este intrprete se le denomina mquina virtual.
17
MAQUINA VIRTUAL
18
MAQUINA VIRTUAL
Portabilidad: El cdigo intermedio ya est libre de errores sintcticos, y es un cdigo muy sencillo (al estilo del cdigo mquina). Si existe un intrprete para este cdigo en distintas plataformas, el mismo cdigo se puede ejecutar en cada una de ellas. Adems, la construccin de este intrprete
MAQUINA VIRTUAL
Estabilidad: El cdigo intermedio no es ejecutado por una CPU real directamente, sino por una CPU virtual: la mquina virtual. Esto permite un mayor control sobre este cdigo, facilitando la labor de impedir que un cdigo descontrolado afecte a la estabilidad de la plataforma real.
20
MAQUINA VIRTUAL
Para entender algo mejor este concepto,
podemos fijarnos, por ejemplo, en el lenguaje JAVA. Imaginemos que disponemos de dos ordenadores: uno de ellos tiene una CPU Pentium y un sistema operativo Windows. El otro tiene una CPU Sparc y un sistema operativo Solari
21
MAQUINA VIRTUAL
En el primer ordenador instalamos un compilador de Java y una mquina virtual de Java especficos para Windows+Pentium. En el segundo hacemos lo mismo, pero con un compilador y mquina virtual especficos para Solaris+Sparc.
22
MAQUINA VIRTUAL
Confeccionamos un programa sencillo (por ejemplo, que escriba "Hola Mundo" por la pantalla) escrito en Java en el primer ordenador y lo compilamos, generando un ejecutable
intermedio.
MAQUINA VIRTUAL
Si cogemos ese ejecutable intermedio lo llevamos tal cual a la mquina con Solaris+Sparc, podremos
24
MAQUINA VIRTUAL
Este sistema es tambin utilizado por los juegos Java de los telfonos mviles o las PDA. Distintas marcas de telfonos mviles son capaces de ejecutar el mismo juego, aun cuando cada telfono tiene una CPU y un sistema operativo distinto [Si, los telfonos