Sucesión intestada

Solo disponible en BuenasTareas
  • Páginas : 16 (3820 palabras )
  • Descarga(s) : 0
  • Publicado : 14 de junio de 2011
Leer documento completo
Vista previa del texto
* El analizador léxico es la primera fase de un programa traductor. Es, por otra parte, el único que gestiona el fichero de entrada. Es la parte del compilador que lee los caracteres del programa fuente y que construye unos símbolos intermedios (elementos léxicos que llamaremos “tokens”) que serán posteriormente utilizados por el analizador sintáctico como entradas. * El analizador sintácticodebe obtener una representación de la estructura (sintaxis) del programa fuente. Para realizar esta tarea debería concentrarse solamente en la estructura y no en otros aspectos menos importantes, como los espacios construidos con una gramática que genere los programas carácter no son útiles para construir una traducción. |
* ¿Por qué separar el análisis léxico del sintáctico?
* Eldiseño de las partes posteriores dedicadas al análisis queda simplificado.
* Con fases separadas, se pueden aplicar técnicas específicas y diferenciadas para cada fase, que son más eficientes en sus respectivos dominios.
* Se facilita la portabilidad. Si se quiere cambiar alguna característica del alfabeto del lenguaje (por ejemplo para adaptarlo a determinados símbolos propios demáquinas distintas) sólo tenemos que cambiar el analizador léxico.
Si tomamos por ejemplo las expresiones “6 – 2 * 30 / 7” y “6 – 2 * 30 / 7”, podemos comprobar que la estructura de ambas expresiones es equivalente, sin embargo, los caracteres que componen ambas cadenas no son los mismos. Si tuviéramos que trabajar directamente con los caracteres estaríamos dificultando la tarea de obtener la mismarepresentación para ambas cadenas. Si consideramos además la cadena “8 – 2 * 3 / 5”, la estructura de esta cadena es de nuevo la misma que la de las cadenas anteriores, lo único que cambia son los valores concretos de los números. Por estos motivos (y también por eficiencia), el procesamiento de los caracteres se deja en mano del analizador léxico que entregará a las sucesivas etapas delcompilador los componentes léxicos (tokens) significativos. EJEMPLO: Usando la cadena del ejemplo anterior, “6 – 2 * 30 / 7” (o la otra igual salvo el número de espacios), ambas sería representadas por el analizador léxico como la siguiente cadena de elementos léxicos: donde cada token ha sido representado por un par en el que la primera componente de cada par es el tipo de token y la segunda componente esel lexema (el valor concreto de ese token). La tercera cadena del ejemplo anterior tendría la misma estructura que las otras dos, pero con distintos valores de los lexemas. En definitiva, el análisis léxico agrupará los caracteres de la entrada por categorías léxicas, establecidas por la especificación léxica del lenguaje fuente como veremos más adelante. Esta especificación también estableceráel alfabeto con el que se escriben los programas válidos en el lenguaje fuente y, por tanto, el analizador léxico también deberá rechazar cualquier texto en el que aparezcan caracteres ilegales (no recogidos en ese alfabeto) o combinaciones ilegales (no permitidas por las especificaciones léxicas) de caracteres del alfabeto. Veremos que los componentes léxicos se especifican mediante expresionesregulares que generan lenguajes regulares, más sencillos de reconocer que los lenguajes independientes del contexto, y permiten hacer un análisis más rápido. Además, una gramática que represente la sintaxis de un lenguaje de alto nivel carácter a carácter sería mucho más compleja (para implementar un proceso de traducción a partir de ella) que otra que representase la misma sintaxis en función desus componentes léxicos. 2.2 ERRORES LEXICOS Pocos son los errores característicos de esta etapa, pues el compilador tiene todavía una visión muy local del programa. Por ejemplo, si el analizador léxico encuentra y aísla la cadena “While” creerá que es un identificador, cuando posiblemente se tratara de un while mal escrito y no será él el que informe del error, sino que lo harán sucesivas etapas...
tracking img