Vous êtes sur la page 1sur 2

LA CIENCIA DE CONSTRUIR UN COMPILADOR

El diseo de compiladores est lleno de bellos ejemplos, en donde se resuelven problemas complicados del mundo real mediante la abstraccin de la esencia del problema en forma matemtica. stos sirven como excelentes ilustraciones de cmo pueden usarse las abstracciones para resolver problemas: se toma un problema, se formula una abstraccin matemtica que capture las caractersticas clave y se resuelve utilizando tcnicas matemticas. La formulacin del problema debe tener bases y una slida comprensin de las caractersticas de los programas de computadora, y la solucin debe validarse y refinarse en forma emprica. Un compilador debe aceptar todos los programas fuente conforme a la especificacin del lenguaje; el conjunto de programas fuente es infinito y cualquier programa puede ser muy largo, posiblemente formado por millones de lneas de cdigo. Cualquier transformacin que realice el compilador mientras traduce un programa fuente debe preservar el significado del programa que se est compilando. Por ende, los escritores de compiladores tienen influencia no slo sobre los compiladores que crean, sino en todos los programas que compilan sus compiladores. Esta capacidad hace que la escritura de compiladores sea en especial gratificante; no obstante, tambin hace que el desarrollo de los compiladores se a todo un reto.

Modelado en el diseo e implementacin de compiladores

El estudio de los compiladores es principalmente un estudio de la forma en que diseamos los modelos matemticos apropiados y elegimos los algoritmos correctos, a l tiempo que logramos equilibrar la necesidad de una generalidad y poder con la simpleza y la eficiencia.

Algunos de los modelos ms bsicos son las mquinas de estados finitos y las expresiones regulares. Estos modelos son tiles para describir las unidades de lxico de los programas (palabras clave, identificadores y dems) y para describir los algoritmos que utiliza el compilador para reconocer esas unidades. Adems, entre los modelos esenciales se encuentran las gramticas libres de con texto, que se utilizan para describir la estructura sintctica de los lenguajes de programacin, como el anidamiento de los parntesis o las instrucciones de control. De manera similar, los rboles son un modelo importante para representar la estructura de los programas y su traduccin a cdigo objeto.

La ciencia de la optimizacin de cdigo

El trmino optimizacin en el diseo de compiladores se refiere a los intentos que realiza un compilador por producir cdigo que sea ms eficiente que el cdigo obvio. Por lo tanto, optimizacin es un trmino equivocado, ya que no hay forma e n que se pueda garantizar que el cdigo producido por un compilador sea tan rpido o ms rpido que cualquier otro cdigo que realice la misma tarea.

Vous aimerez peut-être aussi