Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tarea de investigación sobre el análisis Léxico. Esta tarea debe ser subida en formato
PDF a la plataforma.
Recordar que todo debe ser con sus palabras. Tarea con Plagio tendrá 0 de
calificación automáticamente
Investigar:
Análisis Léxico.
Es la etapa en donde el analizador se encarga de leer los caracteres que son
introducido en el programa fuente, luego de esto los une por lexemas y por ultimo da
el resultado en forma de tokens para cada uno de los lexemas que tiene el
programa. La función principal de este analizador es poder identificar los lexemas
del código fuente.
Tabla de Símbolos (Función, Estructura y Desarrollo).
Se utiliza para obtener toda la información que es necesaria para la entrada de la
información en el compilador para proceder a realizar un análisis en las diversas
etapas que lo compone. Está formado por el nombre del identificador, visibilidad de
variable, tipo de variable y de dato.
Especificación y reconocimiento de componentes léxicos.
En esta parte se utiliza la gramática necesaria en donde debe de comprender. Esta
gramática se convierte en un nuevo lenguaje de programación para luego ser
interpretado por el analizador léxico mediante el uso de las expresiones regulares la
cual ayuda a identificar si la sintaxis es gramatical en el compilador.
Descripción y diseño del analizador léxico.
Se utiliza como procesos que se encarga de eliminar la redundancia de los datos.
También este puede leer la entrada de la información, dando como resultado una
tabla de símbolos.
Ejercicios:
1) Divida el siguiente programa en C++ (Utilizando la tabla del tema 2.2
Tokens, patrones y lexemas del PDF de la semana):
float cuadradoLimitado(x) float x {
/* devuelve x al cuadrado, pero nunca más de 100 */
return (x<=−10.0||x>=10.0)?100:x*x;
}
Tokens Descripción formal Lexema
float Caracteres f,l,o,a,t float
id cuadroLimitado(x) cuadroLimitado(x)
return Caracteres r,e,t,u,r,n return
Comparación <= o >= o || o == o ? <=, >=, ||, ?
Limitadores () : . ; (), :, ., ;
Expresiones Regulares
Describa el resultado denotados por las siguientes expresiones regulares:
a) a(a|b)*a
En esta busca una hasta infinita veces y una b infinita veces siempre y cuando
este rodeada de de “a”s.
b) ((|a)b*)*.
Aquí reconocerá cualquier número, posición o símbolo que se digite primero
de lo contrario buscara a y b infinita veces y también el conjunto de una
manera infinita veces.
c) (a|b)*a(a|b)(a|b).
Buscará de una manera infinita veces a siempre y cuando se encuentre 3 a y 3
b.
d) a*ba*ba*ba*.
Aquí reconoce a b en pares de 4 si y solo si este en b buscando un patrón de
manera infinitivamente.
2) Funcion:
float suma(float n1, float n2) {
Return n1 + n2;
}
Nombre Ámbito Tipo Dato
Suma Global Funcion Float
Return Local Funcion Float
3) Clase:
Clase prueba {
Protected int x;
Public string z;
construct(int x, string z) {
this.x = x;
this.z = z;
}
}
Nombre Ámbito Tipo Dato
X Local Variable Int
Z Publico Variable String
Construct Local Método Void
This.x Local Método Int
This.y Local Método String