domingo, 30 de marzo de 2014

Resumen 6

1. An alisis sem antico

Sistema de tipo

Es la organizaci on impl ícita de operadores, variables, constantes, funciones, procedimientos los cuales tienen un valor y un tipo.

Contexto

Son los bloques que de nen el alcance de diferentes objetos como: variables, funciones, grupos de restricciones, entre otros.

Sobrecarga de operadores
La sobrecarga de operadores es un mecanismo que  aumenta las capacidades de los lenguajes de programaci ón orientados a objetos. En C++, la declaraci on y de finici on de una sobrecarga de operador es muy similar a la declaraci on y de nici on de una funci on cualquiera.

int var = 8 + 7 (int + int)
int var = "Hola" (string)
int var = 6 + "Hola"(int + string)

Ventajas de los grafos dirigidos ací clicos
- Disminuye la evaluaci ón.
- Disminuye la gram atica de c ódigo.
- Permite disminuir el tamano de las expresiones.

Tabla de sí mbolos
Estructura donde se almacena la informaci on l exica, sint actica,sem antica y relacionada a la
generaci ón de c ódigo de elementos como variables, constantes, funciones, procedimientos, entre otras.

        Es simple de implementar.
        Búsqueda es lineal.
        Dentro de una lista cada nodo tiene al menos la siguiente información
          - Nombre
          - Tipo: ejemplo: int(entero).
          - Direcci on de memoria.          - Alcance.
          - Valores.
          - Par ametros.

domingo, 23 de marzo de 2014

Análisis Sintáctico (Video)

https://www.youtube.com/watch?v=7YZTWmtAKuc

Resumen 5

1. Conversi ón  no determinista a  determinista.

mueve (X, b): conjunto de estado del aut ómata finito no determini stico donde una transici ón con el sí mbolo de entrada  a algún estado en X del aut ómata finito determinista.


cerradura E (X): consiste en un conjunto de estados del autómata fi nito no determinista alcanzables desde algún estado en X con transiciones E solamente.En palabras más simples consiste en todos los conjuntos de nodos a los que se pueden llegar mediante E.



Ejemplos:

Cerradura de -E(1) = 2,3,5.
Cerradura de -E(3) = 5.
Cerradura de -E(2) = E .
Mueve (1 , a) = 4 .
Mueve (3 , d) = E.

domingo, 16 de marzo de 2014

Resumen 4

1. Análisis Léxico
Su principal función es leer código fuente, analizar los los componentes léxicos requeridos para el análisis sintáctico. En este análisis se ignoran comentarios, saltos de línea y espacios.

Un analizador léxico  es la primera fase de un compilador consistente en un programa que recibe como entrada el código fuente de otro programa y produce una salida compuesta de tokens  o símbolos.


2. Autómata 
Son también conocidos como diagramas de transición y se clasifican en dos tipos:

Autómatas determinísticos: no acepta vacío (E).

Autómatas no determinísticos: este tipo de autómata acepta más de una transición desde un estado a otros con un mismo elemento del alfabeto.

Ambos autómatas representan expresiones regulares, se pueden usar tablas de transición y además se pueden ejecutar algoritmos para minimizar los estados.
Formalmente un autómata tiene:
S es un conjunto de estados.
un conjunto de estados de aceptación.
un alfabeto.
F(x) una función de transición de estados y elementos del alfabeto.

So un estado inicial.

Ejemplo:


domingo, 2 de marzo de 2014

Resumen 3

1. Elementos alrededor de un compilador
Otros elementos alrededor de un compilador:
Preprocesador. Se carga de uni car el programa fuente para poder realizar las
fases de un compilador
|-Carga Bibliotecas
|-Carga Subclases,SuperClase,entre otros..
Carga y enlace(del Sistema Operativo)
|-Resuelve direcciones de memoria
|-Da acceso a la parte de asignaci on de memoria y recursos f sicos.
Generador de c odigo intermedio:
temp1 = real(60)
temp2=id3*temp1
temp3=id2+temp2
id1=temp3
Optimizaci on de C odigo:
temp1=id3*60.0
id1= id2+temp1
Generador de C odigo:
movf id3,r2
1
mulf 60.0,t2
movf id2,r1
addf r2,r1
movf r1,id1
Consideraciones de dise~no de un compilador:
Lenguaje Fuente
|Tama~no del Lenguaje
|Cambio del lenguaje mientras se construye el compilador
|. Modularizar componentes ayuda afrontar el cambio
Lenguaje Objeto
|Si es nuevo debe asegurarse que es correcto
|Producci on para varias generaciones de m aquina objeto
Rendimiento
|Debe ser r apido
|Calidad de c odigo
|Localizaci on de errores
|Mantenimiento
|Transportabilidad
|. Redestinaci on: Pueda cambiar el c odigo objeto que genera.
|. Relocalizaci on: puede ejecutarse r apidamente en m aquinas distintas
inicializado?
Taxonom a de Lenguajes (por Abstracci on)
Primera Generaci on: Binario.
Segunda Generaci on: Lenguajes Simb olicos.
Tercera Gernaraci on: ALTO Nivel. Tienen Estructuras independientes de la
m aquina (C,Pascal,Java).
*Cuarta Generacai on: Construcci on de aplicaciones con piezas prefabricadas.
*Quinta Generaci on: De uso espec co. El programador conoce el problema y
el lenguaje puedo
ayudar a resolverlo a partir de las reglas.
Taxonom a de Lenguajes(por su Gram atica)
-Una gram atica describe de forma natural la estructura jer arquica de la
construcci on de lenguajes de programaci on
-Son reglas y principios que predicen correctamente las combinaciones de
oraciones de un lenguaje.
|-Ejemplo de Espa~nol
Para comprender mejor la idea, podemos considerar un modelo para el espa~nol:
1. ORACI ON {>SUJETO PREDICADO
2. SUJETO {>DETERMINANTE NOMBRE
3. PREDICADO {>VERBO COMPLEMENTO
4.DETERMINANTE {>EL
5. NOMBRE {>NI~NO|HOMBRE|ANCIANO
6.VERBO {>duerme|r e|come
7. COMPLEMENTO {>pl acidamente|intranquilo
2
Gram atica Regulares
Operaciones
+= aparecer una o m as veces
?= Aparece m aximo una vez
=Aparece 0 o m as veces (Cerradura de Kleene)
/[] o /() = Agrupaci on
|= OR
-= rangos. Ejemplo A-Z o 0-9
E = Vac o
|-Otras variantes
|- $ = Fin
|- .Potencias|||->a^(4) = aaaa
Gram aticas libres de contexto
1-Conjunto de componentes l exicos denominados S mbolos Terminales
2-Conjunto de componentes l exicos denominados No terminales
3-Producciones conformadas de no terminales y terminales
4-De nici on de un Noterminal como s mbolo inicial
S mbolos terminales->Se denotan con min uscula
|-Se pueden visualizar como las hojas de un arbol sint actico
|-En las gram aticas libres de contexto solo se encuentran en la parte derecha
de la producci on
Producciones->Se denotan con may uscula
3
Tienen dos partes, el Nombre(No terminal) y la parte derecha que indica la
sustituci on y puede tener terminales y no terminales
||Ejemplo
Lista{Lista + D gito
Lista{Lista - D gito
Lista{D gito
D gito{ 0|1|2|3|4|5|6|7|8|9
Propiedades de las Gram aticas
|-Cuando se dise~na una gram atica se busca que no sea ambigua.
|||Se dice que una gram atica es ambigua cuando se pueden construir 2
arboles sint acticos para una misma entrada
4