door GAMS Ciber-Papeleria 1 jaar geleden
180
Meer zoals dit
Es es la etapa en la cual se determina el tipo estático de cada expresión del programa fuente
Para realizar análisis de tipos se necesitan algunos pasos previos.
Su firma
Determinación de los métodos de cada clase
Determinación del ámbito de las variables
Reunir información sobre la interfaz de cada clase
Consiste de una clase externa que es agregada al modelo con el cual trabajamos y que actúa sobre los datos contenidos en las instancias de las clases del modelo.
ii) La estructura de objetos de una aplicación es estable, pero se quieren añadir con frecuencia nuevas operaciones a los objetos de esta estructura.
i) Muchas operaciones distintas y sin relación entre sí deben ser realizadas sobre objetos en una estructura de objetos intentando evitar una “contaminación”
Árbol de sintaxis abstracta
Posee un diseño acotado en el cual sólo se conservan aquellas clases que aportan un significado semántico, desechando aquellas que corresponden a reglas de desambiguación o parentización.
Esto permite reducir considerablemente el tamaño del árbol resultante.
Árbol de derivación
También llamado parse tree, posee un diseño en el cual cada producción de la gramática tiene su correspondiente objeto.
Esto significa que el tamaño del árbol será proporcional al tamaño de la gramática.
Dan la posibilidad al programador de trabajar a un nivel de abstracción más elevado que el que deberían usar si las escribieran a mano
2 críticas clásicas
2) El reporte de errores no es tan exacto.
1) Los parsers generados automáticamente son lentos y usan mucha memoria.
ANALIZADOR ASCENDENTE
Los analizadores ascendentes o bottom-up construyen el árbol comenzando por las hojas hasta concluir en la raíz.
Pueden manejar una gama más amplia de gramáticas.
ANALIZADOR DESCENDENTE
También llamados top-down, construyen el árbol sintáctico desde arriba (la raíz) hacia abajo (lashojas)
Son más populares, ya que se pueden implementar fácilmente a mano.