elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programar en C o ensamblador para la maquina virtual de java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programar en C o ensamblador para la maquina virtual de java  (Leído 2,651 veces)
4dr14n31t0r

Desconectado Desconectado

Mensajes: 85



Ver Perfil
Programar en C o ensamblador para la maquina virtual de java
« en: 11 Marzo 2016, 13:33 pm »

Teniendo en cuenta que C es un lenguaje que depende en gran parte de la maquina, ¿Se puede programar en C para la maquina virtual de java? La ventaja de java esque es portable, pero lento por ser de alto nivel. Sin embargo C es mas rapido por ser de mas bajo nivel, pero no portable, asi que se me ocurrió que sería buena idea programar directamente en C para la maquina virtual de java, de modo que los programas contarian con las ventajas de los 2 lenguajes.

Lo mismo digo para ensamblador.


« Última modificación: 11 Marzo 2016, 13:43 pm por 4dr14n31t0r » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Programar en C o ensamblador para la maquina virtual de java
« Respuesta #1 en: 11 Marzo 2016, 13:57 pm »

Bueno, tampoco habría tanta ventaja. El compilador de java pasa a bytecode de la máquina java el código y después la máquina java va traduciendo el código máquina de la máquina virtual al código máquina del procesador. Toda una historia muy larga. Y el trabajo este se realiza cada vez que se ejecuta un java. No sé si hace como .NET que traduce al momento y al mismo tiempo guarda en caché las instrucciones en IL para una próxima ejecución más rápida.
En cámbio C, normalmente, lo traduce todo a ensamblador y el linker a código máquina. Esto unido a que tiene un entorno de ejecución pequeño es lo que lo convierte en un lenguaje rápido, pero a la vez inseguro porque su entorno de ejecución hace muy poco para el programador.


En línea

Orubatosu


Desconectado Desconectado

Mensajes: 2.515


Ver Perfil WWW
Re: Programar en C o ensamblador para la maquina virtual de java
« Respuesta #2 en: 11 Marzo 2016, 21:33 pm »

Hombre, eso no tiene mucho sentido ya que hablas de conceptos diferentes.

No obstante, Java en realidad es bastante parecido a un C++ en su parte de POO
En línea

"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998
class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: Programar en C o ensamblador para la maquina virtual de java
« Respuesta #3 en: 11 Marzo 2016, 21:46 pm »

Lo que pides es imposible. Es contradictorio. Cada tipo de CPU tiene una arquitectura, es imposible crear un código máquina o un código ensamblador que sirva para todos los tipos de CPU. No obstante, no es tanto que Java sea lento (aunque lo sea un poco más que C/C++), sino que los programadores en más alto nivel no suelen optimizar a más bajo nivel. No estoy diciendo que los programadores que programan en más alto nivel sean peores programando, sino que no se fijan en los detalles en los que se fija un programador en C/C++.

Te explico, Java es más lento que C++, no tanto porque sea un lenguaje interpretado, sino que con el fin de ahorrarles tiempo y disgustos a los programadores, hace muchas comprobaciones de memoria o otras cosas para ver que todo ha ido bien en una instrucción, para que el programa no crashee. Por ejemplo, cuando reservamos memoria dinámica en C/C++ tenemos que tener muchísimo cuidado mientras que en Java, si se produce algún error en la memoria dinámica, directamente el programa lo detecta y se actúa según el error. En C++ tenemos la opción de hacer esas comprobaciones, o no porque estemos seguros de que no van a fallar!! Otro error común en C++ es acceder a lugares de la memoria que no nos pertenece...

Espero haber aclarado el tema :D
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
Orubatosu


Desconectado Desconectado

Mensajes: 2.515


Ver Perfil WWW
Re: Programar en C o ensamblador para la maquina virtual de java
« Respuesta #4 en: 12 Marzo 2016, 22:11 pm »

Eso sin contar lo principal

C es un lenguaje de programación imperativa. Java es un lenguaje de programación orientado al objeto.

Convertir directamente un programa de C en Java "no funciona" ni a la de 3. Como te he comentado, es posible portar de forma "mas o menos" sencilla (que nunca es fácil) un programa de C++ diseñado en programación orientada al objeto a Java, ya que comparten muchos conceptos (no todos). No obstante ese programa en C++ si tiene partes de programación imperativa (porque C++ es multiparadigma, acepta los dos conceptos) la adaptación será desde luego menos fácil.

Y decir que comparten muchos conceptos, e incluso nombres de instrucciones no es lo mismo que pensar que se puede hacer un "cortar y pegar" y que eso funcione.
En línea

"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Qué W7 para una máquina virtual? « 1 2 »
Windows
Halos 10 8,763 Último mensaje 14 Junio 2010, 07:20 am
por Randomize
Que se necesita para programar en java y c++ con JNI(JAVA NATIVE INTERFACE)?
Java
hack-4-life 8 11,284 Último mensaje 5 Octubre 2010, 03:01 am
por hack-4-life
¿se puede crear un modem virtual para una maquina virtual?
Windows
Misterio_S 4 5,485 Último mensaje 30 Octubre 2014, 19:39 pm
por Misterio_S
Maquina virtual para programación
Programación General
Hurdano 6 5,838 Último mensaje 28 Mayo 2015, 08:54 am
por Hurdano
IDE para programar en Java
Java
Beginner Web 5 2,887 Último mensaje 10 Diciembre 2018, 21:30 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines