Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/06/2011, 13:20
jevangelista
 
Fecha de Ingreso: abril-2011
Ubicación: Distrito Federal
Mensajes: 112
Antigüedad: 13 años, 7 meses
Puntos: 17
Respuesta: como hacer un compilador en C

Tu pregunta es complicada e intervienen muchos temas, es difícil verlo en un solo post, te recomiendo ir poco a poco con los temas.

En un principio lo primero que debes hacer es planear tu analizador léxico mediante un autómata finito.

He visto que recomiendan mucho Flex, yo no lo he usado y soy creyente de tener todo el control mediante lenguaje C aunque ello implique mucho más trabajo, es cuestion de preferencias.

Te renvio algo que contesté en otro post:

Dadas las posibles cosas que se deben hacer en el desarrollo de un compilador yo recomendaría usar C o C++.

Mas que un lenguajes requieres aprender técnicas variadas como estructuras de datos que van desde arreglos hasta árboles en memoria. Es decir que necesitas una herramienta que te permita alojar, usar y liberar memoria de manera intensiva.

En cuanto a las técnicas específicas requieres manejo de autómatas, grafos, diagramas de sintaxis. Estas serían tus herramientas para planificar y diseñar tu lenguaje.

Si quieres llegar hasta el compilador necesitas amplio conocimiento de ensamblador.

Actualmente hay varios proyectos de código abierto que te pueden inspirar, te dejo una liga de un lenguaje que tiene renombre y del que puedes descargar el código para que lo estudies: http://www.lua.org/home.html

Te menciono algunos libros (de mi bilbioteca particular):

Lenguajes de programación, diseño e implementación. Prant Zelkowitz
Introducción a la teoría de autómatas,lenguajes y computación. Hopcroft, Ullman
Compiladores, principios, técnicas y herramientas. Aho, Sethi, Ullman.
Compiladores teoría e implementación. Jacinto Ruiz Catalan.

Y por ultimo te recomiendo sacar credencial de biblioteca de externo en alguna universidad donde tengan carreras de informática, ahí tienen de todo y seguro encuentras de entrada libre.

Espero mucho te sirva y mucha suerte con tus proyectos.!