Sunteți pe pagina 1din 9

UTN FRCU

Sintaxis y Semntica
Ingeniera en Sistemas de
Informacin
Resumen
Primer Parcial

Compiladores-Traductores
Paradigmas
Imperativa
Funcional
Orientada a Objetos
Lgica
Niveles de Abstraccin
Bajo: instrucciones simples con manejo de memoria explcito: ensambladores
Alto: Acceso explcito a memoria, estructuras de control
Muy Alto: mayor nivel de abstraccin, mquinas virtuales, con acceso implicitico a
memoria
Generaciones
Primera: Lenguaje maquina
Segunda: lenguaje ensamblador
Tercera: lenguajes imperativos
Cuarta: 4GL, SQL, Que se quiere hacer y no como
Quinta: AI y lenguajes de inferencia
Sexta: redes neuronales
Traductores
Objetivos: conversin del programa y deteccin de errores
Translator: Prog. fuente (X lenguaje) Traductor Prog. Objeto (Y lenguaje)
Compilador: Alto nivel Bajo nivel
Ensamblador: Bajo nivel Bajo nivel (ASM a cdigo maquina)
Preprocesador: Alto nivel Alto nivel
Interprete: Convierte y ejecuta instruccin a instruccin (BASIC,PERL)
Compilador Traductor
Velocidad de ejecucin
Menos requerimientos memoria
Control de errores de tipo en tiempo
compilacin
Se compila una sola vez
Tipado esttico
Facilidad de depuracin
Flexible, con tipado dinmico y alto
nivel de expresividad

Errores
Lxico: Componentes atmicos del lenguaje
Sintctico: en la estructura del programa
Semntico en el significado del programa:
o Tipo/declaracin



UTN FRCU
Sintaxis y Semntica
Ingeniera en Sistemas de
Informacin
Resumen
Primer Parcial

o Lgicos
o Conceptuales
o Comprensin del problema/requerimientos
o Otros

IDE:
Editores de Estructura
Impresores estticos
Verificadores Estticos
Debuggers
Ayuda sensible al contexto
Profilers
Procesamiento de un lenguaje

Compilacin

Dividir en fases reduce la complejidad del proceso y nos brinda una independencia de la
arquitectura y el OS
La divisin de la compilacin se denomina pasada, compilando por partes y dejando archivos
intermedios. Sin embargo la mayora de los compiladores actuales son de una pasada.

Estructura del
programa
fuente
PREPROCESADOR
Programa
Fuente
COMPILADOR
Prog. Objeto
en
Ensamablador
ENSAMBLADOR
Codigo
Maquina
reubicable
EDITOR CARGA
ENLACE
Codigo de
Maquina
Absoluto
Analisis
Lexico
Analisis
Sintactico
Analisis
Semantico
Sintesis -
Codigo
Intermedio
Sintesis -
Optimizacion
Sintesis
Generacion
de Codigo



UTN FRCU
Sintaxis y Semntica
Ingeniera en Sistemas de
Informacin
Resumen
Primer Parcial

Anlisis Lxico, Lenguajes Formales y Autmatas Finitos
Es la primera fase del proceso de compilacin, el objetivo es identificar los componentes lxicos y
sus atributos
Definiciones
Componente Lxico: es el conjunto de cadenas que desde el punto de vista sintctico
tienen el mismo significado, ej.: Identificador, nmero real
Lexema: cadenas que componen el componente lxico, ej.: Total, -9,78
Patrn: regla que define la estructura de los lexemas que forman el componente lxico,
ej.: Una letra, seguida de nmeros o guiones bajos
Introduccin a los lenguajes formales:
Es la base de las distintas tareas que se realizan durante la compilacin
Definiciones
Smbolo: ente abstracto
Alfabeto: conjunto finito NO VACO de smbolos
Cadena: secuencia finita de 0 o ms smbolos de un alfabeto
Longitud de cadena: cantidad de smbolos que posee la cadena w, |w|
Cadena vaca: ||=0
Operaciones sobre Cadenas
Concatenacin: W y X dos cadenas, WX es la concatenacin, los smbolos de W seguidos
de los de X
Prefijo de W: S/ W=SX |X|0
Sufijo de W: S/ W=XS |X|0
Subcadena de W: S/ W=YSX |X|0 |y|0
Prefijo,Sufijo,Subcadena Propia: distintas de las originales ( no permite |X|0 sino |X|>0)
Potencia: sea W cadena, i0
o



Operaciones sobre Lenguajes:
Siendo L y M lenguajes (conjunto de cadenas formadas a partir de un alfabeto determinado)
o Unin: L M * w| (w L) (w M)}
o Concatenacin: LM = { wx | (w L) (x M)}
o Potencia: i0
o

*+



o Clausura Kleene/Transitiva/Estrella
o


o Clausura Positiva



UTN FRCU
Sintaxis y Semntica
Ingeniera en Sistemas de
Informacin
Resumen
Primer Parcial

o


Autmatas Finitos
Sistema de Estados Finitos:
Entradas y Salida discretas
Finita cantidad de configuraciones llamadas estados
En cada momento se encuentra en un estado
Cada estado resume la informacin de los anteriores, pero el sistema no recuerda los
estados anteriores
Autmata Finito
Quntupla (Q,,,q
o
,F) que define SOLO UN LENGUAJE FORMAL
Q: Conjunto Finito de Estados
: Alfabeto
: Q x Q
q
o
Q: Estados iniciales
F: Estados finales

