Treffer: ANÁLISIS SEMÁNTICO DE PROGRAMAS ESCRITOS EN JAVA.

Title:
ANÁLISIS SEMÁNTICO DE PROGRAMAS ESCRITOS EN JAVA. (Spanish)
Alternate Title:
SEMANTIC ANALYSIS OF PROGRAMS WRITTEN IN JAVA. (English)
Source:
Theoría: Ciencia, Arte y Humanidades; 2004, Vol. 13, p39-49, 11p
Database:
Complementary Index

Weitere Informationen

Actually, object oriented programming languages are used in all software development areas widely. One of the most known languages is Java, this programming language allows developing programs in a simple and elegant style. Java is used in researching very much because this fact, new facilities are implemented or even new dialects are created on it. These improvements require changes to language design level generally; the result is a program semantic analyzer with these new characteristics. Because there are no tools supporting semantic analysis of Java programs, researchers have to rewrite the most of functionality of Java Compiler just for adding few semantic changes. Building a Java program analyzer involves lexical analysis, syntax analysis, semantic analysis, etc. Two first steps are usually solved using tools that generate syntax analyzers automatically. These analyzers build a tree, which represents the traced source program. But with this solution appears a problem; the automatically built trees are huge because they contain more information that it is necessary to store. Besides, working with these trees is complex, tedious, and inefficient in storage space and time for visiting their nodes. So our goal is to design a tool that works with a smaller and more manageable tree, a tree that may be modified easily when new facilities are added to the language. The result of this work is a Java program semantic analyzer designed in levels so changes may be incorporated in any desired level without reprogramming all the analyzer. [ABSTRACT FROM AUTHOR]

Actualmente los lenguajes orientados a objetos son ampliamente utilizados en todas las áreas de desarrollo de software. Uno de sus principales exponentes, el lenguaje java, permite la construcción de programas de manera sencilla y elegante. Esto ha provocado que java sea muy utilizado en investigación, sirviendo de lenguaje base sobre el cual implementar nuevas mejoras, funcionalidades o incluso dialectos. Generalmente estas mejoras requieren de cambios a nivel de diseño del lenguaje, produciendo como resultado un analizador semántico de programas con estas nuevas características. Dado que no existen herramientas que apoyen el análisis semántico de programas escritos en java, es común que los investigadores tengan que reescribir gran parte de la funcionalidad del compilador de java para agregar sólo unos pocos cambios a nivel semántico. La construcción de un analizador de programas en java involucra pasos como análisis léxico, análisis sintáctico y análisis semántico. Las dos primeras etapas son abordadas por lo general por medio de la utilización de herramientas que generan de manera automática analizadores sintácticos. Estos analizadores sintácticos construyen una estructura tipo árbol que representa el programa fuente analizado. El problema que surge aquí es que estos árboles, al ser construidos automáticamente, son de un tamaño excesivamente grande ya que contienen más información de la que realmente se necesita almacenar. La manipulación de estos árboles es compleja, tediosa y es ineficiente en cuanto a espacio de almacenamiento y tiempo empleado en recorrer sus nodos. Nuestro objetivo entonces es realizar un diseño ad-hoc que permita trabajar con un árbol mucho más pequeño y manejable el cual puede ser fácilmente modificado para incluir nuevas funcionalidades al lenguaje. El resultado de este trabajo es un analizador semántico de programas escritos en lenguaje java, diseñado en capas de manera de permitir la incorporación de cambios al nivel que se necesite sin reprogramar el analizador completo desde cero. [ABSTRACT FROM AUTHOR]

Copyright of Theoría: Ciencia, Arte y Humanidades is the property of Universidad del Bio-Bio and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)