SlideShare una empresa de Scribd logo
1 de 32
Universidad: azteca
profesor: ing. Gabriel
nombre del alumno: fabian enrique dominguez morales
fecha de entrega: 16/05/2014
3.3.2 ANALISIS SINTacTICO LR
también conocidos como Parser LR, son un tipo de analizadores para algunas
gramáticas libres de contexto.
Un analizador LR consta de:
1. Un programa conductor
2. Una entrada
3. Una salida
4. Una tabla de análisis sintáctico, compuesta de 2 partes (ACCIÓN Y GOTO)
Cabe aportar que el programa conductor es siempre igual, solo variando para cada
lenguaje la tabla de análisis sintáctico.
El algoritmo
para reconocer cadenas es el siguiente:
dado el primer carácter de la cadena y el estado inicial de la tabla, buscar qué acción
corresponde en la tabla de acción.
Si el estado es shift n (n ∈ N), se coloca el carácter y el número de estado n en la pila, se lee
el siguiente carácter y repite el procedimiento, solo que esta vez buscamos en el estado
correspondiente.
En la tabla acción también encontraremos ACEPTAR que se toma la cadena como valida y se
termina el análisis o ERROR que se rechaza la cadena.
Algoritmo para generar un autómata LR(0)
Para generar un autómata LR(0) en base a una gramática G, primero se debe definir:
 Gramática ampliada: Dado una gramática G, se define la gramática ampliada G'a:
 1. Se agrega una producción S'->S# donde S es el símbolo inicial.(el # representa el fin de
cadena)
 2. Se pasan todas las producciones a ítems de configuración (veremos este concepto en un
instante) con el punto al principio de la cola
 3. Se define S' como el símbolo inicial de la gramática.
Ítem de configuración: un ítem de configuración
es una producción que tiene un carácter especial
(generalmente un punto) en algún lugar de la
cola. Por ejemplo: la producción S->ABC genera
los siguientes ítems,{ S->.ABC, S->A.BC, S->AB.C
S->ABC.}. Como veremos en un instante, y
hablando informalmente el punto representa el
lugar actual en donde me puedo encontrar en un
momento en el parseo en una producción.
 Clausura de un ítem: se define a la clausura de
un ítem (y de forma informal) a: dado un ítem S-
>A.cB (A, B e V*, c e Vt unión VN) al conjunto
formado por
 1. S->A.cB
 2. Si c es un no terminal, se agregan todos los
ítems que tengan a c como cabeza de la
producción y el punto al principio de la cola,
 3. Si p es un ítem que pertenece a la clausura, la
clausura de p pertenece a la clausura, siempre y
cuando ya no este agregada.
Finalmente, la construcción del autómata es
así:
1. Se amplía la gramática
2. Dado el símbolo inicial de la gramática ampliada, se calcula su
clausura y este se define como un estado inicial.
3. Para cada estado: se agrupan las producciones según el carácter que
está después del punto, si todavía no se definió el estado, se corre el
punto un carácter a la derecha, se crea el nuevo estado con esta
producciones, y la clausura de cada una de ellas, se define el
carácter que estaba después del punto en el estado de origen como
el carácter de la transición.
4. Si el estado tiene en alguna producción el punto al final, este estado
se marca como un estado final del autómata.
5. Se sigue hasta que ya no se tenga más estados nuevos posibles.
3.3.3 Analizador sintáctico ascendente
 (
 Bottom-Up-Parser
 ): Parten de la sentencia de entrada,y van aplicando derivaciones
inversas (desde el consecuente hasta el antecedente), hastallegar
al axioma inicial.
 De gramáticas LR(1)En este epígrafe se introducirá una técnica
eficiente de análisis sintácticoascendente que se puede utilizar
para procesar una amplia clase de gramáticasde contexto libre. La
técnica se denomina análisis sintáctico LR(k).
 La abreviaturaLR obedece a que la cadena de entrada es examinada
de izquierda a derecha (eninglés, Left-to-
 right), mientras que la “R” indica que el proceso proporciona
 el árbolsintáctico mediante la secuencia de derivaciones a derecha
(en inglés, Rightmostderivation) en
 orden inverso.
 Por último, la “k” hace referencia al número de tokens
 de pre-búsqueda utilizados para tomar las decisiones sobre si
reducir o desplazar.Cuando se omite, se asume que k, es 1.El
análisis LR es atractivo por varias razones.
 β
 : representa el trozo de la cadena de
