Foros del Web » Programación para mayores de 30 ;) » Programación General »

Hacer un compilador en C

Estas en el tema de Hacer un compilador en C en el foro de Programación General en Foros del Web. Si. Que loca idea, pero despues de un ensamblador, pues quiero hacer un compilador para asi conformar un mega depurador. Estuve buscando algo de info ...
  #1 (permalink)  
Antiguo 02/08/2005, 22:47
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 11 meses
Puntos: 52
Hacer un compilador en C

Si. Que loca idea, pero despues de un ensamblador, pues quiero hacer un compilador para asi conformar un mega depurador.
Estuve buscando algo de info en internet, pero no encontre algo que me sirviera.
Tengo la idea sobre el proceso de compilacion y enlazado, pero lo que aun no se es un buen modo de leer el codigo(parse).

Haber si me pueden ayudar.
Saludos
  #2 (permalink)  
Antiguo 02/08/2005, 23:34
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 5 meses
Puntos: 74
Tendrias que investigar sobre un par de temas para empezar: analisis lexico y sintactico.

Te dejo un link, en google seguramente encontraras mucho mas:
http://www.geocities.com/proyectocompilador
http://www.lightsidejedi.com/Persona...8/Default.aspx

Y si podes te recomiendo conseguir este libro:
Compiladores Principios, tecnicas y herramientas de Aho, Sethi y Ullman.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 03/08/2005, 17:36
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 6 meses
Puntos: 17
Hacer un ensamblador es "relativamente" fácil. Pasa las instrucciones escritas a su equivalente hexadecimal.

Hacer un compilador hace mucho más... Mucho más. ¿Realmente te es práctico crear un compilador en sí mismo? Yo optaría por crear un sencillo compilador de un sólo fichero fuente (o sea, sin linker), y que le pasara a tu programa ensamblador las instrucciones generadas. Si consigues eso, fabricar un linker para él sería tarea a mayores. Aparte, date cuenta de que un compilador C sigue ANSI C. Tienes que reescribir todas las funciones, o descargar unas ya hechas...
  #4 (permalink)  
Antiguo 03/08/2005, 18:26
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 11 meses
Puntos: 7
Cita:
Iniciado por Eternal Idol
Compiladores Principios, tecnicas y herramientas de Aho, Sethi y Ullman.
ese es el llamado "libro del dragon" no?, jeje, basico si se quiere trabajar sobre ello.

Instru, tambien te puedes buscar herramientas como lo son Lex y Yacc, que son analizadores lexicos y sintacticos respectivamente. Lo bueno de esos programas, es que aparte de simplificarte el trabajo de hacer tu compilador desde 0, te permite ver el codigo que debiste haber hecho para poder generar algo que aceptara la cadena que metiste.

Hacer un compilador completo de C desde 0 seria una locura, tan solo al momento de hacer el parseo son miles de lineas de codigo......

saludos,
  #5 (permalink)  
Antiguo 03/08/2005, 19:35
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 6 meses
Puntos: 17
Imagina que dicen que hacer un compilador de C es un juguete comparado con fabricar uno de C++... Y ya ni hablamos de cumplir todo el ANSI C++...
  #6 (permalink)  
Antiguo 03/08/2005, 23:30
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 5 meses
Puntos: 74
Cita:
Iniciado por blackwind
ese es el llamado "libro del dragon" no?, jeje, basico si se quiere trabajar sobre ello.
Efectivamente, asi se lo denomina.

Cita:
Iniciado por blackwind
Hacer un compilador completo de C desde 0 seria una locura, tan solo al momento de hacer el parseo son miles de lineas de codigo.....
Algunos lo llaman hobby
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 04/08/2005, 14:41
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 6 meses
Puntos: 25
Todavía recuerdo cuando hice mi analizador léxico/sintáctico... Definitivamente de lo más divertido que hice en la escuela... aunque no terminé la fase semántica

-24 horas de programación contínua = ojeras de mapache
-varias cajetillas vacías de cigarros = cruda de cigarro horrible
-refrescos de 2 lts rodando en el piso = argg
-entregar un programa que medio funciona y la maestra nos ponga 100; y a otros que si funcionaban les puso menos... no tiene precio
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #8 (permalink)  
Antiguo 04/08/2005, 16:05
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 11 meses
Puntos: 7
Cita:
Iniciado por Eternal Idol
Algunos lo llaman hobby
jeje

Cita:
Iniciado por Mithrandir
Todavía recuerdo cuando hice mi analizador léxico/sintáctico... Definitivamente de lo más divertido que hice en la escuela... aunque no terminé la fase semántica

