Foros del Web » Programando para Internet » Python »

Traductor de código

Estas en el tema de Traductor de código en el foro de Python en Foros del Web. Hola a todos, Aprovechando que estoy aprendiendo pyhton, me he dicho: ¿Qué mejor manera de aprender, que poner en práctica lo aprendido? Así que me ...
  #1 (permalink)  
Antiguo 10/09/2011, 08:59
Avatar de 3nr1c  
Fecha de Ingreso: septiembre-2010
Ubicación: Barcelona
Mensajes: 407
Antigüedad: 9 años, 3 meses
Puntos: 50
Traductor de código

Hola a todos,

Aprovechando que estoy aprendiendo pyhton, me he dicho: ¿Qué mejor manera de aprender, que poner en práctica lo aprendido?

Así que me he puesto manos a la obra (o al código) y he empezado a escribir un programa, muy sencillo, para traducir código php a python.

Si queréis verlo, está para descargar aquí:

http://code.google.com/p/php2py/downloads/list

Lo he puesto en google code porque mi idea es que acabe siendo algo más o menos grande, o cuando menos funcional. Es por esto que me gustaría que le echarais un vistazo y me déis la opinión que os inspira. Y si alguien quiere colaborar... pues adelante, hombre!

Saludos
__________________
Tu duda está explicada aquí →→Mi blog de JavaScript, HTML5, CSS3 y PHP

+1 si te sirvió mi respuesta ;-) (y ya de paso visita el blog ▲↑)
  #2 (permalink)  
Antiguo 10/09/2011, 13:46
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 14 años, 8 meses
Puntos: 1360
Respuesta: Traductor de código

Me acabas de recordar a la maquina virtual parrot (ademas de la historia de la torre de babel).

Desde hace mucho ha existido la necesidad de pasar el código de un lenguaje a otro. Y mas o menos todos tienen el mismo enfoque para resolver el problema.

Ejemplo con java:
1.- Pasar el código a byte-code.
2.- Después usar una maquina virtual para ejecutar ese byte-code.

Ese byte code es universal así que da igual si lo compilas en windows o linux, el byte code corre exactamente igual en cualquiera de los dos por que no lo ejecuta directamente la maquina si no una maquina virtual.

Ejemplo con .NET:
1.- Pasa el código de un lenguaje a un lenguaje intermedio (CLR).
2.- Ese código intermedio lo compilan para que sea interpretado directamente por la maquina.
  #3 (permalink)  
Antiguo 11/09/2011, 05:27
Avatar de 3nr1c  
Fecha de Ingreso: septiembre-2010
Ubicación: Barcelona
Mensajes: 407
Antigüedad: 9 años, 3 meses
Puntos: 50
Respuesta: Traductor de código

Pero, si no me equivoco, lo de parrot es diferente a esto que estoy haciendo (creo yo).

Porque lo de php2py se trata de convertir el código, y no de ejecutarlo independientemente de su lenguaje... Voy errado?

Pd: aprovecho para anunciar que ya voy por la versión 0.1.3

Saludos!
__________________
Tu duda está explicada aquí →→Mi blog de JavaScript, HTML5, CSS3 y PHP

+1 si te sirvió mi respuesta ;-) (y ya de paso visita el blog ▲↑)
  #4 (permalink)  
Antiguo 15/09/2011, 08:26
 
Fecha de Ingreso: febrero-2011
Ubicación: Paraguay
Mensajes: 59
Antigüedad: 8 años, 9 meses
Puntos: 1
Respuesta: Traductor de código

Quieres que te de una mano con el proyecto?? No tengo nada para hacer ni ideas en la cabeza y si muchas ganas de programar, asi que si no te molesta te podria echar una mano ok??
  #5 (permalink)  
Antiguo 16/09/2011, 08:06
Avatar de 3nr1c  
Fecha de Ingreso: septiembre-2010
Ubicación: Barcelona
Mensajes: 407
Antigüedad: 9 años, 3 meses
Puntos: 50
Respuesta: Traductor de código

Por mi bien!

Estoy buscando colaboradores, y vas a ser el primero!

Si no te importa, ponte en contacto conmigo: [email protected] , y dime qué sistema operativo tienes (más que nada para las pruebas). En cuanto reciba tu email y pueda te enviaré el archivo de la última versión que tenga.