entrada (secuencia de tokens) por
consumir: â 0 T .Coincidirá siempre con
algún trozo de la parte derecha de * la
cadena de entrada. Comopuede suponerse,
inicialmente â coincide con la cadena a
reconocer al completo (incluido elEOF del
final).
3.4 Rutinas de Manejo de Errores
 Ocupan gran parte de los compiladores
 Objetivos
 Informar con claridad, exactitud
 Recuperación rápida
 recuperación no es corrección
 No debe retrasar el procesamiento de
programas sin errores
 No generar errores en cascada (ej. eliminar
identificador)
 Acciones posibles
 Detectar errores
 Informar de los errores
 Recuperar de los errores
 Corregir errores
 ¿Necesidad actual de recuperación?
 Más rápido re-compilar que leer.
Tipos de Errores
 Tipos de errores
 Léxicos: escribir mal un
identificador, número, ...
 Sintácticos: no poner un “;” al
final de una sentencia,
 estructura incorrecta
 Semánticos: multiplicar por una
variable booleana
 Lógicos: bucle infinito
 Herramientas para disminuir el
número de errores ...
 Léxicos
 Si se utiliza alguna herramienta
que complete palabras
 Sintácticos
 Si se utiliza algún editor basado
en sintaxis (colores)
 Semánticos
 Busca funciones/clases e in
 dica tipos especificados

Recuperación Errores Sintácticos
∑ᶰ
a b c d
S aAS bA
A cA dEjemplo 1: análisis descendente
Gramática:
S::=a A S | b A
A::=c A | d
Tabla:
Entrada:
a b ...
Estado del análisis cuando detecta
el error:
Pila Entrada
$S a b ...
$SAa a b ...
$SAb ...
Error:
Se ha encontrado una
b
, cuando se esperaba una
c
o
d
Podría eliminarse
Estrategias de Recuperación
 No hay una estrategia de aceptación universal
 Abundan técnicas heurísticas y ad hoc
 Principio general de recuperación
 Minimizar tokens eliminados/modificados
 Dejar el analizador listo para continuar procesando
 Principales estrategias de recuperación son:
 Modo de pánico/alarma
 Nivel de frase
 Producciones de error
 Corrección Global
