Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PRCTICAS
LENGUAJES Y AUTOMATAS I
SCD-1015
PLAN ISIC-2010224
INGENIERA EN SISTEMAS
COMPUTACIONALES
ndice
INTRODUCCIN-----------------------------------------------------------------------------------------------------------------1
PRCTICA 1
18
INTRODUCCIN
Desde su nacimiento, la teora de autmatas ha encontrado aplicacin en muy diversos campos.
Esto se debe a que resulta muy natural considerar, tanto los autmatas como las mquinas
secuenciales, sistemas capaces de transmitir (procesar) Informacin.
En definitiva, esto es equiparable a cualquier sistema existente en la naturaleza, que recibe seales de
su entorno, reacciona ante ellas y emite as nuevas seales al ambiente que le rodea.
Algunos De los campos donde ha encontrado aplicacin la teora de autmatas son:
Teora de la Comunicacin
Teora de Control
Lgica de los circuitos secuenciales
Ordenadores
Teora lgica de los sistemas evolutivos y auto
Reproductivos
Reconocimiento de patrones
Fisiologa del sistema nervioso
Traduccin automtica de lenguajes
Lenguajes y autmatas:
Un autmata resuelve un problema mediante el clculo de una funcin de una forma autnoma: Recibe
unos datos y, cuando termina su trabajo, da un resultado. El mismo problema puede recibir otra
coleccin de datos distinta (instance-ejemplar) yda un resultado correcto en cada caso mediante el
clculo de la misma funcin.
Un ejemplar se puede ver como una palabra de un lenguaje. El conjunto de ejemplares de entrada
para los que el problema tiene solucin es un lenguaje. El problema tiene solucin cuando existe un
autmata que calcula el resultado correctamente. Hay lenguajes que no requieren autmatas tan
complejos como las las mquinas de Turing para resolver los problemas que se plantean sobre ellos.
Ms simples son los autmatas finitos y los autmatas con pila. Cada tipo de autmatas reconoce
una clase de lenguajes.
Datos
Autmata
Resultado
Mquinas de Turing.
Todo ello se corresponde con el nivel de abstraccin requerido para resolver los tipos de problemas
asociados a un determinado lenguaje con las herramientas ms sencillas posible, en aras de la
eficiencia.
Fecha de Actualizacin 20/08/2013
Pgina 1
Pgina 2
Prctica
1.- OBJETIVO
El estudiante conocer los tipos de traductores que hay, las formas de clasificacin de los lenguajes.
2.- MARCO TERICO
Los autmatas finitos tienen muchas aplicaciones. Aplicados a la traduccin de lenguajes, ellos
se emplean como medio sistemtico y eficiente de reconocer los lexemas que concuerdan con
las expresiones regulares asociadas a los componentes lxicos de un lenguaje. Los autmatas
finitos son una manera eficiente de implementar un analizador lxico.
Podemos ver un autmata finito como una mquina de estadoscon un lector de smbolos. Un
autmata se encuentre en un principio en un estado inicial. El autmata lee cada smbolo en la
secuencia entrada, y cambia de estado de acuerdo al smbolo. El autmata se detiene si llega a
un estado final y la entrada est agotada. Si la secuencia de entrada se agota y el estado no es
final el autmata produce un error. Tambin se produce un error si no hay una transicin de
estados definida para el estado actual y el smbolo ledo.
Diagramas de Estado
Un autmata finito puede representarse y visualizarse mediante un diagrama de estados. Un
diagrama de estado es un grafo dirigido donde cada vrtice representa un estado, y cada arista
est etiquetada con un smbolo del alfabeto de entrada y representa la transicin entre estados
que se produce cuando ese smbolo es el siguiente ledo.
Estado Inicial
El estado inicial se denota llamndolo q0 o usando el smbolo:
Fecha de Actualizacin 20/08/2013
Pgina 3
Estados Finales
Los estados finales se denotan usando un doble crculo:
Pgina 4
Prctica
1.- OBJETIVO
El estudiante conocer como obtener un alfabeto a partir de un lenguaje y viceversa.
2.- MARCO TERICO
Los autmatas finitos tienen muchas aplicaciones. Aplicados a la traduccin de lenguajes, ellos
se emplean como medio sistemtico y eficiente de reconocer los lexemas que concuerdan con
las expresiones regulares asociadas a los componentes lxicos de un lenguaje. Los autmatas
finitos son una manera eficiente de implementar un analizador lxico.
Podemos ver un autmata finito como una mquina de estadoscon un lector de smbolos. Un autmata se
encuentre en un principio en un estado inicial. El autmata lee cada smbolo en la secuencia entrada, y cambia de
estado de acuerdo al smbolo. El autmata se detiene si llega a un estado final y la entrada est agotada. Si la
secuencia de entrada se agota y el estado no es final el autmata produce un error. Tambin se produce un error si
no hay una transicin de estados definida para el estado actual y el smbolo ledo.
3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR
Sistema Operativo
Lenguajes de Programacin
4.- COMPETENCIAS ESPECFICAS
Organizar por equipos a los alumnos (3 integrantes mximo).
Utilizar un lenguaje de programacin que permita
viceversa
5. RESULTADOS
Colocar en la seccin 8 los resultados de los puntos anteriores.
Pgina 5
Prctica
Fecha de Actualizacin 20/08/2013
3
Pgina 6
IMPLEMENTACIN DE
REGULAR
UNA EXPRESIN
1.- OBJETIVO
El estudiante conocer por medio de un programa la implementacin de una expresin regular y su
aplicacin.
2.- MARCO TERICO
El objetivo de las expresiones regulares es representar todos los posibles lenguajes definidos
sobre un alfabeto , en base a una serie de lenguajes primitivos, y unos operadores
decomposicin.
Lenguajes primitivos: el lenguaje vaco, el lenguaje formado por la palabra vaca, y los
lenguajes correspondientes a los distintos smbolos del alfabeto.
Operadores de composicin: la unin, la concatenacin y el cierre.
Ejemplo:
1.Lenguaje formado por las cadenas que terminan en 01:
{0,1}*.{01}=
({0}{1})*.{01}
Expresin regular: (0+1)*01
3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR
Sistema Operativo
Procesador de Textos
4.- COMPETENCIAS ESPECFICAS
Organizar por equipos a los alumnos (3 integrantes mximo).
Utilizar un lenguaje de programacin que permita la implementacin de una Expresin Regular.
Pgina 7
5. RESULTADOS
Colocar en la seccin 8 los resultados de los puntos anteriores.
6. CONCLUSIONES
Al concluir esta prctica el alumno habr comprendido que y para qu? sirve una expresin regular.
7.- BIBLIOGRAFA
Pgina 8
Prctica
IMPLEMENTACIN
DE
LENGUAJES
SIMPLES REPRESENTADOS CONAFDs
Observaciones: Esta prctica cubre la Prctica # 8 Realizar programas que
implemente lenguajes simples representados con AFDs9 Realizar ejercicios
de construccin de AF a partir de ER o casos de estudio y la Practica # 10
Realizar conversiones de AFN a AFD.
1.- OBJETIVO
El estudiante conocer los autmatas finitos por medio de la realizacin de un programa que
implemente lenguajes simples representados con AFDs.
2.- MARCO TERICO
es un alfabeto (sabemos)
y `lee' el smbolo
va al estado
es el estado inicial.
Pgina 9
Pgina 10
Prctica
1.- OBJETIVO
El estudiante conocer la representacin las formas de representacin simblicas y su aplicacin.
2.- MARCO TERICO
Una mquina de Turing consiste, bsicamente, en una cinta infinita, dividida en casillas. Sobre
esta cinta hay un dispositivo capaz de desplazarse a lo largo de ella a razn de una casilla cada
vez. Este dispositivo cuenta con un cabezal capaz de leer un smbolo escrito en la cinta, o de
borrar el existente e imprimir uno nuevo en su lugar. Por ltimo, contiene adems un registro
capaz de almacenar un estado cualquiera, el cual viene definido por un smbolo. Los smbolos
que definen el estado del dispositivo no tienen por que coincidir con los smbolos que se
pueden leer o escribir en la cinta. En los programas presentados en el artculo, los posibles
smbolos a leer o escribir en la cinta son el 0 y el 1, y los posibles estados se representan con
letras maysculas. En el emulador, existe un cambio en la representacin del estado, usando
para ello los nmeros del 0 al 99, para permitir un mayor nmero de ellos.
La mquina tiene un funcionamiento totalmente mecnico y secuencial. Lo que hace es leer el
smbolo que hay en la casilla que tiene debajo. Despus toma el smbolo del estado en que se
encuentra. Con estos dos datos accede a una tabla, en la cual lee el smbolo que debe escribir en
la cinta, el nuevo estado al que debe pasar y si debe desplazarse a la casilla izquierda o derecha.
Para comprender mejor, vamos a ver un simple ejemplo: sea la mquina de Turing capaz de leer
o escribir los smbolos 0 y 1 en la cinta (en la definicin original de Turing, el nmero de
smbolos a usar poda ser cualquiera, con la nica condicin de ser un nmero finito, y no
tenan por qu ser nmeros; sin embargo, en aplicaciones prcticas se suelen limitar a estos
dos), y que puede tener los estados A, B y C (una mquina de Turing puede tener cualquier
nmero de estados; la nica condicin es que sea un nmero finito).
Fecha de Actualizacin 20/08/2013
Pgina 11
smbolo
ledo
0
1
0
1
0
1
nuevo
estado
nuevo
smbolo
B
B
A
C
A
C
1
0
1
0
0
0
sentido de
avance
DERECHA
IZQUIERDA
DERECHA
DERECHA
IZQUIERDA
DERECHA
B,1,>
B,0,<
A,1,>
C,0,>
A,0,<
C,0,>
5. RESULTADOS
Colocar en la seccin 8 los resultados de los puntos anteriores.
6. CONCLUSIONES
Al concluir esta prctica el alumno habr comprendido las mquinas de Turing.
Pgina 12
7.- BIBLIOGRAFA
John Martin
Pgina 13
Prctica
ESTRUCTURA
LXICO
6
DE
UN
ANALIZADOR
1.- OBJETIVO
El estudiante conocer las formas de representacin simblicas y su aplicacin de un Analizador
Lxico.
2.- MARCO TERICO
Vimos que la primera fase del anlisis es el anlisis lxico. El principal objetivo del
analizador lxico es leer el flujo de caracteres de entrada y transformarlo en una secuencia
de componentes lxicos que utilizar el analizador sintctico.
Al tiempo que realiza esta funcin, el analizador lxico se ocupa de ciertas labores de
\limpieza".
Entre ellas est eliminar los blancos o los comentarios. Tambin se ocupa de los problemas
que pueden surgir por los distintos juegos de caracteres o si el lenguaje no distingue
maysculas y minsculas.
Para reducir la complejidad, los posibles smbolos se agrupan en lo que llamaremos
categoras lxicas. Tendremos que especificar qu elementos componen estas categoras,
para lo que emplearemos expresiones regulares. Tambin ser necesario determinar si una
cadena pertenece o no a una categora lo que se puede hacer eficientemente mediante
autmatas de estados finitos.
Pgina 14
5. RESULTADOS
Pgina 15
Prctica
ESTRUCTURA
SINTACTICO
7
DE
UN
ANALIZADOR
1.- OBJETIVO
El estudiante conocer las formas de representacin simblicas y su aplicacin.
2.- MARCO TERICO
El analizador sintctico tiene como objetivo encontrar las estructuras presentes en su
entrada.
Estas estructuras se pueden representar mediante el rbol de anlisissintctico, que
explica cmo se puede derivar la cadena de entrada en la gramtica que especifica el
lenguaje. Aunque en la prctica es habitual que el rbol de anlisis no llegue a construirse,
se trata de una abstraccin que nos permite entender mejor todo el proceso.
Para construir la especificacinsintctica de los lenguajes de programacin, se suelen
emplear gramticas incontextuales, generalmente restringidas para que el anlisis se
pueda realizar de manera eficiente.
Para que sea posible construir el rbol de anlisis, es necesario que la entrada no presente
errores sintcticos. En caso de que los haya, el analizador debe informar de su presencia
adecuadamentey, si es posible, intentar continuar el anlisis.
3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR
Sistema Operativo
Procesador de Textos
Lenguaje de Programacin JAVA, C++
Pgina 16
5. RESULTADOS
Colocar en la seccin 8 los resultados de los puntos anteriores.
6. CONCLUSIONES
Al concluir esta prctica el alumno habr comprendido un Analizador Sintctico.
7.- BIBLIOGRAFA
Pgina 17
Sistema Operativo
Microsoft Office
CANT.
UNIDAD
2
3
4
5
BIBLIOGRAFIA
CANT
Pgina 18
John Martin
Pgina 19
DATOS GENERALES
FECHA DE
ACTUALIZAC
ION
ELABOR Y/O
ACTUALIZ
20/08/2013
DESCRIPCIN DE LA ACTUALIZACIN
Pgina 20