Comportamiento:
Apunta al primer elemento de la cadena, con DELTA determinamos en qu estado nos
encontramos nuevamente, movemos el control al siguiente carcter, repetimos hasta agotar
caracteres. Si nos encontramos en una q F, aceptamos la cadena
Diagrama Transicin:
Representacin grfica del AFN, los nodos son los estados, los arcos son DELTA, los doble crculos
son finales y los iniciales son los que tienen una flecha de entrada sin nodo de salida.
Tabla Transicin: tabla entre los estados y las columnas son el alfabeto
Muerto:
q MUERTOS <-> (q (Q-F) ( a / (q, a)= q))
Transicin Extendida:

( )

( )

(( ) )


El lenguaje reconocido por un autmata finito es:
{ | (

) (

) }
Autmata Finito no Determinstico:
Modelo matemtico definido por la Quntupla (Q,,,q
o
,F). Se diferencia del AFD en la funcin de
transicin:

)



UTN FRCU
Sintaxis y Semntica
Ingeniera en Sistemas de
Informacin
Resumen
Primer Parcial

Esto nos permite tener 0 o ms transiciones para el mismo smbolo
Autmata Finito no Determinstico con -transiciones
Modelo matemtico definido por la Quntupla (Q,,,q
o
,F). Se diferencia del AFD en la funcin de
transicin:
( )

)
Esto nos permite tener 0 o ms transiciones para el mismo smbolo, teniendo en cuenta tambin a
Epsilon. De esta manera podemos pasar de un estado a otro del autmata sin consumir smbolos
de la cadena de entrada.
La clase de lenguajes reconocidos por los AFD, AFN y AFN- es la CLASE DE LOS
LENGUAJES REGULARES




UTN FRCU
Sintaxis y Semntica
Ingeniera en Sistemas de
Informacin
Resumen
Primer Parcial

Expresiones Regulares
Notacin que permite generar Lenguajes Regulares
Definicin Formal: a b significa: a es una expresin regular y genera el lenguaje b
1. { }
2. *+
3. a {a}
4. Siendo r y s ER, que generan Lr y Ls:
a. (r|s) Lr Ls
b. (r.s) Lr . Ls
c. (r
*
) Lr
*

d. (r) Lr
Sirven para especificar los patrones que definen componentes lxicos. En la definicin anterior, la
primer parte es sintctica y la segunda semntica.
Las expresiones regulares generan la clase de los Lenguajes Regulares.
Equivalencias entre AF y ER
Transformacin de AFD ER

Todo autmata se puede transformar en ER mediante el procedimiento anterior

Entrada
AFD, AFN, AFN-
llamado M
Proceso
Eliminamos los estados
muertos.
Agregar nuevos estados
finales e iniciales, con a los
estados anteriores
Eliminar Estados:
Reemplazar paralelas por
(r|s)
Reemplazar estado T por
N*M transiciones
Reemplazar transiciones
paralelas
La expresion R sera la
etiqueta de una unica
transcion del inicial al final
Salida
ER llamada R que
genera el mismo
lenguaje



UTN FRCU
Sintaxis y Semntica
Ingeniera en Sistemas de
Informacin
Resumen
Primer Parcial


Transformacin ER AFN-
Se utiliza la construccin de Thompson, mediante la definicin de ER de manera inductiva
ER
Automata




A

(r|s)

(r.s)

(r
*
)






UTN FRCU
Sintaxis y Semntica
Ingeniera en Sistemas de
Informacin
Resumen
Primer Parcial

Transformacin AFN- AFD
Funciones Auxiliares:
-Clausura(T): T incluido en Q_N (estados del autmata AFN), dando de resultado el
subconjunto de estados de N, alcanzables mediante 0 o ms -transiciones a partir de
algn estado s en T
Mueve(T,a): T incluido en Q_N (estados del autmata AFN) y a (smbolos del alfabeto)
es el subconjunto de estados de N hacia los cuales existe una a-transicin desde algn
estado s en T


Minimizacin
Debemos buscar los estados no distinguibles:
T y S son distinguibles si existe W(cadena) tal que desde
extendida
(S,w) Q F; y

extendida
(T,w) Q Q-F
Algoritmo:
Entrada: AFD llamado D
Salida: AFD M, con estado mnimos tal que genera ele mismo lenguaje que D
1. Construir una particin Pi1 con estados finales y no finales, distinguibles mediante
2. Sea Pi
i
, crear Pi
i+1
:
a. Para cada grupo:
Entrada
AFN- llamado N
Proceso
Calcular q_0D (inicial de D)
como la e-clau(q_0N), agregar
a Q_D y marcar como no
tratado
Mientras exista T no tratado
en Q_D:
T --> Tratado
Para cada a :
U:=e-clau(Mueve(T,a))
si U no Q --> No tratado
y agregado
DeltaD[T,a]:=U
Agregar a F_D todo T con al
menos un final
Salida
AFD llamado D que
reconoce el mismo
lenguaje



UTN FRCU
Sintaxis y Semntica
Ingeniera en Sistemas de
Informacin
Resumen
Primer Parcial

i. Dividir los estados de G en subgrupos tales que S y T estn en el mismo
grupo si y solo si para todo smbolo, llegan a los mismos grupos de P
b. Substituir G en Pi
1+i

3. Si Pi
i
=Pi
1+i
seguir con 4, sino volver a 2
4. Elegir un estado de cada grupo y representar las transiciones hacia los otros
El grupo que tenga el estado inicial de D ser el inicial de M, los finales de D sern los finales de M

Propiedades que cumplen los lenguajes regulares:

Unin Concatenacin Clausura
Asociativa (A|B)|C = A|(C|B) A(BC) = (AB)C -
Conmutatividad (A|B) = (B|A) No cumple -
Distributiva A(B|C) = AB|AC No cumple -
Impotencia (A|A) = A No cumple
*
=
Absorbente - A = -
Neutro A| = A A = A

S-ar putea să vă placă și