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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Duda] ¿Compilar un programa mientras se ejecuta?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Duda] ¿Compilar un programa mientras se ejecuta?  (Leído 2,272 veces)
SrCooper

Desconectado Desconectado

Mensajes: 137


Bazinga!


Ver Perfil
[Duda] ¿Compilar un programa mientras se ejecuta?
« en: 8 Septiembre 2013, 22:16 pm »

Buenas, resulta que hace un tiempo, viendo unos videos de programación, el hombre que programaba tenía dos pantallas abiertas: en una el código fuente y en otra el programa compilado ejecutandose.

Cuando él escribía algo en el código fuente y le daba a compilar el programa se actualizaba automáticamente, sin necesidad de cerrar la ejecución y volverla a abrir.

El hombre del video estaba programando en java, mi duda era si eso mismo se puede hacer también en C++ y las razones por las que sí o no.

Un saludo y muchas gracias por vuestra atención :P


En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [Duda] ¿Compilar un programa mientras se ejecuta?
« Respuesta #1 en: 8 Septiembre 2013, 22:54 pm »

Java es un lenguaje semi-interpetrado por lo que se puede permitir algunas libertades como esa.

PD: Un lenguaje interpetrado es aquel que se compila y luego se interpetra el binario. El interpetre que hace esto se le llama maquina virtual.


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
SrCooper

Desconectado Desconectado

Mensajes: 137


Bazinga!


Ver Perfil
Re: [Duda] ¿Compilar un programa mientras se ejecuta?
« Respuesta #2 en: 8 Septiembre 2013, 23:02 pm »

Entiendo. Bueno, nos tendremos que conformar con cerrar el programa y volverlo a abrir   :laugh:

En fin, gracias por contestar.
En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: [Duda] ¿Compilar un programa mientras se ejecuta?
« Respuesta #3 en: 9 Septiembre 2013, 08:10 am »

Java Native Interface (JNI)
Java Native Access (JNA)

Un bello dia eh leido sobre esas 2 cositas monitas pero que complicado de co...
A ver si te interesa algo jeje
http://es.wikipedia.org/wiki/Java_Native_Interface

http://holamundojava.blogspot.com.es/2009/07/acceso-metodos-nativos-jni-vs-jna.html

Eh leido que son para acceder desde java a c++, pero haciendo unas movidas se podia hacer el contrario... :silbar:

interesante no??
pero aun soy mu novatin en c++ pa liarme con esto jajaj
Saludos
« Última modificación: 9 Septiembre 2013, 08:14 am por vangodp » En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: [Duda] ¿Compilar un programa mientras se ejecuta?
« Respuesta #4 en: 9 Septiembre 2013, 08:27 am »

Java es un lenguaje semi-interpetrado por lo que se puede permitir algunas libertades como esa.

PD: Un lenguaje interpetrado es aquel que se compila y luego se interpetra el binario. El interpetre que hace esto se le llama maquina virtual.

No es técnicamente así... tu cuando compilas una aplicación JAVA o .NET, se genera lo que se conoce como código intermedio... este código debe ser compilado después por la máquina virtual para generar código ejecutable... pero ese código ejecutable sólo se genera la primera vez que se ejecuta esa parte del código.

La característica que hace que se pueda modificar partes del código mientras éste está en ejecución es que los ejecutables de .NET y JAVA no son un monolito en memoria, sino que están divididos en módulos ejecutables que se pueden descargar y recompilar sin interferir en el resto del programa.

Me explico:

Las llamadas a las funciones se configuran con punteros. Cuando la función llamada no está compilada, el puntero apunta a una instrucción de la máquina virtual que se encargará de compilar esa parte y modificar el puntero... si se requiere recompilar esa función "en caliente", basta con modificar de nuevo el puntero para que vuelva a apuntar a la máquina virtual en vez de a la porción de código que se debe recompilar.
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.926


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [Duda] ¿Compilar un programa mientras se ejecuta?
« Respuesta #5 en: 9 Septiembre 2013, 09:30 am »

Es bastante complejo y no muy util pero una cosa que podes hacer es emular la tecnica de hotpatching de Microsoft. Basicamente pones un salto al principio de la funcion que queres modificar, previamente generaste el codigo binario necesario y lo pusiste en la memoria del proceso en cuestion. Esto hace Microsoft para que en los servidores se puedan actualizar binarios sin reiniciar ...
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: [Duda] ¿Compilar un programa mientras se ejecuta?
« Respuesta #6 en: 9 Septiembre 2013, 10:01 am »

No entiendo mucho de programacion pero creo que java tambien tiene su gracia.
Aun que prefiero c++ jejej
Pero no descarto aprender algo de java si un dia termino c++, y lo digo si un dia lo termino por que voy a mi bola muuuuu lennnnnto  :laugh:
cada lenguaje tiene su gracia ojala subiera unos cuantos jaja
tengo curiosidad por python, java y javascript, tambien el html5 ^^
Pero despues tengo la cabeza mas vacia que un globo jajaja, no se que hacer con esas cosas jaja
En línea

SrCooper

Desconectado Desconectado

Mensajes: 137


Bazinga!


Ver Perfil
Re: [Duda] ¿Compilar un programa mientras se ejecuta?
« Respuesta #7 en: 9 Septiembre 2013, 11:57 am »

Es bastante complejo y no muy util pero una cosa que podes hacer es emular la tecnica de hotpatching de Microsoft. Basicamente pones un salto al principio de la funcion que queres modificar, previamente generaste el codigo binario necesario y lo pusiste en la memoria del proceso en cuestion. Esto hace Microsoft para que en los servidores se puedan actualizar binarios sin reiniciar ...

Me parece que eso es demasiado complicado a no ser que el archivo con el que estes trabajando sea muy grande y entonces si te salga rentable.

Un saludo y gracias por las respuestas
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.926


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [Duda] ¿Compilar un programa mientras se ejecuta?
« Respuesta #8 en: 9 Septiembre 2013, 12:55 pm »

Me parece que eso es demasiado complicado a no ser que el archivo con el que estes trabajando sea muy grande y entonces si te salga rentable.

Y si, es para evitar reiniciar a toda costa, de otra manera no hace falta por mas cool que parezca hacerlo.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programa .bat (ejecuta un conjunto de instrucciones)
Scripting
Kiosera 2 10,881 Último mensaje 30 Octubre 2011, 23:41 pm
por israel_3v
Saber que funciones ejecuta un programa
Ingeniería Inversa
EvilGoblin 5 3,715 Último mensaje 3 Abril 2010, 18:15 pm
por EvilGoblin
Que hago mal? compilar pero no ejecuta bien
Programación C/C++
roser24 9 3,050 Último mensaje 5 Mayo 2010, 22:43 pm
por Littlehorse
No se ejecuta el programa compilado en Dev-c++ « 1 2 »
Programación C/C++
Aikanáro Anário 11 31,260 Último mensaje 28 Mayo 2010, 22:42 pm
por Akai
S.O.S Pop-UP de loading mientras se ejecuta funcion PHP
Desarrollo Web
joselillo85 2 1,725 Último mensaje 3 Noviembre 2015, 20:40 pm
por Pablo Videla
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines