Вы находитесь на странице: 1из 3

ETAPAS EN LA CONSTRUCCIÓN DEL TRADUCTOR

ANALIZADOR LEXICO:
Un analizador léxico o analizador lexicográfico (en inglés scanner) es la primera fase de
un compilador, consistente en un programa que recibe como entrada el código fuente de
otro programa (secuencia de caracteres) y produce una salida compuesta
de tokens (componentes léxicos) o símbolos. Estos tokens sirven para una posterior
etapa del proceso de traducción, siendo la entrada para el analizador sintáctico (en
inglés parser).
La especificación de un lenguaje de programación a menudo incluye un conjunto de
reglas que definen el léxico. Estas reglas consisten comúnmente en expresiones
regulares que indican el conjunto de posibles secuencias de caracteres que definen
un token o lexema.
En algunos lenguajes de programación es necesario establecer patrones para caracteres
especiales (como el espacio en blanco) que la gramática pueda reconocer sin que
constituya un token en sí.
El siguiente, es un ejemplo de análisis lexico para el lenguaje Java:
Public class HolaMundo {
Public static void main string (String[] args){
System.out.println (“Hola Mundo”);
}
}

Tras procesar el codigo con un anailizador lexico, este realiza lo siguiente:


PalabraReservada, public
PalabraReservada, class
Texto, HolaMundo
LlaveIzq,{
PalabraReservada,
public PalabraReservada, static
PalabraReservada, void
PalabraReservada, main
ParentesisIzq, (

ANALISIS SINTACTICO:
Un analizador sintáctico es un programa informático que analiza una cadena de símbolos
de acuerdo a las reglas de una gramática formal.
El análisis sintáctico convierte el texto de entrada en otras estructuras (comúnmente
árboles), que son más útiles para el posterior análisis y capturan la jerarquía implícita de
la entrada. Un analizador léxico crea tokens de una secuencia de caracteres de entrada
y son estos tokens los que son procesados por el analizador sintáctico para construir la
estructura de datos, por ejemplo un árbol de análisis o árboles de sintaxis abstracta.

El lenguaje natural. Es usado para generar diagramas de lenguajes que usan flexión
gramatical, como los idiomas romances o el latín. Los lenguajes habitualmente
reconocidos por los analizadores sintácticos son los lenguajes libres de contexto. Cabe
notar que existe una justificación formal que establece que los lenguajes libres de
contexto son aquellos reconocibles por un autómata de pila, de modo que todo
analizador sintáctico que reconozca un lenguaje libre de contexto es equivalente en
capacidad computacional a un autómata de pila.

TECNICAS UTILIZADAS EN LA TRADUCCION

GRAMATICA INDEPENDIENTE DEL CONTEXTO (GIC)


Una gramática independiente del contexto (GIC) es una gramática formal en la que cada
regla de producción es de la forma:
Exp → x
Donde Exp es un símbolo no terminal yx es una cadena de terminales y / o no
terminales. El término independiente del contexto se refiere al hecho de que el no
terminal Exp puede siempre ser sustituido por x sin tener en cuenta el contexto en el que
ocurrió. Un lenguaje formal es independiente de contexto si hay una gramática libre de
contexto que lo genera, este tipo de gramática fue creado por Backus-Naur y se utiliza
para describir la mayoría de los idiomas de programación.
Una GIC está compuesta por 4 elementos:
1. Símbolos terminales (elementos que no móviles nada)
2. Sin terminales (elementos del lado izquierdo de una producción, antes de la flecha "-
>")
3. Producciones (sentencias que se escriben en la gramática)
4. Símbolo inicial (primer elemento de la gramática)

GRAMATICA LL:
es un analizador sintáctico descendente, por un conjunto de gramática libre de contexto.
En este analizador las entradas son de izquierda a derecha, y construcciones
de derivaciones por la izquierda de una sentencia o enunciado. La clase de gramática
que es analizable por este método es conocido como gramática LL.
Es decir, la gramática LL permite construir de forma automática un analizador
determinista descendente con tan solo examinar en cada momento el símbolo actual de
la cadena de entrada para saber qué producción aplicar.
- L: método direccional, procesamos la entrada de izquierda a derecha (from left to
right).
- L: obtenemos derivación mas a la izquierda (left-most derivation).
- 1: usamos un símbolo de preanálisis para decidir la producción a aplicar.
Teorema 1: Una gramática LL no puede ser recursiva a izquierda y debe estar
factorizada.
Teorema 2: Una gramática LL es no ambigua.

Вам также может понравиться