Analisis Sintáctico

Páginas: 26 (6391 palabras) Publicado: 5 de marzo de 2014
Traductores, Compiladores e Intérpretes

1

Tema 3.
Análisis Sintáctico.
Todo lenguaje de programación tiene reglas que describen la estructura sintáctica de programas
bien formados. En Pascal, por ejemplo, un programa se compone de bloques, un bloque de
proposiciones, una proposición de expresiones, una expresión de componentes léxicos, y así
sucesivamente. Se puede describir lasintaxis de las construcciones de los lenguajes de
programación por medio de gramáticas de contexto libre o notación BNF ( Backus-Naur Form).
Las gramáticas ofrecen ventajas significativas a los diseñadores de lenguajes y a los
desarrolladores de compiladores.

Las gramáticas son especificaciones sintácticas y precisas de lenguajes de programación.

A partir de una gramática se puede generarautomáticamente un analizador sintáctico.

El proceso de construcción puede llevar a descubrir ambigüedades.

Una gramática proporciona una estructura a un lenguaje de programación, siendo más
fácil generar código y detectar errores.

Es más fácil ampliar/modificar el lenguaje si está descrito con una gramática.

La mayor parte de este tema está dedicada a los métodos de análisissintáctico de uso típico en
compiladores. Primero se introducen los conceptos básicos, después las técnicas adecuadas para
la aplicación manual. Además como los programas pueden contener errores sintácticos, los
métodos de análisis sintáctico se pueden ampliar para que se recuperen de los errores sintácticos
más frecuentes.

5

¿Qué es el analizador sintáctico ?
Es la fase del analizador que seencarga de chequear el texto de entrada en base a una
gramática dada. Y en caso de que el programa de entrada sea válido, suministra el árbol
sintáctico que lo reconoce.
En teoría, se supone que la salida del analizador sintáctico es alguna representación del
árbol sintáctico que reconoce la secuencia de tokens suministrada por el analizador léxico.
En la práctica, el analizador sintácticotambién hace:





Acceder a la tabla de símbolos (para hacer parte del trabajo del analizador
semántico).
Chequeo de tipos ( del analizador semántico).
Generar código intermedio.
Generar errores cuando se producen.

En definitiva, realiza casi todas las operaciones de la compilación. Este método de trabajo
da lugar a los métodos de compilación dirigidos por sintaxis.

AnálisisSintáctico

Realizados por: María del Mar Aguilera Sierra y Sergio Gálvez Rojas

Traductores, Compiladores e Intérpretes

2

Análisis Sintáctico.

5

Manejo de errores sintácticos
Si un compilador tuviera que procesar sólo programas correctos, su diseño e implantación
se simplificarían mucho. Pero los programadores a menudo escriben programas
incorrectos, y un buen compilador deberíaayudar al programador a identificar y localizar
errores. Es más, considerar desde el principio el manejo de errores puede simplificar la
estructura de un compilador y mejorar su respuesta a los errores.
Los errores en la programación pueden ser de los siguientes tipos:





Léxicos, producidos al escribir mal un identificador, una palabra clave o un
operador.
Sintácticos, por unaexpresión aritmética o paréntesis no equilibrados.
Semánticos, como un operador aplicado a un operando incompatible.
Lógicos, puede ser una llamada infinitamente recursiva.

El manejo de errores de sintaxis es el más complicado desde el punto de vista de la
creación de compiladores. Nos interesa que cuando el compilador encuentre un error, se
recupere y siga buscando errores. Por lo tanto elmanejador de errores de un analizador
sintáctico debe tener como objetivos:




Indicar los errores de forma clara y precisa. Aclarar el tipo de error y su
localización.
Recuperarse del error, para poder seguir examinando la entrada.
No ralentizar significativamente la compilación.

Un buen compilador debe hacerse siempre teniendo también en mente los errores que se
pueden...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Analisis Sintactico
  • analisis sintactico
  • Análisis Sintáctico
  • Analisis sintactico
  • Análisis Sintáctico
  • Análisis sintáctico
  • Analisis Sintactico
  • ANALISIS SINTACTICO

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS