PROYECTO N° 032614 2/I
TITULO:
ANALISIS SINTACTICO Y SEMANTICO DE PROGRAMAS ESCRITOS EN
JSHIELD.
Investigador Principal
Luis Gajardo Díaz
Facultad/Depto.
Ciencias Empresariales/Auditoría e Informática
E-Mail
[email protected]
Coinvestigadores
Mª Angélica Caro G.
OBJETIVOS:
- Desarrollar un dialecto de Java llamado Jshield que integra los conceptos de Safethreads y Rendez-Vous.
RESUMEN Y RESULTADOS:
La programación concurrente permite crear procesos denominados threads que comparten
las mismas estructuras de datos de manera simultánea. En este esquema, uno de los errores
más temidos corresponde a los data races que se produce cuando dos o más procesos
modifican simultáneamente estas estructuras de datos dejándolas en un estado de
inconsistencia. Es bastante común que los programadores no identifiquen todas las
secciones críticas donde se accesan estas estructuras y más aún que no las sincronicen
adecuadamente.
El problema de los data races ha sido analizado desde diferentes puntos de vista. Uno de
ellos es el Rendez-Vous, el cual es una poderosa herramienta para estructurar el código que
permite facilitar la comprensión y escritura de los programas concurrentes, pero no ataca la
detección y prevención de los data races. Otro punto de vista corresponde al modelo de
Safe-threads, que resuelve este problema por medio de modificaciones a la semántica del
lenguaje Java originando así un nuevo dialecto, denominado Jshield. Sin embargo, el
mecanismo utilizado en Jshield es distinto del Rendez-Vous y carece de la legibilidad y
elegancia de este último.
Por otra parte, la implementación de un preprocesador de Jshield a Java estándar, utiliza
herramientas como JavaCC y Java Tree Builder (JTB) que generan automáticamente el
analizador sintáctico para la gramática y el árbol de derivación respectivamente. El
problema de estas herramientas es que generan árboles de gran tamaño que se originan a
partir de la gramática original del lenguaje Java. Esto hace que el proceso de traducción
sea ineficiente y además que el código del preprocesador sea incomprensible por la
cantidad de reglas sintácticas que hay que considerar.
En este trabajo desarrollaremos un diseño ad-hoc, que contempla un árbol de sintaxis
abstracta (AST) para la gramática de Jshield y lo enriqueceremos con la construcción
sintáctica denominada Rendez-Vous que permite mejorar la legibilidad de los programas.
Por tanto, se desarrollará la mitad de un preprocesador para Jshield el cual contempla
cuatro etapas: el análisis léxico y sintáctico para la fase de reconocimiento de la gramática
y el análisis de interfafaz y de tipos para la fase semántica.
Resultados:
Mostramos que un Arbol de sintaxis abstracta (AST) es más conveniente que un árbol de
derivación ya que permite ventajas en términos del espacio de memoria necesario para
almacenarlo, tiempo requerido para recorrerlo y facilidad de mantención.
Entregar a la comunidad de una herramienta de libre distribución, que permite realizar
análisis semántico sobre programas escritos en Jshield y java. De esta manera se facilita la
implementación de nuevos módulos de análisis semántico, como por ejemplo de RendezVous.
Los investigadores pueden enriquecer experimentalmente la gramática de java agregando
nuevas capas, por ejemplo, sobre el análisis de tipos para desarrollar nuevas
funcionalidades en java.
PUBLICACIONES:
-
Análisis semántico de programas escritos en Java. Revista THEORIA: Ciencia, Arte y
Humanidades.
PRESENTACION EN CONGRESOS Y/O EVENTOS:
-
Luis Gajardo y Luis Mateu. Análisis semántico de programas escritos en Java. XII
Encuentro Chileno de Computación de las Jornadas Chilenas de Computación.
Universidad de Tarapacá, Noviembre 2004.
TESIS:
-
Análisis sintáctico y semántico de programas escritos en Jshield. Luis Gajardo Díaz.
Tesis de Magister.
Descargar

c_empresariales032614_2_i