Saludos!
__________________
Tu duda está explicada aquí →→Mi blog de JavaScript, HTML5, CSS3 y PHP

+1 si te sirvió mi respuesta ;-) (y ya de paso visita el blog ▲↑)
  #6 (permalink)  
Antiguo 16/09/2011, 12:35
Avatar de dual3nigma
Colaborador
 
Fecha de Ingreso: febrero-2010
Ubicación: Ciudad de México
Mensajes: 295
Antigüedad: 9 años, 9 meses
Puntos: 122
Respuesta: Traductor de código

Hola 3nr1c, que bueno que tengas tantos ánimos, no es mi intención desanimarte, sin embargo creo que algo verdaderamente útil e interesante podría ser un parser de xml o json. Recuerda que los lenguajes de programación son muy complicados y en la mayoría de los casos los nuevos lenguajes son hechos por que a los actuales les faltan x característica y para necesidades diferentes. Hay cosas que es imposible expresar en PHP y Python al mismo tiempo. Tomalo en cuenta y suerte ;)
  #7 (permalink)  
Antiguo 16/09/2011, 12:57
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Traductor de código

concuerdo en parte, pero me gustaría ver un ejemplo de esto
Cita:
Iniciado por dual3nigma Ver Mensaje
Hay cosas que es imposible expresar en PHP y Python al mismo tiempo.
  #8 (permalink)  
Antiguo 16/09/2011, 14:18
Avatar de dual3nigma
Colaborador
 
Fecha de Ingreso: febrero-2010
Ubicación: Ciudad de México
Mensajes: 295
Antigüedad: 9 años, 9 meses
Puntos: 122
Respuesta: Traductor de código

Cita:
Iniciado por AlvaroG Ver Mensaje
concuerdo en parte, pero me gustaría ver un ejemplo de esto
Bueno, bueno. Aclaro que no me refiero a algo que no se pueda hacer en uno u otro, no me atrevería a hacer esa afirmación. En todo caso tal vez se pueda "traducir" pero seguramente no sería la mejor forma de expresarlo en el otro lenguaje, tomemos mi ejemplo favorito, inspirado en el pésimo código de InstantRetro que demuestra que ningún lenguaje te hará buen programador:

Supongamos que tenemos:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $amigos_verdaderos = array();
  4.  
  5. for($i = 0; i < 10; i++) {
  6.     if($amigos[i]->verdadero) {
  7.         array_push($amigos_verdaderos, $amigos[i]);
  8.     }  
  9. }

En Python podríamos "traducirlo" a:

Código Python:
Ver original
  1. amigos_verdaderos = list()
  2. for i in range(10):
  3.     if amigos[i].verdadero:
  4.         amigos_verdaderos.append(amigos[i])

Pero "gosh" Python tiene otras formas más expresivas de hacer eso, que me dicen de:

Código Python:
Ver original
  1. amigos_verdaderos = [amigo for amigo in amigos if amigo.verdadero][:10]

ó

Código Python:
Ver original
  1. amigos_verdaderos = filter(lambda amigo: amigo.verdadero, amigos)[:10]
  #9 (permalink)  
Antiguo 16/09/2011, 23:29
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 14 años, 8 meses
Puntos: 1360
Respuesta: Traductor de código

Cita:
Iniciado por dual3nigma Ver Mensaje
Hay cosas que es imposible expresar en PHP y Python al mismo tiempo.
Discrepo contigo y con AlvaroG. Todo lo expresable en un lenguaje es expresable en otro lenguaje. Con mas o menos código, pero es expresable.

Prueba: Todos los lenguajes de propósito general son Turing completo.
  #10 (permalink)  
Antiguo 17/09/2011, 10:13
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Traductor de código

Cita:
Iniciado por razpeitia Ver Mensaje
Discrepo contigo y con AlvaroG. Todo lo expresable en un lenguaje es expresable en otro lenguaje. Con mas o menos código, pero es expresable.

Prueba: Todos los lenguajes de propósito general son Turing completo.
Está claro que se puede, pero a veces la complejidad en la traducción del código causa más dolores de cabeza que los necesarios

Etiquetas: código, traductor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:04.