• Sábado 18 de Mayo de 2024, 20:20

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

luciajose

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Hacer Un Compilador
« en: Miércoles 20 de Octubre de 2004, 17:05 »
0
Hola a todos, pues la cosa es que necesito hacer un compilador muy basico y necesitaria un poco de orientacion para saber por donde tengo que empezar (qué documentacion me puede ayudar, algun otro proyecto de este tipo etc...).
Gracias.

LeGatoRojo

  • Miembro HIPER activo
  • ****
  • Mensajes: 552
  • Nacionalidad: mx
    • Ver Perfil
    • LeGatoRojo
Re: Hacer Un Compilador
« Respuesta #1 en: Jueves 21 de Octubre de 2004, 09:44 »
0
primero haz todo el reconocimiento de pilas, de caracteres y como va a ser, todo,
para despues, bueno eso esta dificil, pues no se como convertir lenguaje texto a maquina
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.

luciajose

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Hacer Un Compilador
« Respuesta #2 en: Jueves 21 de Octubre de 2004, 16:08 »
0
Ese es el problema, que no se por donde empezar para hacer todo lo que me comentas respecto al reconocimiento de pilas y demás porque vengo de hacer aplicaciones completamente diferentes.

Por lo que he leido me serviria tambien hacer un interprete que fuese ejecutando el codigo a la vez que va leyendo pero no sé por donde empezar.

Gracias.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Hacer Un Compilador
« Respuesta #3 en: Jueves 21 de Octubre de 2004, 16:12 »
0
que es lo que mas bnecesitas un compilador o un editor - compilador?
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

luciajose

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Hacer Un Compilador
« Respuesta #4 en: Viernes 22 de Octubre de 2004, 11:58 »
0
Necesito un compilador ó un interprete (lo que mas facil sea de hacer) porque lo que me van a pasar es codigo en un lenguaje de alto nivel con sentencias if, variables etc.. (algo parecido al viejo Pascal) y analizando ese codigo tengo que sacar datos. El problema es el que comento mas arrriba, que vengo de hacer un tipo muy diferente de aplicaciones y no sé por donde empezar para hacer esto. Por eso estaria muy agradecida si me podeis ayudar. Gracias.

ragnarok

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Hacer Un Compilador
« Respuesta #5 en: Viernes 22 de Octubre de 2004, 18:26 »
0
Yo estoy aprendiendo ahora mismo a hacer compiladores, y es una asignatura que dura todo un año, así que no es algo trivial. Para empezar deberías informarte de lo que es un autómata, y de lo que son las gramáticas, por lo menos las gramáticas regulares y las de contexto libre.

Luego deberías leer documentación acerca de compiladores, y cuando tengas más o menos idea de lo que es un compilador, qué hace y cómo lo hace puedes mirar en esta página:

http://dinosaur.compilertools.net/

Ahí puedes encontrar documentación acerca del LEX y el yacc, que son dos herramientas para desarrollar compiladores en C (en C para lo que quieras, como Pascal). El LEX se ocupa del analizador léxico y el yacc del sintáctico, que como ya verás son las dos partes principales de un compilador, aunque no las únicas.

Espero que te sirva, ¡suerte!

deldar

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Re: Hacer Un Compilador
« Respuesta #6 en: Viernes 22 de Octubre de 2004, 18:58 »
0
Además de lo dicho también sería interesante conocer el tipo de analizador que tienes que desarrollar, es decir, ascendente(LR-0,LR-1,LALR... ) ó descendente(LL1...).
Quien de verdad sabe de qué habla, no encuentra razones para levantar la voz.

Click

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Hacer Un Compilador
« Respuesta #7 en: Domingo 24 de Octubre de 2004, 16:42 »
0
Solo añadir, que no te asustes, comprender qué es un autómata y cómo funciona no es complicado, las gramáticas regulares son faciles de entender, y las herramientas lex y yacc son faciles de usar. El único problema que encontré fué al intentar usarlas ... creo que por algun problema de configuración que no recuerdo. Ánimo que es mas facil de lo que parece!!




---------------------------------------------
Setimo Sentido

bisoph_as

  • Miembro activo
  • **
  • Mensajes: 57
  • Nacionalidad: mx
    • Ver Perfil
Re: Hacer Un Compilador
« Respuesta #8 en: Domingo 24 de Octubre de 2004, 17:55 »
0
Mira yo llevo la materia de compiladores y mi proyecto tambien es hacer uno de estos, ahi te va yo , ya se lo que es un automata y las gramaticas, entonces, hice un programa en lex (bajo linux) , el lex es generador de analizadores lexicos, y uno de estos es la parte inicial de un compilador,  te mando este codigo que analiza y saca los tokes de un archivo en lenguaje pascal. ok

para compilarlo tienes que estar en linux y desde una terminal poner los sig comandos:

# flex nombre_del_codigo.l
# gcc -o nombre lex.yy.c -lfl
# ./nombre nombre_del_archivo_en pascal


conste que tienes que saber algo de las gramaticas o del lex para entender el codigo. sale!!   espero que te sirva de algo

que el poder te acompañe  :lightsabre:  :comp:  :hola:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
JeSús dice: Cometer Errores Es humano Perdonar es divino

