gaz

  • Aumentar fuente
  • Fuente predeterminada
  • Disminuir fuente
Home PFCs y Trabajos de Fin de Master PFCs / TFMs terminados Desarrollo de fases de compilación para descubrir el tiempo de ejecución de peor caso

Desarrollo de fases de compilación para descubrir el tiempo de ejecución de peor caso

E-mail Imprimir PDF

Título: Desarrollo de fases de compilación para descubrir el tiempo de ejecución de peor caso


Director:
Juan Segarra ( Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla , D0.16) y Víctor Viñals


Ponente:


Perfil:
Ingeniero en Informática


Requisitos:
Gusto por la tecnología de compilación y los sistemas de tiempo real


Resumen:
El 98% de procesadores en 2008 fueron para sistemas empotrados, muchos de ellos con requisitos de tiempo real. El software
para sistemas empotrados suele tener ciertos requisitos temporales y de tamaño, lo cual conlleva un especial cuidado en su compilación y optimización. Para sistemas de tiempo real, una vez se dispone del ejecutable, éste ha de ser analizado para
obtener su tiempo de ejecución en el peor caso. Este proceso requiere información que maneja internamente el compilador
pero no queda explícita en el ejecutable final, con lo que recuperarla es muy complejo.
El objetivo de este proyecto es implementar una serie de pasos (fases en la terminología usual de compiladores) que obtengan
la información necesaria directamente en el proceso de compilación: reusos de bloques de memoria, número máximo de
iteraciones en bucles, etc. Para ello se usará la infraestructura de compilación LLVM. LLVM es una tecnología modular que permite implementar pasos de compilación de forma sencilla en C++. Con la información recopilada en estos pasos se
rellenarán tablas de datos que permitirán analizar con posterioridad los programas compilados.
Este análisis posterior se realiza mediante programación lineal o programación lógica, ya que, usando paradigmas de
programación imperativa u orientada a objetos, es difícil expresar los algoritmos apropiados. Así, una posible extensión sería generar los programas lógicos/lineales a partir de las tablas de datos generadas por el compilador.
LLVM: http://llvm.org/
Programación Lógica: http://eclipseclp.org/, http://eclipseclp.org/examples/sudoku.ecl.txt
Programación Lineal: http://lpsolve.sourceforge.net/5.5/lp‐format.htm


Duración:
6 meses


Lugar: gaZ lab (Dpto. Informática e Ingeniería de Sistemas)


Más detalles:
Es posible complementar este proyecto con una Beca Colaboración del Ministerio de Educación para el curso 2010/2011.


Fecha de publicación : 28/9/2010