Corrección Global
Características
 Algoritmos que eligen una
 secuencia mínima de
 cambios para obtener una
 corrección global de
 menor costo
 Ej.:
 x=a(p+q(-b(r-s); -> a(p+q)-b(r-
s);
 ifa=b then sum=0; -> if a =b
then sum=0;
 Inconvenientes
 Técnicas costosas en tiempo
 y espacio: métricas de
 distancias, búsqueda,
optimización.

3.4.1 Last error (informática)
en computación, específicamente en el campo de la
programación en Windows se conoce como Last
Error al último error sucedido al utilizar una de las
API de Windows. Los códigos de error son
particulares de cada Thread que esté en ejecución.
3.4.2 Errores personalizados
Una función propia o de un programa por defecto de
Windows puede hacer uso de la Api SetLastError para
informar que error ha ocurrido o en el caso de no haber
error puede usarse para poner en cero el último error
ocurrido. Una vez hecho esto, el error de la función
anteriormente utilizada no se podrá determinar.
Estos errores son enteros de 32 bits. Si se quiere usar
SetLastError para "nuevos" errores propios de la
aplicación se debe de activar el bit 29 ya que el sistema
no usa errores con ese bit activado.
↓ Bit 29 ↓ 00100000 00000000 00000000 00000000↑ ↑↑ Bit 31,
el más significativo ↑ Bit 0, el menos significativo
Una vez activado los números serán mayores o iguales
que 20000000H (en hexadecimal) o 536870912D (en
decimal).
En DELPHI
function MuestraError(error: DWORD):
String;var pString: array[0..MAX_PATH] of
char;begin
FormatMessage(FORMAT_MESSAGE_FRO
M_SYSTEM, Nil, error, 0, pString,
MAX_PATH, Nil); Result := pString;end;
3.5 Tabla de símbolos (compilador)
 una tabla de símbolos es una estructura de datos que usa
el proceso de traducción de un lenguaje de programación,
por un compilador o un intérprete, donde cada símbolo en
el código fuente de un programa está asociado con
información tal como la ubicación, el tipo de datos y el
ámbito de cada variable, constante o procedimiento.
Una implementación común de una tabla de símbolos puede ser una
tabla hash, la cual será mantenida a lo largo de todas las fases del
proceso de compilación de ticses.
Los símbolos en la tabla de símbolos pueden referirse a constantes, a
funciones o a tipos de datos en el código fuente de un programa.
La tabla de símbolos forma parte de cada fichero que contiene el
código objeto durante el enlazado o linking de los diferentes ficheros;
recae en la responsabilidad del linker o enlazador resolver cualquier
referencia no resuelta.
 La siguiente representa una serie de atributos que no es necesaria para
todos los compiladores, sin embargo cada uno de ellos se puede utilizar
en la implementación de un compilador particular.
 nombre del identificador.
 dirección en tiempo de ejecución a partir del cual se almacenara el
identificador si es una variable.
 tipo del identificador. Si es una función, el tipo que devuelve la función.
 número de dimensiones del array (arreglo), o número de miembros de una
estructura o clase, o números de parámetros si se trata de una función.
 tamaño máximo o rango de cada una de las dimensiones de los array, si
tiene dimensión estática.
 etc.
 Al definir un lenguaje de
programación, también hay
 que
 diseñar la tabla de símbolos
que permite almacenar
 la
 información expresable
mediante declaraciones
 Especificando
 estructura en abstracto
 Especificando
 operaciones de acceso y
modificación
 Especificando
 algoritmo de construcción
 Precisamente el
 algoritmo de construcción
 (que
 mientras analiza la sección de
declaraciones va
 rellenando la tabla) utiliza una
gramática de atrib
 utos
3.5.1 Tablas en árbol binario
 Usan árboles binarios. Se compara la clave k con
la del elemento. Si es mayor, se va a la derecha,
si es menor a la izquierda. El tiempo de búsqueda
depende del orden de inserción de los elementos
y sólo es calculable si el árbol está equilibrado. Si
no, se convierte en una lista ordenada,
reordenando. Ej: G D M E A B F H. Secuencias
aparentemente aleatorias pueden producir el
mismo resultado.
3.5.2 OPERACIÓN CON TABLAS DE SIMBOLOS
A cada clave se le asocia biunívocamente un
elemento de la tabla mediante una función I(k)
biyectiva.
Ejemplo: identificadores de una sola letra. La
tabla tendrá 26/52 elementos como máximo.
I(k) = k-'A'; // (26 elementos) I(k) = (k<'a') ? k-'A' : 26+k-'a'; // (52
elementos)
Búsqueda: dado k, se halla I(k) y se tiene el
elemento.
Li = Lm = LM = 1
Tablas Hash o de entrada calculada
 Es el método más usado. Se trata de
trasformar la clave en un índice de entrada
aplicándole una función Hash, I(k), que
puede no ser biyectiva.
 Es equivalente a una tabla de acceso
directo mientras no aparezcan dos claves
tales que I(k1) = I(k2): colisión.
Tablas Hash abiertas (con rehash)
 Búsqueda de la clave k.
 Se calcula h = I(k).
 Se compara k con T(h). Si es
igual, encontrado.
 Si hay colisión
(k!=T(h)&&T(h)!=NULL) se
compara k con
T(mod(h+p1,N)).
 Si hay nueva colisión se
compara k con
T(mod(h+p2,N)).
 ...
 Si hay nueva colisión se
compara k con
T(mod(h+pi,N)).
 hasta que se encuentre la
clave buscada, un lugar vacío
o se vuelva a T(h). En el
primer caso, se ha
encontrado. En el segundo, no
está en la tabla. En el
tercero, tampoco está, y la
tabla está llena para ese valor
de la función Hash.
Rehash lineal
 pi = i
 Se comparan elementos sucesivos. Problema:
apiñamiento de elementos.
 La longitud de búsqueda es difícil de calcular
(depende del grado de apiñamiento, y éste del
orden en que se definen los identificadores).
3.5.3 Estructuras de datos para tablas de
símbolos.
La tabla de símbolos es una estructura de
datos que nos permite realizar operaciones
de inserción, búsqueda y eliminación de
información en varias construcciones del
lenguaje fuente, la cual es analizada por el
compilador originándose un código objeto.
Interfaz de la tabla de símbolos
Las principales operaciones de la tabla de
símbolos las definimos asi:
 inserción:almacena información proporcionada
por las declaraciones de nombre cuando estas
son procesadas.
 Búsqueda:recupera la inaformacion asociada
con un nombre cuando este se utiliza en una
declaración o el código asociado.
 Eliminacion:elimina la informcion
proporcionada por una declaración cuando
esta ya no se aplica.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
 
Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintáctico
 
Claselexico
ClaselexicoClaselexico
Claselexico
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
Analizadores Sintácticos
Analizadores SintácticosAnalizadores Sintácticos
Analizadores Sintácticos
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Analizador lexico
Analizador lexicoAnalizador lexico
Analizador lexico
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Clase15
Clase15Clase15
Clase15
 
Capitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazarCapitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazar
 
Compiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de TransicionesCompiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de Transiciones
 
Analizador léxico
Analizador léxico Analizador léxico
Analizador léxico
 
Ps2 u5
Ps2 u5Ps2 u5
Ps2 u5
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
AnáLisis LéXico
AnáLisis LéXicoAnáLisis LéXico
AnáLisis LéXico
 
Tr asem-ver
Tr asem-verTr asem-ver
Tr asem-ver
 
Analisis Semantico
Analisis Semantico Analisis Semantico
Analisis Semantico
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacion
 
Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_
 

Destacado

Educación Liberadora
Educación Liberadora Educación Liberadora
Educación Liberadora Mirelda Olán
 
Bermudismo umafilosofiade trabalho
Bermudismo umafilosofiade trabalhoBermudismo umafilosofiade trabalho
Bermudismo umafilosofiade trabalhoossobuco
 
História em educação matemática tradução
História em educação matemática   traduçãoHistória em educação matemática   tradução
História em educação matemática traduçãoElisangela Brugnera
 
Mai 1 - matemática auto-instrutivo - professor
Mai   1 - matemática auto-instrutivo - professorMai   1 - matemática auto-instrutivo - professor
Mai 1 - matemática auto-instrutivo - professorRenato Tonay
 
Primeiro Encontro Presencial - Formação para Escola
Primeiro Encontro Presencial - Formação para EscolaPrimeiro Encontro Presencial - Formação para Escola
Primeiro Encontro Presencial - Formação para EscolaFredcslima
 
Apresentação NWA
Apresentação NWAApresentação NWA
Apresentação NWAVitor Vieira
 
2010 10-13 apresentação
2010 10-13 apresentação2010 10-13 apresentação
2010 10-13 apresentaçãograbecker
 
Dados Fanpage Juscelino Acústico Bar NOV/2011-FEV/2012
Dados Fanpage Juscelino Acústico Bar NOV/2011-FEV/2012Dados Fanpage Juscelino Acústico Bar NOV/2011-FEV/2012
Dados Fanpage Juscelino Acústico Bar NOV/2011-FEV/2012Soluções Marketing Digital
 
LEI 6496
LEI 6496LEI 6496
LEI 6496ejfelix
 
@bsoluta summer dream
@bsoluta summer dream@bsoluta summer dream
@bsoluta summer dreamsaviobrito
 
A Vida por Trás das Compras Coletivas - Ossobuco 7
A Vida por Trás das Compras Coletivas - Ossobuco 7A Vida por Trás das Compras Coletivas - Ossobuco 7
A Vida por Trás das Compras Coletivas - Ossobuco 7ossobuco
 
Recursos abiertos
Recursos abiertos  Recursos abiertos
Recursos abiertos esther camus
 
Wassl Presentation Version 2
Wassl Presentation Version 2Wassl Presentation Version 2
Wassl Presentation Version 2Abhishek Routray
 
sendcampaign_email_services
sendcampaign_email_servicessendcampaign_email_services
sendcampaign_email_servicesRio Lecatompessy
 

Destacado (20)

Educación Liberadora
Educación Liberadora Educación Liberadora
Educación Liberadora
 
Marcas e logotipos
Marcas e logotiposMarcas e logotipos
Marcas e logotipos
 
Bermudismo umafilosofiade trabalho
Bermudismo umafilosofiade trabalhoBermudismo umafilosofiade trabalho
Bermudismo umafilosofiade trabalho
 
R.francesa
R.francesaR.francesa
R.francesa
 
História em educação matemática tradução
História em educação matemática   traduçãoHistória em educação matemática   tradução
História em educação matemática tradução
 
Mai 1 - matemática auto-instrutivo - professor
Mai   1 - matemática auto-instrutivo - professorMai   1 - matemática auto-instrutivo - professor
Mai 1 - matemática auto-instrutivo - professor
 
Trabajoo practico 18
Trabajoo practico 18Trabajoo practico 18
Trabajoo practico 18
 
Primeiro Encontro Presencial - Formação para Escola
Primeiro Encontro Presencial - Formação para EscolaPrimeiro Encontro Presencial - Formação para Escola
Primeiro Encontro Presencial - Formação para Escola
 
Apresentação NWA
Apresentação NWAApresentação NWA
Apresentação NWA
 
2010 10-13 apresentação
2010 10-13 apresentação2010 10-13 apresentação
2010 10-13 apresentação
 
Dados Fanpage Juscelino Acústico Bar NOV/2011-FEV/2012
Dados Fanpage Juscelino Acústico Bar NOV/2011-FEV/2012Dados Fanpage Juscelino Acústico Bar NOV/2011-FEV/2012
Dados Fanpage Juscelino Acústico Bar NOV/2011-FEV/2012
 
LEI 6496
LEI 6496LEI 6496
LEI 6496
 
@bsoluta summer dream
@bsoluta summer dream@bsoluta summer dream
@bsoluta summer dream
 
Apresentação 4T10
Apresentação 4T10Apresentação 4T10
Apresentação 4T10
 
Cultivo de arroz
Cultivo de arrozCultivo de arroz
Cultivo de arroz
 
A Vida por Trás das Compras Coletivas - Ossobuco 7
A Vida por Trás das Compras Coletivas - Ossobuco 7A Vida por Trás das Compras Coletivas - Ossobuco 7
A Vida por Trás das Compras Coletivas - Ossobuco 7
 
Recursos abiertos
Recursos abiertos  Recursos abiertos
Recursos abiertos
 
Ciencias del deporte carlos pinzon
Ciencias del deporte carlos pinzonCiencias del deporte carlos pinzon
Ciencias del deporte carlos pinzon
 
Wassl Presentation Version 2
Wassl Presentation Version 2Wassl Presentation Version 2
Wassl Presentation Version 2
 
sendcampaign_email_services
sendcampaign_email_servicessendcampaign_email_services
sendcampaign_email_services
 

Similar a Presentación 2014 profe gabriel

El papel del analizador sintáctico
El papel del analizador sintácticoEl papel del analizador sintáctico
El papel del analizador sintácticoHector Espinosa
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semanticoAlvaro Cedeño
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico maryr_
 
Algoritmica
AlgoritmicaAlgoritmica
Algoritmicasariz6
 
Datos y algoritmos
Datos y algoritmosDatos y algoritmos
Datos y algoritmosUNEG
 
Programacion En Mat Lab
Programacion En Mat LabProgramacion En Mat Lab
Programacion En Mat LabFreelance
 
Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02kevinwm17
 
La programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortadaLa programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortadaAeChm-MgMs-NnNm-OpSe
 
Introduccion a Matlab
Introduccion a MatlabIntroduccion a Matlab
Introduccion a MatlabOmar Yupanqui
 
conceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdfconceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdfcarlosquiza2
 

Similar a Presentación 2014 profe gabriel (20)

El papel del analizador sintáctico
El papel del analizador sintácticoEl papel del analizador sintáctico
El papel del analizador sintáctico
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semantico
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico
 
Algoritmica
AlgoritmicaAlgoritmica
Algoritmica
 
Algoritmos y programas ing civil
Algoritmos y programas ing civil Algoritmos y programas ing civil
Algoritmos y programas ing civil
 
Compilador Exp
Compilador ExpCompilador Exp
Compilador Exp
 
Compilador2
Compilador2Compilador2
Compilador2
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Datos y algoritmos
Datos y algoritmosDatos y algoritmos
Datos y algoritmos
 
Programacion En Mat Lab
Programacion En Mat LabProgramacion En Mat Lab
Programacion En Mat Lab
 
Ambiente
 Ambiente Ambiente
Ambiente
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambiente de programacin en pascal
Ambiente de programacin en pascalAmbiente de programacin en pascal
Ambiente de programacin en pascal
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02
 
TABLA DE SIMBOLOS
TABLA DE SIMBOLOSTABLA DE SIMBOLOS
TABLA DE SIMBOLOS
 
La programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortadaLa programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortada
 
Introduccion a Matlab
Introduccion a MatlabIntroduccion a Matlab
Introduccion a Matlab
 
conceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdfconceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdf
 

Último

La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 

Último (20)

La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 

Presentación 2014 profe gabriel

  • 1. Universidad: azteca profesor: ing. Gabriel nombre del alumno: fabian enrique dominguez morales fecha de entrega: 16/05/2014
  • 2. 3.3.2 ANALISIS SINTacTICO LR también conocidos como Parser LR, son un tipo de analizadores para algunas gramáticas libres de contexto. Un analizador LR consta de: 1. Un programa conductor 2. Una entrada 3. Una salida 4. Una tabla de análisis sintáctico, compuesta de 2 partes (ACCIÓN Y GOTO) Cabe aportar que el programa conductor es siempre igual, solo variando para cada lenguaje la tabla de análisis sintáctico.
  • 3. El algoritmo para reconocer cadenas es el siguiente: dado el primer carácter de la cadena y el estado inicial de la tabla, buscar qué acción corresponde en la tabla de acción. Si el estado es shift n (n ∈ N), se coloca el carácter y el número de estado n en la pila, se lee el siguiente carácter y repite el procedimiento, solo que esta vez buscamos en el estado correspondiente. En la tabla acción también encontraremos ACEPTAR que se toma la cadena como valida y se termina el análisis o ERROR que se rechaza la cadena.
  • 4. Algoritmo para generar un autómata LR(0) Para generar un autómata LR(0) en base a una gramática G, primero se debe definir:  Gramática ampliada: Dado una gramática G, se define la gramática ampliada G'a:  1. Se agrega una producción S'->S# donde S es el símbolo inicial.(el # representa el fin de cadena)  2. Se pasan todas las producciones a ítems de configuración (veremos este concepto en un instante) con el punto al principio de la cola  3. Se define S' como el símbolo inicial de la gramática.
  • 5. Ítem de configuración: un ítem de configuración es una producción que tiene un carácter especial (generalmente un punto) en algún lugar de la cola. Por ejemplo: la producción S->ABC genera los siguientes ítems,{ S->.ABC, S->A.BC, S->AB.C S->ABC.}. Como veremos en un instante, y hablando informalmente el punto representa el lugar actual en donde me puedo encontrar en un momento en el parseo en una producción.
  • 6.  Clausura de un ítem: se define a la clausura de un ítem (y de forma informal) a: dado un ítem S- >A.cB (A, B e V*, c e Vt unión VN) al conjunto formado por  1. S->A.cB  2. Si c es un no terminal, se agregan todos los ítems que tengan a c como cabeza de la producción y el punto al principio de la cola,  3. Si p es un ítem que pertenece a la clausura, la clausura de p pertenece a la clausura, siempre y cuando ya no este agregada.
  • 7. Finalmente, la construcción del autómata es así: 1. Se amplía la gramática 2. Dado el símbolo inicial de la gramática ampliada, se calcula su clausura y este se define como un estado inicial. 3. Para cada estado: se agrupan las producciones según el carácter que está después del punto, si todavía no se definió el estado, se corre el punto un carácter a la derecha, se crea el nuevo estado con esta producciones, y la clausura de cada una de ellas, se define el carácter que estaba después del punto en el estado de origen como el carácter de la transición. 4. Si el estado tiene en alguna producción el punto al final, este estado se marca como un estado final del autómata. 5. Se sigue hasta que ya no se tenga más estados nuevos posibles.
  • 8. 3.3.3 Analizador sintáctico ascendente  (  Bottom-Up-Parser  ): Parten de la sentencia de entrada,y van aplicando derivaciones inversas (desde el consecuente hasta el antecedente), hastallegar al axioma inicial.  De gramáticas LR(1)En este epígrafe se introducirá una técnica eficiente de análisis sintácticoascendente que se puede utilizar para procesar una amplia clase de gramáticasde contexto libre. La técnica se denomina análisis sintáctico LR(k).
  • 9.  La abreviaturaLR obedece a que la cadena de entrada es examinada de izquierda a derecha (eninglés, Left-to-  right), mientras que la “R” indica que el proceso proporciona  el árbolsintáctico mediante la secuencia de derivaciones a derecha (en inglés, Rightmostderivation) en  orden inverso.  Por último, la “k” hace referencia al número de tokens  de pre-búsqueda utilizados para tomar las decisiones sobre si reducir o desplazar.Cuando se omite, se asume que k, es 1.El análisis LR es atractivo por varias razones.
  • 10.  β  : representa el trozo de la cadena de entrada (secuencia de tokens) por consumir: â 0 T .Coincidirá siempre con algún trozo de la parte derecha de * la cadena de entrada. Comopuede suponerse, inicialmente â coincide con la cadena a reconocer al completo (incluido elEOF del final).
  • 11.
  • 12. 3.4 Rutinas de Manejo de Errores  Ocupan gran parte de los compiladores  Objetivos  Informar con claridad, exactitud  Recuperación rápida  recuperación no es corrección  No debe retrasar el procesamiento de programas sin errores  No generar errores en cascada (ej. eliminar identificador)  Acciones posibles  Detectar errores  Informar de los errores  Recuperar de los errores  Corregir errores  ¿Necesidad actual de recuperación?  Más rápido re-compilar que leer.
  • 13. Tipos de Errores  Tipos de errores  Léxicos: escribir mal un identificador, número, ...  Sintácticos: no poner un “;” al final de una sentencia,  estructura incorrecta  Semánticos: multiplicar por una variable booleana  Lógicos: bucle infinito  Herramientas para disminuir el número de errores ...  Léxicos  Si se utiliza alguna herramienta que complete palabras  Sintácticos  Si se utiliza algún editor basado en sintaxis (colores)  Semánticos  Busca funciones/clases e in  dica tipos especificados 
  • 14. Recuperación Errores Sintácticos ∑ᶰ a b c d S aAS bA A cA dEjemplo 1: análisis descendente Gramática: S::=a A S | b A A::=c A | d Tabla: Entrada: a b ... Estado del análisis cuando detecta el error: Pila Entrada $S a b ... $SAa a b ... $SAb ... Error: Se ha encontrado una b , cuando se esperaba una c o d Podría eliminarse
  • 15. Estrategias de Recuperación  No hay una estrategia de aceptación universal  Abundan técnicas heurísticas y ad hoc  Principio general de recuperación  Minimizar tokens eliminados/modificados  Dejar el analizador listo para continuar procesando  Principales estrategias de recuperación son:  Modo de pánico/alarma  Nivel de frase  Producciones de error  Corrección Global
  • 16. Corrección Global Características  Algoritmos que eligen una  secuencia mínima de  cambios para obtener una  corrección global de  menor costo  Ej.:  x=a(p+q(-b(r-s); -> a(p+q)-b(r- s);  ifa=b then sum=0; -> if a =b then sum=0;  Inconvenientes  Técnicas costosas en tiempo  y espacio: métricas de  distancias, búsqueda, optimización. 
  • 17. 3.4.1 Last error (informática) en computación, específicamente en el campo de la programación en Windows se conoce como Last Error al último error sucedido al utilizar una de las API de Windows. Los códigos de error son particulares de cada Thread que esté en ejecución.
  • 18. 3.4.2 Errores personalizados Una función propia o de un programa por defecto de Windows puede hacer uso de la Api SetLastError para informar que error ha ocurrido o en el caso de no haber error puede usarse para poner en cero el último error ocurrido. Una vez hecho esto, el error de la función anteriormente utilizada no se podrá determinar.
  • 19. Estos errores son enteros de 32 bits. Si se quiere usar SetLastError para "nuevos" errores propios de la aplicación se debe de activar el bit 29 ya que el sistema no usa errores con ese bit activado. ↓ Bit 29 ↓ 00100000 00000000 00000000 00000000↑ ↑↑ Bit 31, el más significativo ↑ Bit 0, el menos significativo Una vez activado los números serán mayores o iguales que 20000000H (en hexadecimal) o 536870912D (en decimal).
  • 20. En DELPHI function MuestraError(error: DWORD): String;var pString: array[0..MAX_PATH] of char;begin FormatMessage(FORMAT_MESSAGE_FRO M_SYSTEM, Nil, error, 0, pString, MAX_PATH, Nil); Result := pString;end;
  • 21. 3.5 Tabla de símbolos (compilador)  una tabla de símbolos es una estructura de datos que usa el proceso de traducción de un lenguaje de programación, por un compilador o un intérprete, donde cada símbolo en el código fuente de un programa está asociado con información tal como la ubicación, el tipo de datos y el ámbito de cada variable, constante o procedimiento.
  • 22. Una implementación común de una tabla de símbolos puede ser una tabla hash, la cual será mantenida a lo largo de todas las fases del proceso de compilación de ticses. Los símbolos en la tabla de símbolos pueden referirse a constantes, a funciones o a tipos de datos en el código fuente de un programa.
  • 23. La tabla de símbolos forma parte de cada fichero que contiene el código objeto durante el enlazado o linking de los diferentes ficheros; recae en la responsabilidad del linker o enlazador resolver cualquier referencia no resuelta.
  • 24.  La siguiente representa una serie de atributos que no es necesaria para todos los compiladores, sin embargo cada uno de ellos se puede utilizar en la implementación de un compilador particular.  nombre del identificador.  dirección en tiempo de ejecución a partir del cual se almacenara el identificador si es una variable.  tipo del identificador. Si es una función, el tipo que devuelve la función.  número de dimensiones del array (arreglo), o número de miembros de una estructura o clase, o números de parámetros si se trata de una función.  tamaño máximo o rango de cada una de las dimensiones de los array, si tiene dimensión estática.  etc.
  • 25.  Al definir un lenguaje de programación, también hay  que  diseñar la tabla de símbolos que permite almacenar  la  información expresable mediante declaraciones  Especificando  estructura en abstracto  Especificando  operaciones de acceso y modificación  Especificando  algoritmo de construcción  Precisamente el  algoritmo de construcción  (que  mientras analiza la sección de declaraciones va  rellenando la tabla) utiliza una gramática de atrib  utos
  • 26. 3.5.1 Tablas en árbol binario  Usan árboles binarios. Se compara la clave k con la del elemento. Si es mayor, se va a la derecha, si es menor a la izquierda. El tiempo de búsqueda depende del orden de inserción de los elementos y sólo es calculable si el árbol está equilibrado. Si no, se convierte en una lista ordenada, reordenando. Ej: G D M E A B F H. Secuencias aparentemente aleatorias pueden producir el mismo resultado.
  • 27. 3.5.2 OPERACIÓN CON TABLAS DE SIMBOLOS A cada clave se le asocia biunívocamente un elemento de la tabla mediante una función I(k) biyectiva. Ejemplo: identificadores de una sola letra. La tabla tendrá 26/52 elementos como máximo. I(k) = k-'A'; // (26 elementos) I(k) = (k<'a') ? k-'A' : 26+k-'a'; // (52 elementos) Búsqueda: dado k, se halla I(k) y se tiene el elemento. Li = Lm = LM = 1
  • 28. Tablas Hash o de entrada calculada  Es el método más usado. Se trata de trasformar la clave en un índice de entrada aplicándole una función Hash, I(k), que puede no ser biyectiva.  Es equivalente a una tabla de acceso directo mientras no aparezcan dos claves tales que I(k1) = I(k2): colisión.
  • 29. Tablas Hash abiertas (con rehash)  Búsqueda de la clave k.  Se calcula h = I(k).  Se compara k con T(h). Si es igual, encontrado.  Si hay colisión (k!=T(h)&&T(h)!=NULL) se compara k con T(mod(h+p1,N)).  Si hay nueva colisión se compara k con T(mod(h+p2,N)).  ...  Si hay nueva colisión se compara k con T(mod(h+pi,N)).  hasta que se encuentre la clave buscada, un lugar vacío o se vuelva a T(h). En el primer caso, se ha encontrado. En el segundo, no está en la tabla. En el tercero, tampoco está, y la tabla está llena para ese valor de la función Hash.
  • 30. Rehash lineal  pi = i  Se comparan elementos sucesivos. Problema: apiñamiento de elementos.  La longitud de búsqueda es difícil de calcular (depende del grado de apiñamiento, y éste del orden en que se definen los identificadores).
  • 31. 3.5.3 Estructuras de datos para tablas de símbolos. La tabla de símbolos es una estructura de datos que nos permite realizar operaciones de inserción, búsqueda y eliminación de información en varias construcciones del lenguaje fuente, la cual es analizada por el compilador originándose un código objeto.
  • 32. Interfaz de la tabla de símbolos Las principales operaciones de la tabla de símbolos las definimos asi:  inserción:almacena información proporcionada por las declaraciones de nombre cuando estas son procesadas.  Búsqueda:recupera la inaformacion asociada con un nombre cuando este se utiliza en una declaración o el código asociado.  Eliminacion:elimina la informcion proporcionada por una declaración cuando esta ya no se aplica.