luciajose

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Hacer Un Compilador
« Respuesta #9 en: Lunes 25 de Octubre de 2004, 11:04 »
0
Pues la verdad es que no encuentro mucha información en Internet que me sirva de guia para empezar a investigar. ¿Sabeis de algun buen libro en español ó de alguna pagina que tenga buena documentación?

Para lo que comentais de los automatas, di una asignatura hace tres años donde (a nivel teorico y sobre papel) se trataban los automatas deterministas e indeterministas ¿os referis a los automatas desde ese punto de vista?

Muchas gracias a todos, me estais animando y ayudando.

ragnarok

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Hacer Un Compilador
« Respuesta #10 en: Lunes 25 de Octubre de 2004, 15:38 »
0
Si, los autómatas son eso. Probablemente en esa asignatura también estudiaras las gramáticas y las expresiones regulares porque están bastante unidos.

luciajose

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Hacer Un Compilador
« Respuesta #11 en: Miércoles 3 de Noviembre de 2004, 10:44 »
0
Pues entonces voy a dar un repaso a esos temas porque siempre se van olvidando cosas si no se está de ello. Una vez que eche un vistazo a todo el tema de automatas y demás ¿alguien sabe cual sería el siguiente paso que tendría que dar?

Como siempre, muchas gracias a todos.

jvillamizarl

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Hacer Un Compilador
« Respuesta #12 en: Sábado 13 de Noviembre de 2004, 16:29 »
0
Cita de: "JuanK"
que es lo que mas bnecesitas un compilador o un editor - compilador?
 :hola: Estoy interesado en encontrar la manera de trabajar con graficos en c++ pero desde los ordenadores que he tratado hacerlo no me ha sido posible en un inicio pense que era graphic.h o graphic ya que tengo algunos programas ajedres batalla naval bueno y el boton.... y se pierde la esencia. Estoy ansioso de ver trabajar c++ bueno indirectamente con graficos en los foros ya solucionaste parte de estas inquietudes pero especificamente no se que hacer para operar este modo tengo instalado c++ pero que mas debo hacer que programa debo instalar no se.....

Please dont send me to study in the net because the powerknown is in your brain thanks......................................

 :ph34r: el villa

CiRRuS

  • Miembro MUY activo
  • ***
  • Mensajes: 218
    • Ver Perfil
    • http://zirrus.es
Re: Hacer Un Compilador
« Respuesta #13 en: Lunes 15 de Noviembre de 2004, 14:35 »
0
Citar
Una vez que eche un vistazo a todo el tema de automatas y demás ¿alguien sabe cual sería el siguiente paso que tendría que dar?

Uniendome a la conversacion, y ya que una de mis practicas va a ser un compilador, creo que puedo echar una mano.

Creo que deberias seguir los siguintes pasos:
- Echa un vistazo a la teoria de automatas, buen libro el "Introduccion a la teoria de automatas, lenguajes y computacion" de Hopcroft. Familiarizate con los lenguajes regulares, libres de contexto y demas. Otro libro interesante es "lenguajes, gramaticas y automatas" de Isasi.
- Luego profundiza en las gramáticas y todo lo relacionado con los traductores: Analisis lexico, analisis sintactico (Analisis descendente y ascendente), analisis semantico.
- Luego te metes en materia de compiladores (gramaticas atribuidas, comprobacion de tipos, tabla de simbolos, declaraciones, cuadruplas, optimacion... hay un rato), buen libro el mitico "Compiladores. Principios tecnicas y herramientas" de Aho, el guru en esto.

Para lanzarte y programar un compilador creo que las herramientas principales ya se han nombrado: Lex (flex en linux), yacc (creo que es bison el mas moderno) y conocimientos de C. Si tu gramatica es atribuida (como creo que te saldra) y tienes mas de un atributo sintetizado y heredados, deberias usar herramientas mas potentes, como por ejemplo rie (con la que lucho actualmente yo ;) , y que tampoco es tan potente).

No te asustes, como bien se ha dicho, es un tema al que se le puede dedicar un año entero, he incluso un carrera. Pero ya te digo, poco a poco veras que lo consigues.

Si necesitas algo ya sabes.

Nos vemos :hola:
Core Dumped
zirrus.es

luciajose

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Hacer Un Compilador
« Respuesta #14 en: Lunes 15 de Noviembre de 2004, 17:36 »
0
Muchas gracias CiRRus, asi que tambien estás profundizando en el mundo de los compiladores. Pues yo estoy intentando recopilar toda la informacion posible que me vais aconsejando y voy a echar un vistazo para ver si puedo conseguir éstos libros que me comentas, porque hasta ahora encuentro poca información y la que encuentro pues no me va guiando de forma ordenada en los pasos que tengo que dar, porque como se suele decir "Hay tela para cortar".

Por otro lado estoy echando tambien un ojo a C++ de .NET y podría ser una buena opcion como lenguaje para programar el compilador.

Venga, gracias a todos y seguimos en contacto.

antony_soluciones

  • Miembro MUY activo
  • ***
  • Mensajes: 222
    • Ver Perfil
Re: Hacer Un Compilador
« Respuesta #15 en: Miércoles 17 de Noviembre de 2004, 23:29 »
0
[size=109]Antony Hernan Delgado Solano. @antonyDelSol en twitter[/size]