programacion de sistemas

Páginas: 8 (1903 palabras) Publicado: 3 de abril de 2013
PROGRAMACION DE SISTEMAS I
UNIDAD IV. ANALISIS SINTACTICO
(Primera parte)

Todo lenguaje de programación tiene reglas que prescriben la estructura sintáctica de programas bien formados, p. ej., en Pascal, un programa se compone de bloques, un bloque de proposiciones, una proposición de expresiones, una expresión de componentes léxicos, y éstos de caracteres.

Se puede describir lasintaxis de las construcciones de los lenguajes de programación por medio de gramáticas independientes de contexto.

Las gramáticas ofrecen ventajas significativas a los diseñadores de lenguajes y a los escritores de compiladores:

1) Una gramática da una especificación sintáctica y fácil de entender de un lenguaje de programación.
2) A partir de algunas clases de gramáticas se puede construirautomáticamente un analizador sintáctico eficiente que determine si un programa fuente está sintácticamente bien formado.
3) Otra ventaja es que el analizador sintáctico puede revelar ambigüedades sintácticas y otras construcciones difíciles de analizar que de otro modo podrían pasar sin detectar en la fase inicial de diseño de un lenguaje y de su compilador.
4) Una gramática diseñadaadecuadamente imparte una estructura a un lenguaje de programación útil para la traducción de programas fuentes a código objeto correcto y para la detección de errores.
5) Los lenguajes evolucionan con el tiempo, adquiriendo nuevas construcciones y realizando tareas adicionales. Estas nuevas construcciones se pueden añadir con más facilidad a un lenguaje cuando existe una aplicación basada en unadescripción gramatical.

El análisis sintáctico obtiene una cadena de componentes léxicos del analizador léxico y comprueba si la cadena puede ser generada por la gramática del lenguaje fuente, se supone que el analizador sintáctico informará de cualquier error de sintaxis de manera inteligible. También debería recuperarse de los errores que ocurren frecuentemente para poder continuar procesando el restode su entrada.

















Los métodos empleados generalmente en los compiladores se clasifican como ascendentes y descendentes.

Los analizadores sintácticos descendentes construyen árboles desde la raíz hasta las hojas, mientras que los analizadores sintácticos ascendentes comienzan en las hojas y suben hacia la raíz. En ambos casos examina la entrada al analizadorsintáctico de izquierda a derecha, uno a la vez.

Los métodos ascendente y descendente más eficientes trabajan sólo con subclases de gramáticas, pero varias de estas subclases, como las gramáticas LL y LR, son lo suficientemente expresivas para describir la mayoría de las construcciones sintácticas de los lenguajes de programación.

NOTA: Se asume que la salida de un analizador sintáctico es unarepresentación del árbol de análisis sintáctico para la cadena de componentes léxicos producida por el analizador léxico.










Manejo de errores sintácticos

Si un compilador tuviera que procesar sólo programas correctos, su diseño e implementación se simplificarían mucho. Pero los programadores a menudo escriben programas incorrectos, y un buen compilador debería ayudar alprogramador a identificar y localizar errores.

La mayoría de las especificaciones de los lenguajes de programación no describen cómo debe responder un compilador a los errores; la respuesta se deja al diseñador del compilador.

Considerar desde el principio el manejo de errores puede simplificar la estructura de un compilador y mejorar su respuesta a los errores.

P. ej., los errores quepueden contener los programas son de diversos tipos:
|
a) Léxicos: como escribir mal un número, un identificador o un operador
b) Sintácticos: como una expresión aritmética con paréntesis no equilibrados
c) Semánticos: como un operador aplicado a un operando incompatible
d) Lógico: como una llamada infinitamente recursiva


Gran parte de la detección y recuperación de errores en un...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programacion De Sistemas
  • Programacion de sistemas
  • programacion de sistemas
  • que es un sistema DE PROGRAMACION
  • Programacion de sistemas
  • Programacion de sistemas
  • Programacion en sistemas
  • Programacion de Sistemas

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS