• Domingo 22 de Diciembre de 2024, 22:31

Autor Tema:  Reto: Hacer Un Compilador  (Leído 4668 veces)

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Reto: Hacer Un Compilador
« en: Martes 4 de Abril de 2006, 02:14 »
0
Hola forer@s.
Les pongo un reto :devil: , hacer un copilador (para cualquier lenguaje) y cualquier plataforma  ;)
Tengo esta info:
http://compilers.iecc.com/crenshaw/
 :hola:
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

cluster

  • Miembro MUY activo
  • ***
  • Mensajes: 196
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #1 en: Martes 4 de Abril de 2006, 05:03 »
0
me uno al reto hace rato que venia haciendo un interprete de un lenguje a otro pero solo tenia el analizador lexico,sintactico y semantico pero habia parado porque no sabia como generar un .exe o mandarlo a ejecutar el programa me falta llegar a esas capas inferiores, ya tenia en mente postear lo mismo en el foro de ensamblador que creo que son los gurus en los temas de lenguaje de maquina y binario pero ya que lo colocaste aca se puede hacer un buen compilador. pues yo entendiendo la teoria de compiladores.

bob esponja

  • Miembro MUY activo
  • ***
  • Mensajes: 411
    • Ver Perfil
    • http://marianoguerra.blogspot.com
Re: Reto: Hacer Un Compilador
« Respuesta #2 en: Martes 4 de Abril de 2006, 17:53 »
0
me uno, yo estuve desarrollando un compilador de un lenguaje propio, generaba codigo en asm como salida, solo me falta el tema de parametros y funciones, osea se pueden definir funciones pero falta el codigo que se genera cuando llamas a una funcion para que los parametros pasados sean variables locales.

pero por el momento esta parado, vere si posteo algo sobre eso.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #3 en: Martes 4 de Abril de 2006, 23:51 »
0
Estuve leyendo un poco mas y seria mas interesante hacer un "just-in-time".
Buenom supongo que tendre que superdotar mi cerebro para hacerlo, pero supongo que me llevara a otro nivel de programacion  ;)
 :hola:
Animense
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

cluster

  • Miembro MUY activo
  • ***
  • Mensajes: 196
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #4 en: Miércoles 5 de Abril de 2006, 18:35 »
0
aca hay un listado de compiladores ya hechos y esta su codigo fuente. http://www.bloodshed.net/compilers/index.html
- algien me podia explicar como hago para generar un .exe que se pueda ejecutar en windows algo sencillo como a = 1 + 2 y que me imprima en pantalla de DOS a=3 solamente eso y que sea preferiblemente en vb

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #5 en: Miércoles 5 de Abril de 2006, 18:52 »
0
Cita de: "cluster"
- algien me podia explicar como hago para generar un .exe que se pueda ejecutar en windows algo sencillo como a = 1 + 2 y que me imprima en pantalla de DOS a=3 solamente eso y que sea preferiblemente en vb
Para usar la consola desde VB vas a tener que usar la API de Windows:

AllocConsole
GetStdHandle STD_OUTPUT_HANDLE para escribir STD_INPUT_HANDLE para leer

Esos handles los podes usar con ReadFile y WriteFile.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

cluster

  • Miembro MUY activo
  • ***
  • Mensajes: 196
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #6 en: Miércoles 5 de Abril de 2006, 19:00 »
0
pero al utilizar eso estoy utilizando el compilador de vb al generar el resultado?
mejpr dicho mi pregunta es generar un .exe y guardarlo pero por codigo sin ayuda de empaquetados ni nada de eso y despues darle click y que se ejecute.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #7 en: Miércoles 5 de Abril de 2006, 19:51 »
0
Cita de: "cluster"
pero al utilizar eso estoy utilizando el compilador de vb al generar el resultado?
mejpr dicho mi pregunta es generar un .exe y guardarlo pero por codigo sin ayuda de empaquetados ni nada de eso y despues darle click y que se ejecute.
Entonces lo que necesitas es conocer el formato PE (Portable Executable) ademas de assembly que es lo que vas a escribir (en numeral) como codigo del ejecutable.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #8 en: Miércoles 5 de Abril de 2006, 22:23 »
0
Creo que hacer un traductor no es lo mas indicado, el compilador deveria ser en bytecode o p-code ya que seria una interfase "mas limpia", pero bueno no importa, el reto es hacer un compilador (sin limites, es deci para lo que sea contal de que sirva)
Un momento, PE es el Object file de Microsoft, creo que estoy mal informado.
Como es el formato de un EXE, es decir, como esta estructurado?
 :blink:
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

cluster

  • Miembro MUY activo
  • ***
  • Mensajes: 196
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #9 en: Jueves 6 de Abril de 2006, 02:46 »
0
entonces como nos organizamos para
Citar
hacer un copilador (para cualquier lenguaje) y cualquier plataforma
creo que tendriamos que mirar el codigo fuente de mono y como funciona la maquina virtual de java. en que lenguaje lo montamos, haber si lo mostramos en algun congreso.

Masiosare

  • Miembro MUY activo
  • ***
  • Mensajes: 118
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #10 en: Jueves 6 de Abril de 2006, 03:05 »
0
Una pequeñísima colaboración. Un manual introductorio de compiladores en español.

Compiladores - Monografias.com

     La verdad no he hecho un compilador. En una clase me dejaron un proyecto donde realizaría un compilador en C para un lenguaje máquina hipotético. Pero se presentaron problemas en la escuela (maldita UdeG  :angry:  ) y debí cambiarme de turno y no pude ver bien ese tema. Sólo alcancé a realizar el grafo del automáta finito para el analizador léxico.

     Espero sirva de algo a alguien.  :rain:
El experto es aquel que sabe cada vez más sobre cada vez menos, hasta que sabe competamente todo sobre absolutamente nada.
[size=109]Ley de Murphy[/size]

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #11 en: Jueves 6 de Abril de 2006, 09:23 »
0
Cita de: "su -"
Un momento, PE es el Object file de Microsoft, creo que estoy mal informado.
Como es el formato de un EXE, es decir, como esta estructurado?
 :blink:
http://en.wikipedia.org/wiki/Portable_Executable  :smartass:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #12 en: Jueves 6 de Abril de 2006, 22:21 »
0
Citar
entonces como nos organizamos para
Citar
hacer un copilador (para cualquier lenguaje) y cualquier plataforma
creo que tendriamos que mirar el codigo fuente de mono y como funciona la maquina virtual de java. en que lenguaje lo montamos, haber si lo mostramos en algun congreso.
:whistling: Realmente fue que los parentesis no los puse bien y lo de "y cualquier plataforma" esta dentro de los parentesis  :rolleyes:  es para el lenguaje y la plataforma que el desarroyador quiera.
Masiosare y Eternal, gracias por la info.  :lol:
 :hola:
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

cluster

  • Miembro MUY activo
  • ***
  • Mensajes: 196
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #13 en: Viernes 7 de Abril de 2006, 00:26 »
0
pero a mi me gusto la idea, todo esta en guiarse en uno ya hecho a menos que lo que pretendas hacer sea innovador, con lo del traductor que no te gusto creo que con tanto lenguaje por hay regado es bueno hacer un traductor y que ejecute todos los lenguajes.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #14 en: Viernes 7 de Abril de 2006, 01:59 »
0
Lo del traductor no me gusta por que no tiene sentido hacer algo en C o TP para pasarlo a ASM en una calidad mas vaja (No lo digo por ASM si no por que es un desgaste sabiendo que el codigo generado nunca es igual al escrito por un humano) aunque de todas formas habria que hacer una espesie detraductor para crear el ejecutable.
Lo de mono+java bitecode, bueno, no dije que no  :lol:  si puedes con eso, adelante, pero para mi es Chino (Dificil de escribir, mas no imposible).
Al fin, la idea es transformar un codigo en un ejecutable, ese es el verdadero reto.
 :hola:
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

cluster

  • Miembro MUY activo
  • ***
  • Mensajes: 196
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #15 en: Miércoles 10 de Mayo de 2006, 18:32 »
0
como va, estoy barado en crear el ejecutable .exe.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #16 en: Miércoles 10 de Mayo de 2006, 19:43 »
0
Mira el enlace que te deje, necesitas dominar ese formato a la perfeccion. Yo empezaria haciendo solo un output de .OBJ y usando el linker de Microsoft (link.exe jeje).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Reto: Hacer Un Compilador
« Respuesta #17 en: Miércoles 10 de Mayo de 2006, 23:20 »
0
☺唐鳳☻ creo Win32::Exe, que me ayudo a crear los Pe, y PAR, para los Elf.
En teoria, podia compilar Pe en Unix, y Elf en Win32, pero formatie el disco y perdi toodo  :(
Maldito OpenBSD, las particiones las hace ...  bueno, tendre que empesar desde cero. :angry:
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.