-24 horas de programación contínua = ojeras de mapache
-varias cajetillas vacías de cigarros = cruda de cigarro horrible
-refrescos de 2 lts rodando en el piso = argg
-entregar un programa que medio funciona y la maestra nos ponga 100; y a otros que si funcionaban les puso menos... no tiene precio
yo recuerdo cuando hice un traductor de un lenguaje a otro, lo malo es que esos 2 lenguajes eran tipo Prolog :-p , y la verdad no me gusto para nada tener que dedicarle tantas horas a eso. Mi programa lo hacia todo bien y la interface era la mas bonita e "intuitiva" y aun asi no me puso 100 porque falte a varia clases, se paso de lanza la maestra.....jejej
  #9 (permalink)  
Antiguo 04/08/2005, 17:02
Avatar de Max13  
Fecha de Ingreso: octubre-2000
Ubicación: Mx
Mensajes: 1.229
Antigüedad: 24 años
Puntos: 0
Además de que le vas a tener que dar duro a los lenguajes y autotraumas (automatas perdón :p)
  #10 (permalink)  
Antiguo 13/08/2005, 15:49
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 11 meses
Puntos: 52
Perdon por tardar tanto, estaba fuera(vacaciones haya con los españoles Madrid).
Pues muchas gracias por su ayuda. Y creanme, ya no hay vuelta atras. Voy a hacer un compilador de C, pero aguas porque nunca dije ANSI C(jejejej).
Ya he hecho algunos anlizadores sintacticos y eso, pero obiamente nada tan complicado como C.

Y como me dice Maxextreme, voy a usar el ensamblador que hice en conjunto con el analizador asi el C lo convierte a ensamblador y luego ya el archivo binario. Pero si va a haber linker. Ya tengo un algoritmo hecho para linkear varios archivos.

Espero tambien recibir mas comentarios.
Saludos
  #11 (permalink)  
Antiguo 13/08/2005, 16:01
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 5 meses
Puntos: 74
Mas que un algoritmo para enlazar archivos tenes que hacer un par de rutinas para generar la cabecera PE, las secciones, resolver las relocations, funciones externas y muchisimos etcs.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #12 (permalink)  
Antiguo 13/08/2005, 16:10
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 6 meses
Puntos: 17
Cita:
Iniciado por Eternal Idol
Mas que un algoritmo para enlazar archivos tenes que hacer un par de rutinas para generar la cabecera PE, las secciones, resolver las relocations, funciones externas y muchisimos etcs.
Ciertamente, linkear no es ninguna broma... Y mucho menos un "algoritmo".
  #13 (permalink)  
Antiguo 13/08/2005, 17:41
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 11 meses
Puntos: 52
Jejejejeje. Namas les recuerdo que el compilador no es para un x86. La arquitectura que uso es mucho mas sencilla. Aparte la conosco perfectamente. Conosco cada elemento de la cabecera, todo el mapa de memoria, ciclos de cada instruccion, etc etc etc. Es pòr eso que me anime a hacer el compilador, porque la arquitectura la conosco perfectamente.

De todas maneras, entre mas informacion y mas comentarios, pues mas ayuda, asi que sigan.
Saludos
  #14 (permalink)  
Antiguo 14/08/2005, 01:23
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 5 meses
Puntos: 74
Entonces segui hacia adelante
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #15 (permalink)  
Antiguo 19/03/2009, 20:09
 
Fecha de Ingreso: marzo-2009
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Hacer un compilador en C

Muchachos, soy nuevo por aca, necesito que me ayuden, tengo como trabajo final, hacer una calculadora, haciendo el compilador desde cero, lo necesito hacer en lenguaje c++, agradeceria que me ayudaran guiandomen, en papel ya lo tengo casi listo por los ejemplos del profesor, pero necesitaba saber si visual express me sirve para esto?
  #16 (permalink)  
Antiguo 20/03/2009, 02:59
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 5 meses
Puntos: 74
Respuesta: Hacer un compilador en C

Si, te sirve, este hilo es del 2005!!
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #17 (permalink)  
Antiguo 02/07/2009, 18:29
 
Fecha de Ingreso: julio-2009
Mensajes: 3
Antigüedad: 15 años, 3 meses
Puntos: 0
Compilador en visual basic

Hola,

Tengo algunos programas que les pueden ayudar o apoyar en la realizacion de los suyos los cuales son:

Analizador Léxico hecho en Visual Basic 6
Compilador hecho en Visual Basic 6
Compilador del Lenguaje Pascal en Visual Basic 6
Un simulador de consola (MS-DOS) Hecho en Visual Basic 6

Si deseas adquirir alguno de estos códigos solamente mandame un correo a [email protected]
SALUDOS!!!

Rafael Cano Meza
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:56.