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.

jueves, 15 de agosto de 2013

Yo!

Así es, esta entrada habla acerca de mí. Mi nombre es Daniela, aunque me gusta que me digan Dany o Nanis. Actualmente me cambié de campus así que espero mucho de todo. Para los que no sepan este blog es para la materia de Compiladores que actualmente curso y todos están invitados a leer mis posts. Espero que sea una experiencia grata y que aprenda mucho acerca de ese proceso mágico de ver ejecutar aquellas pequeñas creaciones que llamo programas, quizá en algún momento con tanto aprendizaje me interese emprender el diseño de un nuevo lenguaje (yo siempre soñando).

Pero bueno esto es para hablar de mí, de mis pasatiempos...

Acerca de los videojuegos (creo que a ellos les debo la elección de mi carrera) en este momento me encuentro jugando Alan Wake, uno de los mejores juegos del 2010. Aquí les dejo el trailer para ver si se animan a jugarlo. Sin duda una excelente historia.





En los pocos ratos libres que mis actividades me han proporcionado esta semana, he comenzado a leer Frankenstein de Mary Shelley, sin duda una historia muy descriptiva, quién no se ha dado la oportunidad de leerlo debería de hacerlo simplemente es fantástico.





Nunca me he considerado fanática de las series de TV pero hace no mucho comenzó a llamar mi atención la famosa serie The Big Bang Theory, en un día normal mientras no había que ver en la TV alguien decidió dejarle ahí, no pude dejar de reír todo el tiempo, cada broma "nerd" era excesivamente graciosa para mí aunque de repente me di cuenta que era la única que entendía algunas cosas, me sentí extraña, pero sin duda es una buena serie para verse.




Y de mi último gran pasatiempo es Magic: The Gathering, no sé si alguien lo conozca pero en lo personal es de lo mejor que me ha pasado en la vida, he hecho muy buenos amigos y me ha brindado excelentes experiencias. Este juego de cartas, se basa en duelos entre "magos" o "planeswalkers" en un multiverso. La cantidad de historias es muy variada y claramente tiene ese toque de fantasía, acción y suspenso que me encanta. Lo que más me encanta es la interacción con las personas, pero también tiene sus versiones para jugar online y tiene también un juego para diversas plataformas (Xbox, Steam, etc). Les dejo el trailer que más me gusta de todo el tiempo que llevo jugando.



Creo que he platicado suficiente de mí, espero sus comentarios!