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