




Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Definiciones de Analizador Sintactico y Semantico
Tipo: Guías, Proyectos, Investigaciones
1 / 8
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
Es la fase del analizador que se encarga de chequear la secuencia de tokens que representa al texto de entrada, en base a una gramática dada. En caso de que el programa de entrada sea válido, suministra el árbol sintáctico que lo reconoce en base a una representación computacional. Este árbol es el punto de partida de la fase posterior de la etapa de análisis: el analizador semántico. Pero esto es la teoría; en la práctica, el analizador sintáctico dirige el proceso de compilación, de manera que el resto de fases evolucionan a medida que el sintáctico va reconociendo la secuencia de entrada por lo que, a menudo, el árbol ni siquiera se genera realmente. En la práctica, el analizador sintáctico también: Incorpora acciones semánticas en las que colocar el resto de fases del compilador (excepto el analizador léxico): desde el análisis semántico hasta la generación de código. Informa de la naturaleza de los errores sintácticos que encuentra e intenta recuperarse de ellos para continuar la compilación. Controla el flujo de tokens reconocidos por parte del analizador léxico. En definitiva, realiza casi todas las operaciones de la compilación, dando lugar a un método de trabajo denominado compilación dirigida por sintaxis.[ CITATION Agu \l 2058 ]
La secuencia de tokens se analiza de izquierda a derecha. Siempre deriva el no terminal que aparezca más a la izquierda. Sólo es necesario ver un token de la secuencia de entrada para averiguar qué regla de producción seguir. Recursiva por la izquierda Símbolos comunes por la izquierda Ambigua Existen métodos para modificarla y convertirla en una gramática.[ CITATION Vir \l 2058 ]
Esta gramática describe el lenguaje de palíndromos, tales como: 1001, 11100111, 00100, 1010101, 11111 , etc. Si tomamos por ejemplo el palíndromo de 0s y 1s : 1001 tomamos como producción inicial la regla 2 “Q produce N” , luego la regla 5 “N produce 1Q1 ” y en esta reemplazamos Q por la regla 1 “Q produce Z” y luego nos vamos a la regla 4 para reemplazar la Z y vemos que “Z produce 0Q0”, finalmente reemplazamos esa última Q por la regla 3 “Q produce vacío” y el palíndromo 1001 pasaría su análisis sintáctico como un palíndromo valido.
Reglas de producción: E -> E + E E -> E * E E -> id Cadena de entrada: “1 + 2 * 3” La derivación más a la izquierda es: E -> E * E E -> E + E * E E -> id + E * E E -> id + id * E E -> id + id * id Hay que notar que él no terminal más a la izquierda siempre es procesado de primero. La derivación más a la derecha sería: E -> E + E E -> E + E * E E -> E + E * id E -> E + id * id E -> id + id * id
Tomaremos la derivación más a la izquierda de: a + b * c E -> E * E E -> E + E * E E -> id + E * E E -> id + id * E E -> id + id * id
E -> id + E * E E -> id + id * E PASO 5: E -> id + id * id En un árbol de Parseo: Todas las hojas son símbolos terminales Todos los nodos interiores son no terminales El recorrido in-order da como resultado la cadena de entrada original[ CITATION Ric \l 2058 ]
Comprobaciones de emparejamiento.[ CITATION Blo06 \l 2058 ] Ejemplo 2 de Analizador Sintáctico Suponiendo que tenemos esta línea de código en C: res= valor1 + valor2; El análisis semántico se va a encargar que tanto el valor1 como el valor2 tengan datos que son compatibles en común y que además se les pueda aplicar dicho operador. [ CITATION Rod16 \l 2058 ]
El Analizador Semántico, como se ha podido notar durante el desarrollo de este articulo investigativo, tiene una gran importancia dentro del proceso de la compilación de códigos en cualquier lenguaje, ya que dé él depende la revisión del código en busca de errores semánticos en dicho código y de esta manera se asegura una coherencia y un sentido valido en el código según el lenguaje que esté escrito. Además de esto, forma parte de un conjunto complejo de piezas que conforman el sistema de un intérprete de códigos o compilador, donde las tareas de cada pieza son de suma importancia, como también lo es la gramática correcta del lenguaje utilizado a interpretar, es por esto que un análisis semántico debe ser acertado.
Crawler: Un Crawler, comúnmente conocido como rastreador, es un programa que analiza los documentos de los sitios web. Los motores de búsqueda cuentan con rastreadores muy potentes que navegan y analizan los sitios web y crean una base de datos con la información recolectada. El término Crawler proviene del primer motor de búsqueda de Internet, el Web Crawler. También se conoce como rastreador, araña o robot.[ CITATION Ryt15 \l 2058 ] En C el símbolo (+) implica una suma de valores o una unión de las cadenas
CITATION Agu \l 2058 : , (Aguilera Sierra & Gálvez Rojas, s.f.), CITATION Vir17 \l 2058 : , (Virgen, 2017), CITATION Wik17 \l 2058 : , (Wikipedia, 2017), CITATION Ric \l 2058 : , (RicardoGeek, s.f.), CITATION gra04 \l 2058 : , (gramaticas.net, 204), CITATION Art19 \l 2058 : , (Arteaga Caballero, Encarnación Hernández, Gómez Ramírez, González Nicolás, & Rodríguez García, 2019), CITATION Blo06 \l 2058 : , (Blogspot, 2006), CITATION Rod16 \l 2058 : , (Rodíguez, 2016), CITATION Ryt15 \l 2058 : , (RyteWiki, 2015),