Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Profesor: Alumna:
Miguel Mena Meudis Silva C.I. 22.380.101
Una mquina virtual Java (en ingls Java Virtual Machine, JVM) es
una mquina virtual de proceso nativo, es decir, ejecutable en una plataforma
especfica, capaz de interpretar y ejecutar instrucciones expresadas en un cdigo
binario especial (el bytecode Java), el cual es generado por el compilador del
lenguaje Java.
El cdigo binario de Java no es un lenguaje de alto nivel, sino un
verdadero cdigo mquina de bajo nivel, viable incluso como lenguaje de entrada
para un microprocesador fsico. Como todas las piezas del rompecabezas Java,
fue desarrollado originalmente por Sun.
La JVM es una de las piezas fundamentales de la plataforma Java.
Bsicamente se sita en un nivel superior al hardware del sistema sobre el que se
pretende ejecutar la aplicacin, y este acta como un puente que entiende tanto el
bytecode como el sistema sobre el que se pretende ejecutar. As, cuando se
escribe una aplicacin Java, se hace pensando que ser ejecutada en una
mquina virtual Java en concreto, siendo sta la que en ltima instancia convierte
de cdigo bytecode a cdigo nativo del dispositivo final.
1) Ambos son lenguajes bajados en JVM, Scala produce el mismo byte code que
Java y se ejecuta en la Mquina Virtual Java. Igual que el compilador Java, javac,
Scala tiene el compilador scalac, que compila cdigo Scala a byte code. A este
nivel todos los lenguajes JVM como Groovy, JRuby, Scala llegan a ser iguales a
Java, porque usan el mismo espacio de memoria, sistema de tipos y se ejecutan
dentro de la misma JVM.
2) Se puede llamar a Scala desde Java y a Java desde Scala, aportando un
integracin fluida. Ms an se puede reusar cdigo de aplicaciones existentes y
libreras Java open source en Scala.
3) Los principales IDE para Java soportan Scala.
4) Otro parecido ms es que ambos son Orientados a Objetos.
Diferencias entre Scala and Java
1) La primera y principal diferencia que se notar entre Scala y Java es el cdigo
breve y conciso. Scala reduce drsticamente el nmero de lineas de una
aplicacin Java realizando un uso inteligente de la inferencia de tipos, tratando
todo como objetos, el paso de funciones y algunas otras caractersticas.
2) Scala est diseado para expresar patrones comunes de programacin de una
forma elegante, concisa y con seguridad de tipos. El lenguaje mismo anima a
escribir cdigo en estilo inmutable, que facilita la aplicacin de la concurrencia y el
paralelismo.
3) Comparemos algo de cdigo escrito en Scala y Java para ver cmo difieren:
Java:
List<Integer> iList = Arrays.asList(2, 7, 9, 8, 10);
List<Integer> iDoubled = new ArrayList<Integer>();
for(Integer number: iList){
if(number % 2 == 0){
iDoubled.add(number 2);
}
}
Scala:
val iList = List(2, 7, 9, 8, 10);
val iDoubled = iList.filter(_ % 2 == 0).map(_ 2)