viernes, 30 de agosto de 2013

Diseño de compiladores




Esta lectura me hace reflexionar acerca del curso y sus alcances de enseñanza y práctica. Se mencionan que está tomando cierta importancia este curso dentro del plan de materias de las carreras que tienen que ver con el área computacional.
Después de leer varios ejemplos sobre algunos compiladores que no necesariamente transforman a código maquinal, como lo es Dot, me ha quedado muy claro que el algoritmo de compilación es el mismo en cualquier caso o aplicación que quieras darle.
Estos pasos para no olvidarlos son:

  • Análisis léxico y sintáctico
  • Análisis semántico
  • Generación de código
  • Optimización del código


El análisis léxico es nuestro punto de partida y lo que realiza es convertir aquello que vamos a compilar en alguna unidad que nos ayude en el proceso de traducción. Esto también es conocido como transformar a “tokens” y es el proceso que consume más tiempo en un compilador.
Después de ello el análisis sintáctico define que la secuencia de tokens actual concuerda con la gramática o lenguaje que estamos a punto de compilar. Es decir, si nuestro archivo esta en HTML si lo que leyó es HTML. El resultado de esto es algo conocido como parse tree.
Luego en el análisis semántico revisamos que ese HTML sea coherente. Un ejemplo de esto es que todas las etiquetas, tengan sus respectivas etiquetas de cierre.
Y como últimos pasos la generación y optimización del código.
No esperaba se tocará el tema de optimización de código, resulto nuevo para mí, pero vi que era importante ya que todos pensemos que la optimización es para que el código sea más rápido de ejecutar tiene otros enfoques esto, como mayor facilidad de lectura del código resultante, o en el caso que ejemplificaban de Dot, pues que el diagrama de resultado no tuviese líneas cruzadas y fuese más fácil su visualización.

Después de conocer un poco más de aplicaciones de compiladores sin duda resulta mucho más interesante el tópico, y no solo por el hecho de que podemos crear un programa que se ejecute en una pc o en un teléfono, sino porque podemos crear imágenes o algunas otras cosas interesantes.

Referencias
Saumya , D. Making compiler design relevant for students who will (most likely) never design a compiler.

No hay comentarios:

Publicar un comentario