Búscalo aquí:

Mini Compilador de Expresiones Funcionales [código]


Muchos de nosotros hemos tenido la oportunidad de trabajar con la programación funcional, como la que se pone en marcha sobre Scheme y por tanto, nos habremos dado cuenta de que, programar en Scheme, requiere cierta capacidad de abstracción (y algo de práctica), sin embargo, los beneficios son bastantes, entre ellos, la posibilidad de resolver problemas complejos con programas cortos y elegantes. Hace algún tiempo, en un curso que llevé en la Universidad, nos dejaron como trabajo realizar un pequeño compilador en el que se pongan de manifiesto los dos elementos principales de estos: un analizador léxico y un analizador sintáctico, por lo que junto a mi grupo de trabajo, decidimos realizar un mini compilador Scheme.


El mini compilador scheme que presenté para dicho curso, resuelve cálculos matemáticos (operaciones aritmeticas, trigonométricas, booleanas) y algunas funciones (let, cons, car, lambda, entre otras) sencillos a partir de instrucciones en notación prefija como parámetro de entrada, de la misma manera como lo realiza el auténtico Scheme, además se hace uso de diferentes tipos de datos para su mejor tratamiento.

En esta oportunidad quiero compartir con ustedes el código fuente básico de este mini compilador scheme el cual ha sido escrito en Java y en el cual solamente se implementa la solución de tratamiento y resolución de operaciones aritméticas y trigonométricas; puesto que el objetivo es observar las partes de un compilador y cómo estas interactuan entre sí , al menos en términos generales.

Para que todo quede lo mayor claro posible, iré comentando las partes más resaltantes del programa en diferentes posts.

Así pueden ver:

* Clase principal : Aquí ubicamos el main del programa, por donde ingresan las instrucciones y se muestran el resultado obtenido. Debe estar ubicada en el paquete Principal.

* Analizador Léxico

* Tipos de Datos

* Analizador Sintáctico

* Cómo ejecutar las instrucciones de un compilador


De ésta manera, nuestro pequeño compilador podrá funcionar de la siguiente manera:

>>(* 15 3)
15

>>(* (/ 9 3) (+ (- (* 8 9) 20 ) (/ 15 3) ) )
171

>>(+(sin 90) 4 )
4

Recuerden que el código que presentaré se encuentra en Java y cada parte mencionada en la lista anterior se encuentra en su determinado paquete, los cuales, deben estar integrados en un único proyecto para su correcto funcionamiento. Además es un trabajo enfocado en mostrar el funcionamiento a pequeña escala de un compilador y no es aplicado con fines profesionales. 
Los autores del trabajo son: Jorge Valverde Rebaza, Oscar Fernández Asunción y Juan Grados Vásquez. Espero les sea de utilidad.


Quieres leer más post como éste???...suscribete aquí!!!

12 comentarios:

  1. Hola!!antes que nada muy bueno tu blog e interesante, mi duda es si m podrias enviar tu codigo a mi correo o ayudarme lo que pasa es que me han pedido que elabore un simulador de un compilador exactamente como el tuyo, es por eso que me atrebo a pedirte tu ayuda en ello, de antemano muchas gracias espero tu respuesta mi correo es el siguiente: nallely263@hotmail.com

    ResponderEliminar
  2. Hola!!antes que nada muy bueno tu blog e interesante, mi duda es si m podrias enviar tu codigo a mi correo o ayudarme lo que pasa es que me han pedido que elabore un simulador de un compilador exactamente como el tuyo, es por eso que me atrebo a pedirte tu ayuda en ello,espero tu respuesta mi correo es el siguiente: karek-17@hotmail.com

    ResponderEliminar
  3. Hola a todos, gracias por sus comentarios, el código fuente que solicitan esta disponible en este post y en los que se indican, asi mismo se explica de manera ganeral su funcionamiento, sigan la secuencia de post y descarguen el código adjunto en cada uno y podrán tener el mini compilador.

    saludos

    ResponderEliminar
  4. hola amigo oye esta super bueno tu proyecto oye pero una duda lo que pasa es que no puedo hacer funcionar tu compilador lo que pasa es que no puedo descargar la clase principal no la puedo descargar no se si me lo puedas enviar a mi correo es el siguiente marcoska_89@hotmail.com espero me puedas ayudar

    ResponderEliminar
  5. disculpa me podrias hacer favor de pasarme tu codigo del minocompilador te lo agradeceria de antemano este es mi correo dakota _jer@hotmailcom

    ResponderEliminar
  6. Ola amigo, por favor, me podrías proporcionar tu código, a mi correo canche_speed@hotmail.com seria de gran ayuda, lo necesito algo urgente, muchas gracias, Dios te bendiga

    ResponderEliminar
  7. Hola...
    Me puedes enviar tu codigo, porque los link que tienes estan caidos.
    felicar89@msn.com u felicar0289@gmail.com
    Gracias

    ResponderEliminar
    Respuestas
    1. Los links ya están habitilirados nuevamente, disculpa, hubieron unos problemas técnicos pero ya fueron solucionados.

      sds

      Eliminar
  8. Hola!
    Que tal
    Me podrias pasar tu codigo, por que los link de descarga estan rotos

    ResponderEliminar
  9. Hola, los links no funcionan. En que otros links puedo ver tu codigo fuente?

    ResponderEliminar
  10. Hola, podrías enviarme tu código fuente, gracias de antemano, poweracuario02@gmail.com

    ResponderEliminar
  11. no sirven los links mau_02-95@hotmail.com

    ResponderEliminar

Bienvenido a jcGeorge's Blog!!!

Por favor deja tu comentario, consulta o sugerencia, procura mantener habilitado tu perfil de Blogger o deja un enlace a tu blog o web.

Gracias por leer este blog!!!

Related Posts Plugin for WordPress, Blogger...