[NDS] compilador para C

Hola estoy trabajando en un programa que aga sentencias de C, pero hasta ahora las funciones de C que funcionan son las sig.
printf
getch
gotoxy
clrscr

ahora , tengo una ligera idea de como poner las variables, pero no se si algunos de ustedes tenganun programa en C que interprete codigos en C para que cheque como esta echo por que ahora tengo problemas con las variables, y sion variables no puedo poner siclos ni condiciones y sin eso el programa es inutil ! de antemano gracias !
mmm perdona puedes ser más explícito, lo que quieres es hacer un interprete de c si no me equivoco, no?
de echo si ! no saben de algun programa que aga eso ??? para tener una idea !
Un interprete de C es una tarea un poco complicada.
Las utilidades bison - flex son libres y permiten diseñar un traductor ascendente a partir de la gramática( la de C debe estar en la especificación del lenguaje). Pero para la DS .. dudo que funcione el codigo generado.
Si no tienes idea de gramaticas y todo eso vas a tener que investigar un poco...
si quieres te puedo pasar apuntes de mi carrera que nos obligan ha hacer uno que sea la polla y la verdad es un asesinato!!!

las herramientas muy buenas ;).

para hacer un interprete tienes que saber que es una tarea muy costosa, y que no la puede hacer un usuario sin saber teoria. Primero debes de saber que las entradas se han de procesar, esto es, el nivel lexico que se encarga de convertir las cadenas e tokens un ejemplo:

int entero; //declaramos un entero

fijate que eso una máquina no lo entiende así que el nivel léxico lo transforma en:

defEntero variable pc

esta fase es muy fácil y se puede hacer con una máquina de estados.

Ahora para definir las estructuras tienes que aplicar la gramática en este caso será la que forma el conjunto de sentencias de c que quieres. para esto tendrías algo como

->pc
->|opmult|opdiv
->|opsum|opres
->variable|entero

bueno y así deberías seguir las reglas esta gramática debería sumar restar multiplicar y dividir teniendo en cuenta el orden de las operaciones importantes ( aunque creo que tengo recursividad una fácil de resolver ;) )

y por último el nivel semántico tiene que encargarse de que las frases tengan sentido quiere decir que por ejemplo no se produzcan desbordes en un entero o division por 0 o que no se sume una cadena a un etero cosas así.

pd: bily! apruebame de una vez que ya me lo sé todo xD ( la única asignatura que me queda para acabar la carrera :( )
4 respuestas