Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
AUTMATAS i
PORTAFOLIO DE EVIDENCIAS
ndice.
INTRODUCCIN..3
1.1 Alfabeto. .4
1.2 Cadenas...5
1.3 Lenguajes, Tipos Y Herramientas...7
1.4 Estructura De Un Traductor.9
1.5 Fases De Un Compilador..12
1
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
CONCLUSIN.84
BIBLIOGRAFA...85
2
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Introduccin.
La palabra autmata evoca algo que pretende imitar las funciones propias de los seres vivos, especialmente
relacionadas con el movimiento, por ejemplo el tpico robot antropomorfo. En el campo de los Traductores,
Procesadores, Compiladores e Intrpretes, lo fundamental no es la simulacin del movimiento, sino la simulacin
de procesos para tratar informacin.
La informacin se codifica en cadenas de smbolos, y un autmata es un dispositivo que manipula cadenas de
smbolos que se le presentan a su entrada, produciendo otras tiras o cadenas de smbolos a su salida.
El autmata recibe los smbolos de entrada, uno detrs de otro, es decir secuencialmente. El smbolo de salida
que en un instante determinado produce un autmata, no slo depende del ltimo smbolo recibido a la entrada,
sino de toda la secuencia o cadena, que ha recibido hasta ese instante.
Todo lo anterior conduce a definir un concepto fundamental: Estado De Un Autmata Es toda la informacin
necesaria en un momento dado, para poder deducir, dado un smbolo de entrada en ese momento, cul ser el
smbolo de salida.
Es decir, conocer el estado de un autmata, es lo mismo que conocer toda la historia de smbolos de entrada, as
como el estado inicial, estado en que se encontraba el autmata al recibir el primero de los smbolos de entrada.
El autmata tendr un determinado nmero de estados (pudiendo ser infinitos), y se encontrar en uno u otro
segn sea la historia de smbolos que le han llegado.
Se define configuracin de un autmata a su situacin en un instante. Se define movimiento de un autmata como
el trnsito entre dos configuraciones.
Si un autmata se encuentra en un estado determinado, recibe un smbolo tambin determinado, producir un
smbolo de salida y efectuar un cambio o transicin a otro estado (tambin puede quedarse en el mismo estado).
El campo de estudio de los Traductores, Procesadores e Intrpretes son los lenguajes y las gramticas que los
generan. Los elementos del lenguaje son sentencias, palabras, etc... Formadas a partir de un alfabeto o
vocabulario, que no es otra cosa que un conjunto finito de smbolos. Establecidas las reglas gramaticales, una
cadena de smbolos pertenecer al correspondiente lenguaje si tal cadena se ha formado obedeciendo esas reglas.
Entonces un autmata reconocedor de ese lenguaje, funciona de tal forma que cuando reciba a su entrada una
determinada cadena de smbolos indica si dicha cadena pertenece o no al lenguaje. Tambin se mostrar como
existe un tipo de autmata para reconocer cada uno de los tipos de lenguajes generados por las correspondientes
gramticas.
3
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Unidad I
Introduccin a la Teora de Lenguajes
Formales
Las demostraciones es algo que todos los informticos necesitan conocer y comprender. Algunos de ellos aplican
el estricto punto de vista de que una demostracin formal de la correccin de un programa debe realizarse a la
vez que se escribe el propio programa. Sin duda, este punto de vista no es productivo. Por otro lado, estn aquellos
que establecen que las demostraciones no tienen lugar en la disciplina de programacin, en cuyo caso, suele
aplicarse la afirmacin si no est seguro de que el programa sea correcto, ejectelo y comprubelo.
Probar los programas es fundamental. Sin embargo, la realizacin de pruebas slo llega hasta cierto punto, ya que
no es posible probar los programas para todas las posibles entradas. An ms importante, si el programa es
complejo, por ejemplo contiene recursiones o iteraciones, entonces si no se comprende qu es lo que ocurre al
ejecutar un bucle o una llamada a funcin de forma recursiva, es poco probable que podamos escribir el cdigo
correctamente. Si al probar el cdigo resulta ser incorrecto, ser necesario corregirlo.
Para conseguir iteraciones o recursiones correctas, es necesario establecer hiptesis inductivas, y resulta til
razonar, formal o informalmente, que la hiptesis es coherente con la iteracin o recursin. Este proceso sirve
para comprender que el trabajo que realiza un programa correcto es esencialmente el mismo que el proceso de
demostrar teoremas por induccin. Por tanto, adems de proporcionar modelos que resulten tiles para
determinados tipos de software, es habitual en un curso sobre autmatas cubrir las metodologas para la
realizacin de demostraciones formales.
1.1 ALFABETO.
Un alfabeto es un conjunto de smbolos finito y no vaco. Convencionalmente, utilizamos el smbolo para
designar un alfabeto. Entre los alfabetos ms comunes se incluyen los siguientes:
1. = {0,1}, el alfabeto binario.
2. = {a,b, . . . , z}, el conjunto de todas las letras minsculas.
3. El conjunto de todos los caracteres ASCII o el conjunto de todos los caracteres ASCII imprimibles.
4
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
1.2 CADENAS.
Una cadena de caracteres (que tambin se denomina en ocasiones palabra) es una secuencia finita de smbolos
seleccionados de algn alfabeto. Por ejemplo, 01101 es una cadena del alfabeto binario = {0,1}. La cadena 111
es otra cadena de dicho alfabeto.
La Cadena Vaca.
La cadena vaca es aquella cadena que presenta cero apariciones de smbolos. Esta cadena, designada por , es
una cadena que puede construirse en cualquier alfabeto.
Potencias De Un Alfabeto
Si es un alfabeto, podemos expresar el conjunto de todas las cadenas de una determinada longitud de dicho
alfabeto utilizando una notacin exponencial. Definimos k para que sea el conjunto de las cadenas de longitud
k, tales que cada uno de los smbolos de las mismas pertenece a .
Por ejemplo:
Observe que 0 ={ }, independientemente de cul sea el alfabeto . Es decir, es la nica cadena cuya longitud
es 0.
Si = {0,1}, entonces 1 = {0,1}, 2 = {00,01,10,11}, 3 = {000,001,010,011,100,101,110,111}, etc.
Observe que existe una ligera confusin entre y 1. Lo primero es un alfabeto; sus elementos 0 y 1 son los
smbolos. Lo segundo es un conjunto de cadenas; sus elementos son las cadenas 0 y 1, cuya longitud es igual a 1.
No vamos a utilizar notaciones diferentes para los dos conjuntos, confiando en que el contexto deje claro si {0,1}
o algn otro conjunto similar representa un alfabeto o un conjunto de cadenas.
Por convenio, el conjunto de todas las cadenas de un alfabeto se designa mediante . Por ejemplo,
{0,1} = { , 0, 1, 00, 01, 10, 11, 000, . . .}. Expresado de otra forma, = 0 1 2
En ocasiones, desearemos excluir la cadena vaca del conjunto de cadenas. El conjunto de cadenas no vacas del
alfabeto se designa como +. Por tanto, dos equivalencias apropiadas son:
5
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
+ = 1 2 3
= + { }
Concatenacin De Cadenas
Sean x e y dos cadenas. Entonces, xy denota la concatenacin de x e y, es decir, la cadena formada por una copia
de x seguida de una copia de y. Dicho de manera ms precisa, si x es la cadena compuesta por i smbolos x = a1a2
ai e y es la cadena compuesta por j smbolos y = b1b2 bj, entonces xy es la cadena de longitud i+ j: xy =
a1a2 aib1b2 bj.
Por ejemplo:
Sean x = 01101 e y = 110. Entonces xy = 01101110 e yx = 11001101. Para cualquier cadena w, tenemos las
ecuaciones w = w = w. Es decir, es el elemento neutro de la concatenacin, dado que su concatenacin con
cualquier cadena proporciona dicha cadena como resultado (del mismo modo que 0, el elemento neutro de la
suma, puede sumarse a cualquier nmero x y proporciona x como resultado).
6
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Tipos.
Lenguaje Declarativo. Son los ms parecidos al castellano o ingles en su potencia expresiva y
funcionalidad y estn ene le nivel ms alto respecto a los otros. Son fundamentalmente lenguaje de
rdenes, denominados por sentencias que expresan Lo que hay que hacer en vez de Como hacerlo
Lenguaje de Alto Nivel. Permite al programador escribir las instrucciones de un programa utilizando
palabras o expresiones sintcticas muy similares al ingls; logran la independencia del tipo de mquina y
se aproximan al lenguaje natural.
Lenguaje de Bajo Nivel. Son aquellos que estn ms cerca del "entendimiento" de la mquina.
Lenguajes ensambladores. Es un lenguaje de programacin que est dedicado a escribir programas de
bajo nivel; djame explicarte un poco sobre los programas de bajo nivel pues bien un programa de bajo
nivel es aquel que ejerce control sumamente directo al hardware, la palabra bajo hace referencia a una
reducida abstraccin entre lo que es el lenguaje y el hardware; los programas de bajo nivel son hechos
para controladores, aplicaciones especializadas en tiempo real, entre otras.
Lenguaje Maquina. es el nico lenguaje que puede ejecutar una computadora. El lenguaje de mquina es
un cdigo que es interpretado directamente por el microprocesador.
El lenguaje est compuesto por un conjunto de instrucciones ejecutadas en secuencia (con eventuales cambios de
flujo causados por el propio programa o eventos externos) que representan acciones que la mquina podr tomar.
Un lenguaje mquina es especfico de cada arquitectura de computadora.
7
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Todo cdigo fuente en ltima instancia debe llevarse a un lenguaje mquina mediante el proceso de compilacin o
interpretacin para que la computadora pueda ejecutarlo.
Herramientas.
Editores de estructuras:
Un editor de estructuras toma como entrada una secuencia de rdenes para construir un programa fuente. El
editor de estructuras no slo realiza las funciones de creacin y modificacin de textos de un editor de textos
ordinario, sino que tambin analiza el texto del programa, imponiendo al programa fuente una estructura
jerrquica apropiada. De esa manera, el editor de estructuras puede realizar tareas adicionales tiles para la
preparacin de programas Concepto encontrado en el libro de Compiladores de Addison Wesley, a mi punto de
vista estos editores de estructura son los que se encarga de llevar el orden de las palabras, valla el acomodo y
comprobar si la entrada est formada correctamente.
Impresoras estticas:
Una impresora esttica analiza un programa y lo imprime de forma que la estructura del programa resulte
claramente visible Concepto encontrado en el libro de Compiladores de Addison Wesley.
Verificadores estticos:
Este verificador lee un programa, lo analiza e intenta descubrir errores potenciales sin correr el programa, algo
muy parecido a la correccin de los editores de texto como Word. Un verificador esttico puede detectar si hay
partes de un programa que nunca se podrn ejecutar o si cierta variable se usa antes de ser definida nos dice
Addison Wesley.
Intrpretes:
En lugar de producir un programa objeto como resultado de una traduccin, un intrprete realiza las operaciones
que implica el programa fuente. Muchas veces los interpretes se usan para ejecutar lenguajes de rdenes, pues
cada operador que se ejecuta en un lenguaje de ordenes suele ser una invocacin de una rutina compleja, como
un editor o un compilador.
8
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Ensambladores.
El programa ensamblador es el programa que realiza la traduccin de un programa escrito en ensamblador a
lenguaje mquina. Esta traduccin es directa e inmediata, ya que las instrucciones en ensamblador no son ms
que nemotcnicos de las instrucciones mquina que ejecuta directamente la CPU.
9
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Tipos de ensambladores.
Ensambladores bsicos. Son de muy bajo nivel, y su tarea consiste bsicamente en ofrecer nombres
simblicos a las distintas instrucciones.
Ensambladores modulares, o macro ensambladores. Descendientes de los ensambladores bsicos. Hacen
todo lo que puede hacer un ensamblador, y adems proporcionan una serie de directivas para definir e
invocar macroinstrucciones.
Ensambladores modulares 32-bits o de alto nivel. Son ensambladores que aparecieron como respuesta a
una nueva arquitectura de procesadores de 32 bits, realizan la misma tarea que los anteriores, permitiendo
tambin el uso de macros, permiten utilizar estructuras de programacin ms complejas propias de los
lenguajes de alto nivel.
Compiladores.
Un compilador es un programa informtico que traduce un programa escrito en un lenguaje de programacin a
otro lenguaje de programacin, es decir programa que permite traducir el cdigo fuente de un programa en
lenguaje de alto nivel, a otro lenguaje de nivel inferior (lenguaje mquina). Generando un programa equivalente
a capaz de interpretar.
Cualquier compilador debe realizar dos tareas principales: anlisis del Estructura de un Compilador:
programa a compilar y sntesis de un programa en lenguaje mquina.
Para el estudio de un compilador, es necesario dividir su trabajo en
fases. Cada fase representa una transformacin al cdigo fuente para
obtener el cdigo objeto. En cada una de las fases se utiliza un
administrador de la tabla de smbolos y un manejador de errores.
Interpretes.
Realizan normalmente dos operaciones:
Traducen el cdigo fuente a un formato interno.
Ejecutan o interpretan el programa traducido al formato
interno.
La primera parte del intrprete se llama a veces "el compilador",
aunque el cdigo interno que genera no es el lenguaje de la mquina,
ni siquiera lenguaje simblico, ni tampoco un lenguaje de alto nivel.
Particularidades de la interpretacin:
Ahorra memoria. No demasiado eficiente, cada vez que se entre
en un bucle se analizaran sus sentencias.
Produce un resultado que no se puede
almacenar, lo cual hace la ejecucin lenta. Facilita el proceso de depuracin.
10
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
11
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Anlisis Sintctico.
Los componentes lxicos se agrupan en frases
gramaticales que el compilador utiliza para sintetizar
la salida.
Anlisis Semntico.
Intenta detectar instrucciones que tengan la estructura sintctica correcta, pero que no tengan significado para la
operacin implicada.
Optimizacin de Cdigo.
Se trata de mejorar el cdigo intermedio, de modo que resulte un cdigo de mquina ms rpido de ejecutar.
Generacin de Cdigo.
Esta constituye la fase final de un compilador. Administrador de la tabla de smbolos. Se encarga de manejar los
accesos a la tabla de smbolos, en cada una de las etapas de compilacin de un programa.
Manejador de errores.
Es posible encontrar errores. De esta forma podrn controlarse ms eficientemente los errores encontrados en
cada una de las fases de la compilacin de un programa.
12
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
UNIDAD 2
Expresiones Regulares
Sirven como lenguaje de entrada de muchos sistemas que procesan cadenas.
Las tres operaciones sobre los lenguajes que representan los operadores de las expresiones regulares son:
13
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
5. (R1 R2)
6. (R*1) donde es una expresin regular
Para el punto 1, cualquier elemento que pertenezca al alfabeto es una expresin regular. En este caso, la expresin
regular a representa el lenguaje {a}.
Para el punto 2, la expresin regular formada por la cadena vaca (representada por ) representa el lenguaje {}.
Para el punto 3, la expresin regular representa el lenguaje vaco. Es importante aclarar que la expresin regular
representa el lenguaje que contiene una sola cadena: la cadena vaca; mientras que la expresin regular
representa el lenguaje que no contiene ninguna cadena (incluida la cadena vaca).
Para los puntos 4, 5, y 6, las expresiones regulares representan los lenguajes obtenidos al aplicar las operaciones
regulares de unin, concatenacin y estrella respectivamente.
A primera vista, la definicin anterior parece ser una definicin circular ya que parece que definimos las
expresiones regulares en trminos de s mismas. Sin embargo, las expresiones regulares R1 y R2 son siempre ms
pequeas que R, lo que nos permite evitar la circularidad en la definicin. A una definicin de este tipo se le llama
definicin inductiva. Los parntesis en las expresiones regulares pueden omitirse: la evaluacin entonces se hace
usando la precedencia de los operadores: estrella, concatenacin y unin.
14
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Tipos:
Unin.
Si a y b son expresiones regulares, a | b es una expresin regular tal que: {a y b} = a | b, es decir que puede
aparecer o no indistintamente.
Smbolo: |
Concatenacin.
Si a y b son expresiones regulares, ab es una expresin regular tal que: {a y b} = {a}{b}
Smbolo:
Cierre positivo.
Si es una expresin regular, entonces a+ es una expresin regular que denota {a}+. Es decir denota las cadenas:
a
aa
aaa a
Smbolo: +
15
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
16
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Unidad 3
Autmatas Finitos
Autmatas Finitos.
Un reconocedor de un lenguaje es un programa que toma como entrada una cadena x y, responde "si" si x es
una frase del programa, y "no", si no lo es. Se compila una expresin regular en un reconocedor construyendo un
diagrama de transiciones generalizado llamado autmata finito. Un autmata finito puede ser determinista o no
determinista, donde "no determinista" significa que en un estado se puede dar el caso de tener mas de una
transicin para el mismo smbolo de entrada.
17
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
La entrada para la fila i y el smbolo a en la tabla es el conjunto de estados Transiciones para el autmata finito
(o ms probablemente en la prctica, un apuntador al conjunto de estados)
que puede ser alcanzado por una transicin del estado i con la entrada a. Smbolo de entrada
En la siguiente tabla, se muestran las transiciones para el AFN de la imagen Estado
A B
anterior. El lenguaje definido por un AFN es el conjunto de cadenas de
entrada que acepta. 0 {0, 1} {0}
Ejemplo 1. En la siguiente imagen, se ve un AFN que reconoce aa*| bb*. La 1 - {2}
cadena aaa es aceptada recorriendo los estados 0,1, 2, 2 y 2. Las etiquetas de 2 - {3}
estas aristas son ?, a, a y a, cuya concatenacin es aaa. Obsrvese, que los
smbolos ? "desaparecen" en una concatenacin.
*Autmata Finito Determinista. Un AFD tiene un conjunto finito de estados y un conjunto finito de smbolos de
entrada. Un estado se disea para que sea el estado inicial, y cero o ms estados para que sean estados de
aceptacin. Una funcin de transicin determina cmo cambia el estado cada vez que se procesa un smbolo de
entrada.
Consta de:
1. Un conjunto finito de estados, a menudo designado como Q.
2. Un conjunto finito de smbolos de entrada, a menudo designado como .
3. Una funcin de transicin que toma como argumentos un estado y un smbolo de entrada y devuelve un
estado. La funcin de transicin se designa habitualmente como . En nuestra representacin grfica informal
del autmata, se ha representa mediante arcos entre los estados y las etiquetas sobre los arcos. Si q es un
18
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
estado y a es un smbolo de entrada, entonces (q, a) es el estado p tal que existe un arco etiquetado a que
va desde q hasta p.2
4. Un estado inicial, uno de los estados de Q.
5. Un conjunto de estados finales o de aceptacin F. El conjunto F es un subconjunto de Q.
Un autmata finito determinista (abreviado, AFD) es un caso especial de un autmata finito no determinista en el
cual:
Ningn estado tiene una transicin ?, es decir, una transicin con la entrada ?, y
Para cada estado s y cada smbolo de entrada a, hay exactamente una arista etiquetada a que sale de s.
Un autmata finito determinista tiene una transicin desde cada estado con cualquier entrada. Si se est usando
una tabla de transiciones para representar la funcin de transicin de un AFD, entonces cada entrada en la tabla
de transiciones es un solo estado. Como consecuencia es muy fcil determinar si un autmata finito determinista
acepta o no una cadena de entrada, puesto que hay a lo sumo un camino desde el estado de inicio etiquetado con
esa cadena.
A menudo haremos referencia a un autmata finito determinista mediante su acrnimo: AFD. La representacin
ms sucinta de un AFD consiste en un listado de los cinco componentes anteriores. Normalmente, en las
demostraciones, definiremos un AFD utilizando la notacin de quntupla siguiente:
A = (Q, , , q0, F)
Donde A es el nombre del AFD, Q es su conjunto de estados, son los smbolos de entrada, es la funcin de
transicin, q0 es el estado inicial y F es el conjunto de estados finales.
19
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
2. Una tabla de transiciones, que es una ordenacin tabular de la funcin , la cual especifica el conjunto de
estados y el alfabeto de entrada.
Diagramas De Transiciones.
Un diagrama de transiciones de un AFD A = (Q, , ,q0,F) es un grafo definido como sigue:
a. Para cada estado de Q, existe un nodo.
b. Para cada estado q de Q y cada smbolo de entrada a de , sea (q,a) = p. Entonces, el diagrama de
transiciones tiene un arco desde el nodo q hasta el nodo p, etiquetado como a. Si existen varios smbolos de
entrada que dan lugar a transiciones desde q hasta p, entonces el diagrama de transiciones puede tener un
nico arco etiquetado con la lista de estos smbolos.
c. Existe una flecha dirigida al estado inicial q0, etiquetada como Inicio. Esta flecha no tiene origen en ningn
nodo.
d. Los nodos correspondientes a los estados de aceptacin (los que pertenecen a F) estn marcados con un doble
crculo. Los estados que no pertenecen a F tienen un crculo simple.
Tablas de transiciones
Una tabla de transiciones es una representacin tabular convencional de una funcin, como por ejemplo , que
toma dos argumentos y devuelve un valor. Las filas de la tabla corresponden a los estados y las columnas a las
entradas. La entrada para la fila correspondiente al estado q y la columna correspondiente a la entrada a es el
estado (q,a).
*Autmata Finito No Determinista. El AFN difiere del AFD en que el primero puede tener cualquier nmero de
transiciones (incluyendo cero) a los estados siguientes desde un estado dado para un determinado smbolo de
entrada.
Al igual que el AFD, un AFN tiene un conjunto finito de estados, un conjunto finito de smbolos de entrada, un
estado inicial y un conjunto de estados de aceptacin. Tambin dispone de una funcin de transicin, que
denominaremos normalmente . La diferencia entre los AFD y los AFN se encuentra en el tipo de funcin . En
los AFN, es una funcin que toma un estado y smbolos de entrada como argumentos (al igual que la funcin
de transicin del AFD), pero devuelve un conjunto de cero, uno o ms estados (en lugar de devolver exactamente
un estado, como lo hacen los AFD). Comenzaremos con un ejemplo de un AFN y luego proporcionaremos su
definicin precisa.
Las nociones formales asociadas con los autmatas finitos no deterministas e indicamos las diferencias entre los
AFD y AFN. Un AFN se representa esencialmente como un AFD:
20
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
A = (Q, , ,q0,F)
Donde:
1. Q es un conjunto finito de estados.
2. es un conjunto finito de smbolos de entrada.
3. q0, un elemento de Q, es el estado inicial.
4. F, un subconjunto de Q, es el conjunto de estados finales (o de aceptacin).
5. , la funcin de transicin, es una funcin que toma como argumentos un estado de Q y un smbolo de
entrada de y devuelve un subconjunto de Q. Observe que la nica diferencia entre un AFN y un AFD se
encuentra en el tipo de valor que devuelve : un conjunto de estados en el caso de un AFN y un nico estado
en el caso de un AFD.
El lenguaje de un AFN.
Un AFN acepta una cadena w si es posible elegir cualquier secuencia de opciones del estado siguiente, a medida
que se leen los caracteres de w, y se pasa del estado inicial a cualquier estado de aceptacin. El hecho de que otras
opciones que empleen los smbolos de entrada de w lleven a un estado de no aceptacin, o no lleven a ningn
estado en absoluto (es decir, la secuencia de estados muertos), no impide que w sea aceptada por el AFN como
un todo. Formalmente, si A = (Q, , ,q0,F) es un AFN, entonces, L(A) = {w |_ (q0,w) F _= /0}
Es decir, L(A) es el conjunto de cadenas w pertenecientes a tal que (q0, w) contiene al menos un estado de
aceptacin.
21
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
22
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Simulacin de un AFD:
23
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
24
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Smbolo de entrada
Estado
A B
A B C
B B D
C B C
D B E
25
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
26
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Existen algoritmos que relacionan la especificacin de tokens -expresiones regulares-, con el reconocimiento de
estos -autmatas finitos-. Es posible dada una expresin regular obtener el AFD que reconozca las cadenas del
lenguaje denotado por la expresin regular. Tambin es posible obtener el AFND que reconozca el lenguaje
representado por dicha expresin regular.
El algoritmo que permite construir el autmata finito determinstico est fuera del alcance de estas notas (el
alumno no tiene los prerrequisitos para su estudio en este curso). Sin embargo, el algoritmo utilizado para la
construccin del autmata finito no determinstico AFND, es relativamente sencillo de aplicar, ya que se basa en
reglas simples. Existen muchas variantes de este algoritmo denominado Algoritmo de Thompson.
Este algoritmo es dirigido por sintaxis, es decir, usa la estructura sintctica de la expresin regular para guiar el
proceso de construccin del autmata AFND.
Supongamos que N(s)y N(t)son AFNDs para las expresiones regulares sy t, respectivamente.
a) Para la expresin regular s | t(alternancia), construir el siguiente AFND, N(s|t):
27
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
28
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Luego del tercer paso, si la tabla creada queda completamente marcada, entonces el AFD inicial ya era mnimo.
La complejidad computacional del problema de minimizar u n AFD es polinomio. De hecho, existen algoritmos
ms eficientes an que el mostrado en este artculo (aunque menos10 intuitivos). Sin embargo, el problema de
minimizar un autmata finito no determinista es NP- completo y PSPACE- completo.
29
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
30
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Unidad 4
Anlisis Lxico
4.1 FUNCIONES DEL ANALIZADOR LXICO.
Scanner.
La fase de rastreo (scanner), tiene las funciones de leer el programa fuente como un archivo de caracteres y
dividirlo en tokens. Los tokens son las palabras reservadas de un lenguaje, secuencia de caracteres que representa
una unidad de informacin en el programa fuente. En cada caso un token representa un cierto patrn de caracteres
que el analizador lxico reconoce, o ajusta desde el inicio de los caracteres de entrada. De tal manera es necesario
generar un mecanismo computacional que nos permita identificar el patrn de transicin entre los caracteres de
entrada, generando tokens, que posteriormente sern clasificados. Este mecanismo es posible crearlo a partir de
un tipo especfico de mquina de estados llamado autmata finito.
Funcin.
Es la primera fase de un compilador. Su principal funcin consiste en leer la secuencia de caracteres del programa
fuente, carcter a carcter, y elaborar como salida la secuencia de componentes lxicos que utiliza el analizador
sintctico. El analizador sintctico emite la orden al analizador lxico para que agrupe los caracteres y forme
unidades con significado propio llamados componentes lxicos (tokens). Los componentes lxicos representan:
o Palabras reservadas: if, while, do
o Identificadores: variables, funciones, tipos definidos por el usuario, etiquetas
o Operadores: =, >, =, <=, +, *, o Smbolos especiales: ; ( ), { },
o Constantes numricas. literales que representan valores enteros y flotantes.
o Constantes de carcter: literales que representan cadenas de caracteres.
El analizador lxico opera bajo peticin del analizador sintctico devolviendo un componente lxico conforme el
analizador sintctico lo va necesitando para avanzar en la gramtica. Los componentes lxicos son los smbolos
terminales de la gramtica. Suele implementarse como una subrutina del analizador sintctico. Cuando recibe la
orden obtn el siguiente componente lxico, el analizador lxico lee los caracteres de entrada hasta identificar
el siguiente componente lxico.
31
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Una de las ventajas de separar el anlisis lxico y anlisis sintctico es que facilita la transportabilidad del
traductor si se decide realizar cambios posteriores, por ejemplo cambiar las etiquetas begin-end por llaves de
apertura y cierre { }.
32
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
El analizador lxico recoge informacin sobre los componentes lxicos en sus atributos asociados. Los tokens
influyen en las decisiones del anlisis sintctico, y los atributos, en la traduccin de los tokens. En la prctica
los componentes lxicos suelen tener solo un atributo. Para efectos de diagnstico, puede considerarse tanto el
lexema para un identificador como el nmero de lnea en el que se encontr por primera vez. Esta informacin
puede ser almacenada en la tabla de smbolos para el identificador (estructura de datos).
Para la cadena E=M*C**2 de ejemplo, los componentes lxicos y los valores de atributo asociado son:
Tomando en cuenta que ciertas parejas no necesitan un valor de atributo. Los atributos relacionados con ese
token debern ser conservados y transferidos a alguna estructura de datos para que sean empleados en las
siguientes etapas del anlisis
33
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
34
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
35
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
3. Errores de ortografa en palabras reservadas: caracteres omitidos, adicionales o cambiados de sitio, por
ejemplo la palabra hwile en vez de while.
4. Fin de archivo: se detecta un fin de archivo a la mitad de un componente lxico.
36
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Esquema general
De estas tres secciones, slo la segunda es obligatoria, y cualquiera de ellas puede estar vaca. Esto quiere
decir que el mnimo programa en lex es: %%
La seccin de declaraciones incluye declaraciones de variables, constantes y definiciones regulares, que
constituyen una manera cmoda de utilizar expresiones regulares largas en la seccin de reglas; por ejemplo:
letra [A-Za-z]
La seccin de reglas especficas los patrones a reconocer y las acciones asociadas a stos, de forma similar
a la que utiliza awk: patrn {acciones en C}
La seccin de rutinas permite definir funciones auxiliares en C, incluida la funcin main(). Por defecto, lex
proporciona un main() que simplemente llama a la funcin yylex().
El comportamiento del programa generado (por defecto a.out, si no se le indica otra cosa al compilador de C)
es el siguiente:
o Imprimir en la salida estndar los lexemas que no se adapten a ningn patrn.
o Realizar la accin indicada para los lexemas que se ajustan a un patrn.
Por lo tanto, si compilamos y ejecutamos el programa mnimo en lex, que consta nicamente de una seccin de
reglas vaca (%%), veremos que se limita a copiar literalmente la entrada estndar en la salida estndar.
37
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Autmata Del Ao
38
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Analizador Lxico
Mes 1 ENERO Da 2 2 Da 16 16 Da 30 30
Mes 2 FEBRERO Da 3 3 Da 17 17 Da 31 31
Mes 3 MARZO Da 4 4 Da 18 18
Mes 4 ABRIL Da 5 5 Da 19 19
Mes 5 MAYO Da 6 6 Da 20 20
Mes 6 JUNIO Da 7 7 Da 21 21
Mes 7 JULIO Da 8 8 Da 22 22
Mes 8 AGOSTO Da 9 9 Da 23 23
Mes 9 SEPTIEMBRE Da 10 10 Da 24 24
Mes 10 OCTUBRE Da 11 11 Da 25 25
Mes 11 NOVIEMBRE Da 12 12 Da 26 26
Mes 12 DICIEMBRE Da 13 13 Da 27 27
Ao 2011 Da 14 14 Da 28 28
Da 1 1 Da 15 15 Da 29 29
39
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Analizador Sintctico.
G = {Vt, Vn, S, R}
Vt={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,2011,ENERO
,FEBRERO,MARZO,ABRIL,MAYO,JUNIO,JULIO,AGOSTO,SEPTIEMBRE,OCTUBRE,NOVIEMB
RE,DICIEMBRE }
Vn={Da, Mes, Ao, M1, M2, M3,D1, D2, D3 }
Reglas Gramaticales
S = Da/Mes/Ao | Ao/Mes/Da
Mes = M1|M2|M3
M1 = ENERO|MARZO|MAYO|JULIO|AGOSTO|OCTUBRE|DICIEMBRE
M2 = ABRIL|JUNIO|SEPTIEMBRE|NOVIEMBRE
M3 = FEBRERO
Da = D1|D2|D3
D1=1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|
D2=1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30
D3= 1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28
Ao = 2011
rbol De Derivacin
Fecha de prueba 16/02/2011
40
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Analizador Semntico.
Producciones
G={Vt, Vn, S, R}
Vt={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,2011,ENERO
,FEBRERO,MARZO,ABRIL,MAYO,JUNIO,JULIO,AGOSTO,SEPTIEMBRE,OCTUBRE,NOVIEMB
RE,DICIEMBRE }
Vn={Da, Mes, Ao, M1, M2, M3,D1, D2, D3 }
Reglas Gramaticales
S = Da/Mes/Ao | Ao/Mes/Da
Mes = M1|M2|M3
M1 = ENERO|MARZO|MAYO|JULIO|AGOSTO|OCTUBRE|DICIEMBRE
M2 = ABRIL|JUNIO|SEPTIEMBRE|NOVIEMBRE
M3 = FEBRERO
Da = D1|D2|D3
D1 =2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|
D2 =2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30
D3 =1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28
Ao = 2011
Reglas Semnticas
S.Val = Da.Val /Mes.Val /Ao.Val | Ao.Val /Mes.Val /Da.Val
Mes.Val = M1.Val |M2.Val |M3.Val
M1.Val = ENERO |MARZO |MAYO |JULIO |AGOSTO |OCTUBRE |DICIEMBRE
M2.Val = ABRIL |JUNIO |SEPTIEMBRE |NOVIEMBRE
M3.Val = FEBRERO
Da.Val = D1.Val |D2.Val |D3.Val
D1.Val =1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|
D2.Val =1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30
D3.Val =1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28
Ao.Val = 2011
41
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
rbol De Derivacin
42
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Unidad 5
Anlisis Sintctico
Todas las cadenas del lenguaje definido por la gramtica estn formados con smbolos del vocabulario terminal
VT. El vocabulario terminal se define por enumeracin de los smbolos terminales.
El vocabulario no terminal VN es el conjunto de smbolos introducidos como elementos auxiliares para la
definicin de la gramtica, y que no figuran en las sentencias del lenguaje. El vocabulario no terminal se define
por enumeracin de los smbolos no terminales.
La interseccin entre el vocabulario terminal y no terminal es el conjunto vaco:
{VN} {VT} = {}
La unin entre el vocabulario terminal y no terminal es el vocabulario:
43
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
reglas o por medio de un metalenguaje por ejemplo BNF (Backus Naur Form) o EBNF (Extended Backus Naur
Form).
Ejemplo:
1. Sea la gramtica : G = ( VT, VN, S, P) donde VT = {a, b}, VN = {S}, y el conjunto de producciones es:
S ab
S aSb
2. Sea la gramtica G = (VN, VT, S, P) donde:
Vocabulario terminal
Los elementos del vocabulario terminal se representan por:
- Letras minsculas de comienzo del abecedario: a, b, c, . . . , g.
- Operadores tales como: +, - , *, /,. . .
- Caracteres especiales : # , @ , ( , ) , , ; , . . .
- Los dgitos: 0, 1, . . . , 9
- Las palabras reservadas de lenguajes de programacin con letras minsculas y en negrita: if, then, else,. . .
Vocabulario no terminal
Los elementos del vocabulario no terminal se representan por:
- Letras maysculas de comienzo del abecedario: A, B,. . ., G. La nica excepcin suele ser el smbolo inicial
que se representa con S.
- Nombres en minscula, pero encerrados entre parntesis angulares: <expresin>, <operador>,. . .
Vocabulario
Los elementos indiferenciados del vocabulario terminal y no terminal se denotan con:
- Las letras maysculas del final del abecedario: U, V, W, X, Y, Z.
Cadenas terminales
Las cadenas compuestas totalmente por smbolos terminales se representan como:
44
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Cadenas
Las cadenas que contienen smbolos terminales y no terminales indiferenciados se representan por:
- Letras minsculas griegas: , , , , ,. . .
Gramticas de tipo 0
Tambin llamadas gramticas no restringidas o gramticas con estructura de frase.
Las reglas de derivacin son de la forma:
Siendo (VN VT) + (VN VT)*, es decir la nica restriccin es que no puede haber reglas de la forma
donde es la cadena vaca.
Gramticas de tipo 1.
Tambin llamadas gramticas sensibles al contexto (en ingls context sensitive). En ellas las reglas de produccin
son de la forma: A
Siendo A VN; , (VN VT)* y (VN VT)+.
Estas gramticas se llaman sensibles al contexto, pues se puede reemplazar A por siempre que estn en el
contexto .
Propiedades.
Propiedad de no decrecimiento. Las cadenas que se obtienen en cualquier derivacin de una gramtica de tipo 1
son de longitud no decreciente, es decir: | || |
y que se puede enunciar como la longitud de la parte derecha de la produccin es mayor o igual a la de la parte
izquierda.
La demostracin es inmediata. Si se define una produccin de un lenguaje tipo 1 como: A
Siendo (VNVT)+, es decir nunca puede ser la cadena vacia, lo que implica que | | 1 y como | A | como
mnimo vale 1, queda demostrada la propiedad: | A | | |
45
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Gramticas de tipo 2.
Las gramticas de tipo 2 tambin se denominan gramticas de contexto libre o libres de contexto. Sus reglas de
produccin tan slo admiten tener un smbolo no terminal en su parte izquierda, es decir son de la forma: A
Siendo A VN y (VN VT)+.
Si cada regla se representa como un par ordenado (A, ), el conjunto P es un subconjunto del conjunto producto
cartesiano VN ({VN VT})+, es decir: P {N ({VN} {VT})+}
La denominacin contexto libre se debe a que se puede cambiar A por, independientemente del contexto en que
aparezca A.
Gramticas de tipo 3.
Tambin denominadas regulares o gramticas lineales a la derecha comienzan sus reglas de produccin por un
smbolo terminal, que puede ser seguido o no por un smbolo no terminal, es decir son de la forma:
A aB
Aa
Donde A, B VN y VT.
Relacin de inclusin
Los cuatro tipos de gramticas estudiados anteriormente (tipo 0, tipo 1, tipo 2, y tipo 3), cada una de ellas tiene
restricciones ms fuertes que las anteriores. Las gramticas de tipo 0, contienen a todas las dems. Las de tipo 1
contienen a las de tipo 2 y tipo 3. Y por ltimo las de tipo 2 contienen a las de tipo 3. Es decir una gramtica de
tipo 3 es de tipo 2, tipo 1 y tipo 0. Por lo tanto se define una jerarqua de gramticas respecto de la relacin de
inclusin, que se puede representar grficamente mediante el diagrama de la siguiente imagen.
46
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
BNF
Las gramticas libres del contexto se escriben, frecuentemente, utilizando una notacin conocida como BNF
(Backus-Naur Form). BNF es la tcnica ms comn para definir la sintaxis de los lenguajes de programacin.
En esta notacin se deben seguir las siguientes convenciones:
- Los no terminales se escriben entre parntesis angulares < >
- Los terminales se representan con cadenas de caracteres sin parntesis angulares.
- el lado izquierdo de cada regla debe tener nicamente un no terminal (ya que es una gramtica libre del
contexto)
- El smbolo ::=, que se lee se define como o se reescribe como, se utiliza en lugar de
- Earias producciones del tipo:
<A> ::= <B1>
<A> ::= <B2>
.
.
.
<A> ::= <Bn>
47
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
48
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Para cada cadena del lenguaje generado por una gramtica es posible construir (al menos) un rbol de derivacin,
en el cual cada hoja tiene como rtulo uno de los smbolos de la cadena.
Gramticas Ambiguas.
Una gramtica es ambigua si permite construir dos o ms rboles de derivacin distintos para la misma cadena.
Por lo tanto, para demostrar que una gramtica es ambigua lo nico que se necesita es encontrar una cadena que
tenga ms de un rbol de derivacin.
Una gramtica en la cual, para toda cadena generada w, todas las derivaciones de w tienen el mismo rbol de
derivacin es no ambigua.
En algunos casos, dada una gramtica ambigua, se puede encontrar otra gramtica que produzca el mismo
lenguaje pero que no sea ambigua.
Si todas las gramticas independientes del contexto para un lenguaje son ambiguas, se dice que el lenguaje es un
lenguaje independiente del contexto inherentemente ambiguo.
49
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
ii. Tenemos que eliminar las producciones-, aquellas de la forma A para alguna variable A.
iii. Tenemos que eliminar las Produccin unitaria, aquellas de la forma A B para A y B.
, donde w pertenece a T. Observe que X puede ser V o T, y la forma sentencial X puede ser la
primera o la ltima en la derivacin. Si X no es til, decimos que es intil. Evidentemente, la omisin de los
smbolos intiles de una gramtica no cambiar el lenguaje generado, por lo que podemos tambin detectar y
eliminar todos los smbolos intiles.
El mtodo para eliminar los smbolos intiles identifica en primer lugar las dos cosas que un smbolo tiene que
cumplir para resultar til:
1. Decimos que X es generador si para alguna cadena terminal w. Observe que todo smbolo terminal es
generador, ya que w puede ser ese mismo smbolo terminal, el cual se obtiene en cero pasos.
50
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Sea G = (V,T,P,S) una gramtica. Para calcular los smbolos generadores de G, realizamos la siguiente induccin.
BASE. Todo smbolo de T, obviamente, es generador, ya que se genera a s mismo.
PASO INDUCTIVO. Supongamos que existe una produccin A y que todo smbolo de es generador.
Entonces A es generador. Observe que esta regla incluye el caso en que = ; todas las variables que tienen
como cuerpo de una produccin son, por supuesto, generadoras.
Teorema U5.1
DEMOSTRACIN. La demostracin en un sentido, que cada smbolo aadido realmente es un smbolo
generador es una sencilla demostracin por induccin sobre el orden en que se aaden los smbolos al conjunto
de smbolos generadores. Dejamos al lector esta parte de la demostracin.
Para realizar la demostracin del teorema en el otro sentido, suponemos que X es un smbolo generador, por
ejemplo, . Demostramos por induccin sobre la longitud de esta derivacin que X es generador.
BASE. Cero pasos. En este caso, X es un smbolo terminal y X se encuentra en la base.
PASO INDUCTIVO. Si la derivacin precisa n pasos para n > 0, entonces X es una variable. Sea la derivacin
51
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
La estrategia que vamos a seguir es comenzar por descubrir qu variables son anulables. Una variable A es
anulable s . Si A es anulable, entonces cuando A aparece en el cuerpo de una produccin, decimos que B
CAD, A puede (o no) generar . Construimos dos versiones de la produccin, una sin A en el cuerpo (B CD),
que corresponde al caso en que A tendra que haberse empleado para generar , y el otro en el que A ya est
presente en (B CAD). Sin embargo, si utilizamos la versin en la que aparece A, entonces no podemos permitir
que A genere . Esto no es un problema, ya que simplemente eliminaremos todas las producciones cuyo cuerpo
sea , evitando as que alguna variable genere .
Sea G = (V, T, P, S) una GIC. Podemos encontrar todos los smbolos anulables de G mediante el siguiente
algoritmo iterativo. Demostraremos entonces que no existen ms smbolos anulables que los que el algoritmo
encuentra.
PASO INDUCTIVO. Si existe una produccin BC1C2 Ck, donde cada Ci es anulable, entonces B es anulable.
Observe que cada Ci tiene que ser una variable anulable, por lo que slo hay que considerar las producciones
cuyos cuerpos sean slo variables.
Teorema U5.2
En cualquier gramtica G, los nicos smbolos anulables son las variables encontradas por el algoritmo anterior.
DEMOSTRACIN. Para la parte si de la proposicin A es anulable si y slo si el algoritmo identifica A como
anulable, simplemente observamos que, por induccin sobre el orden en que se descubren los smbolos anulables,
cada uno de estos smbolos genera . Para la parte slo-si, podemos llevar a cabo una induccin sobre la longitud
de la derivacin ms corta .
BASE. Un paso. En este caso, A tiene que ser una produccin y A se descubre en el caso base del algoritmo.
PASO INDUCTIVO. Supongamos que en n pasos, donde n > 1. El primer paso ser similar a A
C1C2 , donde cada Ci genera mediante una secuencia de menos de n pasos. De acuerdo con la
hiptesis inductiva, el algoritmo descubre que toda Ci es anulable. Por tanto, mediante el paso inductivo, se
determina que A es anulable gracias a la produccin A C1C2 Ck.
Ahora proporcionamos la construccin de una gramtica sin producciones-. Sea G = (V, T, P, S) una GIC.
Determinamos todos los smbolos anulables de G. Construimos una nueva gramtica G1 = (V, T, P1, S), cuyo
conjunto de producciones P1 se determina como sigue.
Para cada produccin A X1X2 Xk de P, donde k 1, suponemos que m de los k Xi son smbolos anulables.
La nueva gramtica G1 tendr 2m versiones de esta produccin, donde los Xi anulables, en todas las posibles
combinaciones estn presentes o ausentes. Existe una excepcin: si m = k, es decir, todos los smbolos son
52
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
anulables, entonces no incluimos el caso en que todos los Xi estn ausentes. Observe tambin que si una
produccin de la forma A existe en P, no incluimos esta produccin en P1.
Teorema U5.3
Si la gramticaG1 se construye a partir de G mediante la construccin anterior para eliminar las producciones-,
entonces L (G1) = L (G) { }.
DEMOSTRACIN. Tenemos que demostrar que si w , entonces w pertenece a L(G1) si y slo si w pertenece
L(G). Como suele suceder, es ms fcil demostrar una proposicin ms general. En este caso, tenemos que
ocuparnos de las cadenas terminales que genera cada variable, aunque slo nos interesa saber qu genera el
smbolo inicial S. Luego tenemos que demostrar que:
Parte Slo-si: Supongamos que . Entonces w , porque G1 no tiene producciones-. Tenemos que
BASE. Un paso. En este caso, existe una produccin A w en G1. La construccin de G1 nos dice que existe
alguna produccin A de G, tal que es w, con cero o ms variables anulables adicionales intercaladas. Luego
en , donde los pasos que siguen al primero, si existen, generan a partir de las variables que
aparecen en .
PASO INDUCTIVO. Supongamos que la derivacin emplea n > 1 pasos. Entonces la derivacin ser similar a
descomponer w en w1w2 wk, donde para i=1, 2,. . ., k. Si Xi es un smbolo terminal, entonces wi=Xi,
y si Xi es una variable, entonces la derivacin emplea menos de n pasos. Por la hiptesis inductiva,
53
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
El primer paso consiste en aplicar la produccin A Y1Y2 Yk que sabemos que existe en G. El siguiente grupo
de pasos representa la derivacin de a partir de cada una de las Yj que no es una de las Xi. El grupo final de pasos
representa las derivaciones de las wi a partir de las Xi, que sabemos que existen por la hiptesis inductiva.
Parte Si: Supongamos que . Demostramos por induccin sobre la longitud n de la derivacin,
que .
BASE. Un paso. En este caso, A w es una produccin de G. Puesto que w , esta produccin tambin es una
produccin de
PASO INDUCTIVO. Supongamos que la derivacin emplea n > 1 pasos. Entonces la derivacin es similar a
. Podemos descomponer w = w1w2 wm, tal que para i = 1,2,. . . ,m. Sean X1, X2,
. . . ,Xk aquellas Yj, en orden, tales que wj . Luego k 1, ya que w . Por tanto, AX1X2 Xk es una
produccin de G1.
Podemos afirmar que , ya que las nicas Yj que no estn presentes entre las X se han utilizado
para derivar , y por tanto no contribuyen a la derivacin de w. Dado que cada una de las derivaciones
emplea menos de n pasos, podemos aplicar la hiptesis inductiva y concluir que, si wj , entonces .
Por tanto, .
Ahora completamos la demostracin como sigue. Sabemos que w pertenece a L (G1) si y slo si . Sea
54
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Sin embargo, las producciones unitarias pueden complicar determinadas demostraciones e introducir tambin
pasos adicionales en las derivaciones que tcnicamente no tienen por qu incluir. Por ejemplo, podemos expandir
la T de la produccin E T de dos formas posibles, reemplazndola por las dos producciones E F | T F.
Este cambio no elimina las producciones unitarias, porque hemos introducido la produccin unitaria E F que
no formaba parte anteriormente de la gramtica. Adems, la expansin de E F mediante las dos producciones
de F nos proporciona E I | (E) | T F. Todava nos queda una produccin unitaria, que es E I. Pero si
expandimos an ms esta I en las seis formas posibles, obtenemos:
E a | b | Ia | Ib | I0 | I1 | (E) | T F | E +T
Ahora ha desaparecido la produccin unitaria de E. Observe que E a no es una produccin unitaria, ya que el
nico smbolo del cuerpo es un smbolo terminal, en lugar de la variable que se requiere en las producciones
unitarias.
La tcnica anterior (expansin de las producciones unitarias hasta que desaparezcan) suele funcionar. Sin
embargo, puede fallar si existe un ciclo de producciones unitarias, como A B, B C y C A. La tcnica que
est garantizada para funcionar implica determinar en primer lugar todos aquellos pares de variables A y B tales
que , utilizando slo una secuencia de producciones unitarias. Observe que es posible que sea
verdadero incluso aunque no haya implicada ninguna produccin unitaria. Por ejemplo, podramos tener las
producciones A BC y C .
Una vez que hayamos determinado dichos pares, podemos reemplazar cualquier secuencia de pasos de derivacin
en la que AB1B2 Bn por una produccin que utilice directamente la produccin no unitaria Bn
a partir de A; es decir, A . Comenzamos viendo la construccin inductiva de los pares (A, B) tales que
empleando slo producciones unitarias. Denominamos a este tipo de pares par unitario.
BASE. (A, A) es un par unitario para cualquier variable A. Es decir, en cero pasos.
PASO INDUCTIVO. Suponga que hemos determinado que (A, B) es un par unitario y que B C es una
produccin, donde C es una variable. Luego (A, C) es un par unitario.
Teorema U5.4
El algoritmo anterior determina exactamente los pares unitarios para una GIC G.
DEMOSTRACIN. Uno de los sentidos de la demostracin se realiza por induccin sobre el orden en que se
descubren los pares: si se determina que (A, B) es un par unitario, entonces utilizando slo producciones
unitarias. Dejamos al lector esta parte de la demostracin.
55
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Para el otro sentido, suponemos que usando slo producciones unitarias. Podemos demostrar por
induccin sobre la longitud de la derivacin que se encontrar el par (A, B).
BASE. Cero pasos. En este caso, A = B y el par (A, B) se aade a la base del algoritmo.
PASO INDUCTIVO. Supongamos que empleando n pasos para n > 0, siendo cada paso la aplicacin de
una produccin unitaria. Entonces la derivacin ser similar a:
La derivacin emplea n1 pasos, por lo que segn la hiptesis inductiva, descubrimos el par (A, C).
Entonces la parte inductiva del algoritmo combina el par (A, C) con la produccin C B para inferir el par (A,
B).
Para eliminar las producciones unitarias, hacemos lo siguiente. Dada una GIC G = (V, T, P, S), construimos la
GIC G1 = (V, T, P1, S):
1. Determinamos todos los pares unitarios de G.
2. Para cada par unitario (A, B), aadimos a P1 todas las producciones A , donde B es una produccin
no unitaria de P. Observe que A = B es posible; de esa forma, P1 contiene todas las producciones no unitarias
de P.
Teorema U5.5
Si la gramtica G1 se construye a partir de la gramtica G mediante el algoritmo descrito anteriormente para
eliminar las producciones unitarias, entonces L (G1) = L (G).
DEMOSTRACIN. Demostramos que w pertenece a L (G) si y slo si w pertenece a L (G1).
Parte S. Supongamos que . Dado que toda produccin de G1 es equivalente a una secuencia de cero o
ms producciones unitarias de G seguidas por una produccin no unitaria de G, sabemos que implica
. Es decir, todo paso de una derivacin en G1 puede reemplazarse por uno o ms pasos de derivacin en
56
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
que reflejan una o ms producciones unitarias seguidas de una produccin no unitaria. Por tanto, .
Teorema U5.6
Si G es unaGIC que genera un lenguaje que contiene al menos una cadena distinta de , entonces existe otra GIC
G1 tal que L(G1) = L(G){ }, y G1 no tiene producciones- , ni producciones unitarias ni smbolos intiles.
DEMOSTRACIN. Comenzamos eliminando las producciones- aplicando el mtodo descrito anteriormente. Si
a continuacin eliminamos las producciones unitarias mediante el mtodo explicado en la Eliminacin de las
producciones unitarias, no introduciremos ninguna produccin-, ya que cada uno de los cuerpos de las nuevas
producciones es idntico a algn cuerpo de las antiguas producciones. Por ltimo, eliminamos los smbolos
intiles mediante el mtodo dado en Formas normales para las gramticas independientes del contexto. Como
con esta transformacin slo se eliminan producciones y smbolos y nunca se introduce una produccin nueva, la
gramtica resultante seguir estando desprovista de producciones- y de producciones unitarias.
57
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
2. Descomponer los cuerpos de longitud 3 o superior en una cascada de producciones, teniendo cada una de
ellas un cuerpo formado slo por dos variables.
La construccin para (a) es la siguiente: para todo smbolo a que aparezca en un cuerpo de longitud 2 o superior,
creamos una nueva variable, por ejemplo A. Esta variable slo tiene una produccin, A a. Ahora empleamos
A en lugar de a en cualquier lugar que aparezca esta ltima dentro de un cuerpo de longitud 2 o superior. En este
punto, toda produccin tendr un cuerpo formado por un slo smbolo terminal o por al menos dos variables y
ningn smbolo terminal.
Para el paso (b), tenemos que descomponer dichas producciones AB1B2 Bk, para k 3, en un grupo de
producciones con dos variables en cada cuerpo. Introducimos k2 nuevas variables, C1, C2,. . ., Ck2. La
produccin original se reemplaza por las k1 producciones:
58
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
3. Para las producciones que tengan varias alternativas, el grafo resultante ser del tipo:
4. Para las producciones que contengan una serie concatenada de smbolos terminales y/o no terminales,
bastara simplemente con conectar simplemente a continuacin del otro grafo de cada smbolo.
5. Para las producciones que tengan cero, una o ms repeticiones de un smbolo la representacin ser:
59
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Con los grafos o diagramas sintcticos somos capaces de representar la sintaxis de un lenguaje y podemos
utilizarlos en lugar del conjunto de producciones en BNF. Es ms, los diagramas sintcticos son mucho ms claros
y concisos, facilitando la comprensin del lenguaje, dada su mejor asimilacin. Tiene un inconveniente, y es la
dificultad de representacin.
60
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Una gramtica no se puede utilizar para la realizacin de un compilador por que no especifica la estructura
sintctica del lenguaje.
Aqu, otra representa a cualquier otra instruccin. De acuerdo con esta gramtica, la siguiente instruccin
condicional compuesta:
S aS aa S Sa aa
61
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Proceso.
- No existe un algoritmo que nos indique si una GIC es ambigua.
- Existen LIC que slo tienen GIC ambiguas: inherentemente ambiguos.
- Para las construcciones de los lenguajes de programacin comunes existen tcnicas para la eliminacin de la
ambigedad.
- Ejemplo:
Causas de ambigedad en la siguiente gramtica.
No se respeta la precedencia de operadores
Una secuencia de operadores idnticos puede agruparse desde la izquierda y desde la derecha. Lo
convencional es agrupar desde la izquierda.
62
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
63
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
escogido es el adecuado y si lo es avanza el siguiente token, si no lo es emite mensaje de error y aplica una
estrategia de recuperacin que puede consistir en deshacer la operacin, retroceder y llamar a otro procedimiento.
64
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Paso 2: E T + E Paso 6: E T
Paso 3: T nmero
Paso 7: T nmero
Paso 4: E T * E
Dado que la gramtica es ambigua, estos pasos pueden ser aplicados de diferente forma. En este caso, la
ambigedad, que se resuelve factorizando, no hubiera cambiado el rbol de anlisis sintctico.
Supuestos iniciales Gramtica ambigua
Cadena de entrada = nmero + nmero * La gramtica es ambigua, puesto que las tres
nmero producciones de la gramtica comienzan por T.
Gramtica:
ET|T+E|T*E
T identificador | nmero
Gramtica ambigua.
Si estuviramos usando un mtodo recursivo (o con retroceso), puesto que es uno de
los tipos de anlisis sintctico descendente (y hubiramos aplicado la primera
produccin como paso 2): E T * E, al derivar el terminal a partir de T, T numero,
e l rbol quedara como se puede comprobar en la imagen y, con la produccin que se
ha aplicado, no llegaramos a reconocer la sentencia.
Por tanto se hubiera tenido que retroceder para aplicar la otra produccin vlida: E
T + E. Por eso estos mtodos son tan ineficientes mientras que los mtodos LL(1) son
65
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
capaces de detectar la siguiente produccin a aplicar basndose en una tabla y viendo el carcter de la entrada que
toca reconocer en cada momento sin necesidad de recursividad.
A este mtodo se le conoce tambin como anlisis sintctico por desplazamiento y reduccin (Aho, 1986).
Hay dos tipos, pero puesto que los analizadores por precedencia de operador se dedican a unas gramticas muy
restringidas, como las gramticas de operador, nos vamos a centrar en los analizadores LR que son los ms
extendidos por la amplitud de gramticas que manejan. Los analizadores LR se subdividen a su vez en los
siguientes tipos:
LR(1) Es el ms costoso de implementar, puesto que incorpora el clculo de los smbolos de lookahead a
cada estado del AFD. Tambin es el que ms gramticas reconoce.
LALR Se trata de conseguir los beneficios del mtodo LR (1) pero con el coste del mtodo SLR.
El mtodo ptimo, si soporta la gramtica, es el LALR, debido a que necesita el nmero mnimo de estados lo
que lo hace eficiente a la hora de reconocer una cadena de entrada.
64
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
importante destacar que si una gramtica no tiene ambigedad, entonces cada forma de frase derecha de la
gramtica solo tiene un mango. Supongamos la gramtica de este enlace.
Cmo se realizara el proceso de reconocimiento por pasos? El mtodo LR nos indica que hay que leer la cadena
de entrada de izquierda a derecha y derivar por el smbolo que est ms a la derecha, una vez se ha reconocido el
mango.
65
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Gramtica
Mango Supongamos una gramtica en la que la cadena de
En ingls se define como handle. Hay traducciones en entrada es: nm * nm + nm:
las que el autor llama a este concepto pivote. ET+E|T
T num * T | num
66
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Podemos observar que nos sobran los nodos intermedios donde hay no terminales, as como terminales como los
parntesis. Seguimos teniendo en cuenta la estructura, pero obtenemos un rbol ms fcil de usar y de implementar
utilizando, en el caso de las operaciones, estructuras que tengan la operacin, el operando izquierdo y el operando
derecho.
67
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
En otras palabras, el operador FIRST k asocia a cada forma sentencial los primeros k smbolos de cualquier forma
terminal alcanzable desde mediante derivaciones masa a izquierda".
1. Si X es terminal, entonces FIRST(X) es {X}.
2. Si X es no terminal y existe la produccin X , entonces aadir a FIRST(X).
3. Si X es no terminal y X Y1 Y2.... Yk
Es una produccin entonces, para todo i (con i variando desde 1 hasta k) tal que Y1, Y2 , ..., Yi-1 sean todos no
terminales y FIRST(Y1), FIRST(Y2), ..., FIRST(Yi-1) contengan todos , se aaden todos los smbolos no nulos
de FIRST(Yi ) a FIRST(X). Finalmente, si est en FIRST (Yj) para j = 1, 2,..., k (o sea, en todos), entonces se
aade a FIRST(X). Dicho de otra forma, lo anterior significa que todos los elementos de FIRST (Y1), excepto
, pertenecen tambin a FIRST(X). Si Y1 no deriva , entonces ya ha terminado el clculo de FIRST(X), pero en
caso contrario, es decir, si Y1= * => , entonces todos los elementos de FIRST (Y2) excepto pertenecen tambin
a FIRST(X), y as sucesivamente. Finalmente, si todos los Yi derivan , entonces se aade a FIRST(X).
Ejemplo:
Construir una tabla de anlisis sintctico.
Para cada terminal a del First (). Adase A en la posicin M[A, a].
68
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
FOLLOW: Se define FOLLOW(A), para l no terminal A, como el conjunto de terminales a que pueden aparecer
inmediatamente a la derecha de A en alguna forma sentencia, es decir, el conjunto de terminales a tal que haya
una derivacin de la forma S= * => Aa para algn y . Si A puede ser el smbolo de ms a la derecha en
alguna forma sentencia, entonces $ est en FOLLOW(A).
Para calcular FOLLOW(A) para un smbolo no terminal A, se aplican las siguientes reglas hasta que no se pueda
aadir nada ms al conjunto FOLLOW.
1. $ est en FOLLOW(S), siendo S el axioma de G.
2. Si existe una produccin A B, entonces todo lo que est en FIRST (), excepto , est en FOLLOW
(B).
3. Si existe la produccin A B y FIRST () contiene (es decir, = * =>), o bien si existe una produccin
A B, entonces todo lo que est en FOLLOW(A) est en FOLLOW (B).
Con las mismas notaciones anteriores, para cada forma sentencia (V U )* definiremos la funcin FOLLOW
G GK () del modo siguiente.
De nuevo nos ocuparemos solamente de FOLLOW: = FOLLOW1. Obsrvese que FOLLOW k () * y que
para cada x FOLLOW (), Ixl k. Obsrvese que para cada variable A V, FOLLOW(A) son todos los
smbolos terminales que pueden aparecer a la derecha de A en alguna forma sentencia de la gramtica.
Ejemplo:
69
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Ejemplo:
70
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Recuperacin a nivel de frase: Intenta recuperar el error una vez descubierto. En el caso anterior, por
ejemplo, podra haber sido lo suficientemente inteligente como para insertar el token ; . Hay que tener
cuidado con este mtodo, pues puede dar lugar a recuperaciones infinitas.
Reglas de produccin adicionales para el control de errores: La gramtica se puede aumentar con las reglas
que reconocen los errores ms comunes. En el caso anterior, se podra haber puesto algo como:
71
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
YACC.
Funcionamiento.
A partir de un fichero fuente en yacc, se genera un fichero fuente en C que contiene el analizador sintctico. Sin
embargo, un analizador sintctico de yacc no puede funcionar por s solo, sino que necesita un analizador lxico
externo para funcionar. Dicho de otra manera, el fuente en C que genera yacc contiene llamadas a una funcin
yylex() que debe estar definida y debe devolver el tipo de lexema encontrado. Adems, es necesario incorporar
tambin una funcin yyerror(), que ser invocada cuando el analizador sintctico encuentre un smbolo que no
encaja en la gramtica.
El Lenguaje Yacc.
Esquema general. Un programa fuente de Yacc se parece bastante a uno de lex. La diferencia principal est en la
seccin de reglas, que en vez de expresiones regulares contiene las reglas de la gramtica:
De estas tres secciones, slo la segunda es obligatoria, y no debe estar vaca (ntese que en lex, las tres
secciones pueden estar vacas). Esto quiere decir que el mnimo programa en yacc es:
%%
regla gramatical accin en C
72
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
La seccin de declaraciones puede incluir varias cosas, tal y como ocurra en lex, pero ahora su funcin
principal no es definir expresiones regulares, sino declarar los smbolos terminales de la gramtica mediante
la directriz %token. Todo lo que no sea un terminal, ser considerado un smbolo no terminal, y por tanto
debe haber una regla para l:
%token IF,ELSE,LLAVE_AB,LLAVE_CE,IDENT
La seccin de reglas contiene la gramtica en s. Componentes es una combinacin de terminales y no
terminales que describe al no terminal de la izquierda de la regla:
no_terminal: componentes {acciones en C}
La seccin de rutinas tiene la misma funcin que la de lex, pero yacc (dependiendo de su variante) no define
por defecto las funciones main(), yylex() e yyerror(), as que hay que incluirlas aqu, o bien en otro fichero
que se enlazar en la fase final de la compilacin.
Yacc genera una funcin llamada yyparse() que contiene el analizador sintctico. Esta funcin se comporta como
una mquina de estados cuya misin es intentar reducir todo el fichero de entrada al smbolo inicial de la gramtica
(el primero que se haya definido). Si yacc lo consigue, el analizador sintctico volver sin error, y en caso
contrario, se invocar a la funcin yyerror(), que debe estar definida tambin en algn sitio.
Seccin De Reglas
Una regla de yacc es parecida a una de lex, pero en vez de un patrn regular, especifica una regla de la gramtica.
Las reglas deben estar dadas de forma que la parte izquierda conste de un nico smbolo no terminal, y la parte
derecha indique la combinacin de terminales y no terminales de que puede estar compuesto. Adems, toda regla
debe incluir una accin en C que se ejecutar en cuanto yacc consiga encontrar los componentes del smbolo
resultado:
smbolo_result: componentes accin_en_C
El smbolo resultado debe estar situado en la primera posicin de la lnea; es decir, que no puede haber
espacios antes del smbolo resultado.
Los componentes son una combinacin de terminales y no terminales separados por espacios en blanco.
La accin puede ser una sola sentencia de C, o una sentencia compuesta, encerrada entre llaves {}.
73
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Unidad 6
Mquinas de Turing
6.1 DEFINICIN FORMAL MT
La Mquina de Turing (MT) fue introducida por Alan M. Turing en
1936, y puede considerarse como un modelo abstracto que formaliza
la idea Intuitiva de algoritmo.
(MT) Es un modelo computacional que realiza una lectura/escritura de
manera automtica sobre una entrada llamada cinta, generando una
salida en esta misma. Este modelo est conformado por un alfabeto de
entrada y uno de salida, un smbolo especial llamado blanco
(normalmente b, o 0), un conjunto de estados finitos y un conjunto
de transiciones entre dichos estados.
Su funcionamiento se basa en una funcin de transicin, que recibe un
estado inicial y una cadena de caracteres (la cinta, la cual es finita por
la izquierda) pertenecientes al alfabeto de entrada. Luego va leyendo
una celda de la cinta, borrando el smbolo, escribir el nuevo smbolo
perteneciente al alfabeto de salida y finalmente avanza a la izquierda o
a la derecha (solo una celda a la vez), repitiendo esto segn se indique
en la funcin de transicin, para finalmente detenerse en un estado final
o de aceptacin, representando as la salida.
Una mquina de Turing con una sola cinta puede ser definida como una 7-tupla;
Donde:
Es un conjunto finito de estados.
Es un conjunto finito de smbolos distinto del espacio en blanco, denominado alfabeto de mquina o de entrada.
Es un conjunto finito de smbolos de cinta, denominado alfabeto de cinta.
Es el estado inicial.
Es un smbolo denominado blanco, y es el nico smbolo que se puede repetir un nmero infinito de veces.
Es el conjunto de estados finales de aceptacin.
74
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Su potencia es, por tanto, superior a otros tipos de autmatas, como el autmata finito, o el autmata con pila, o
igual a otros modelos con la misma potencia computacional. Las mquinas de Turing se pueden representar
mediante grafos particulares, tambin llamados diagramas de estados finitos, de la siguiente manera:
Esta Mquina de Turing est definido sobre el alfabeto = {a, b, c}, posee el conjunto de estados Q = {qo, q1,
q2, q3, q4, q5, q6}, con las transiciones que se pueden ver. Su estado inicial es q1 y el estado final es q0, el
lenguaje de salida = {X, Y, Z, B} siendo B el smbolo denominado Blanco.
Esta Mquina reconoce la expresin regular de la forma {an bn cn,n>=0} .
Los estados se representan como vrtices, etiquetados con su nombre en el interior.
Una transicin desde un estado a otro, se representa mediante una arista dirigida que une a estos vrtices,
y esta rotulada por smbolo que lee el cabezal/smbolo que escribir el cabezal, movimiento del cabezal.
El estado inicial se caracteriza por tener una arista que llega a l, proveniente de ningn otro vrtice.
El o los estados finales se representan mediante vrtices que estn encerrados a su vez por otra
circunferencia.
75
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
La caja es tan fina que solo el trozo de cinta que ocupa un bit (0 1) est en su interior. La mquina tiene una
serie de estados internos finitos que tambin se pueden numerar en binario. Para llevar a cabo algn algoritmo, la
mquina se inicializa en algn estado interno arbitrario. A continuacin, se pone en marcha y la mquina lee el
bit que se encuentra en ese momento en su interior y ejecuta alguna operacin con ese bit (lo cambia o no,
dependiendo de su estado interno). Despus se mueve hacia la derecha o hacia la izquierda, y vuelve a procesar
el siguiente bit de la misma manera. Al final se para, dejando el resultado al lado izquierdo por ejemplo.
11011iUna instruccin tpica podra ser: 01
76
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Los smbolos que definen el estado del dispositivo no tienen por qu 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.
Ejemplo Definimos una mquina de Turing sobre el alfabeto {0,1}, donde 0 representa el smbolo blanco. La
mquina comenzar su proceso situada sobre un smbolo 1 de una serie.
La mquina de Turing copiar el nmero de smbolos 1 que encuentre hasta el primer blanco detrs de dicho
smbolo blanco. Es decir, situada sobre el 1 situado en el extremo izquierdo, doblar el nmero de smbolos 1,
con un 0 en medio. As, si tenemos la entrada 111 devolver 1110111, con 1111 devolver 111101111,
y sucesivamente.
El conjunto de estados es {s1, s2, s3, s4, s5} y el estado inicial es s1.
La tabla que describe la funcin de transicin es la siguiente:
El funcionamiento de una computacin de esta mquina se puede mostrar con el siguiente ejemplo (en negrita se
resalta la posicin de la cabeza lectora/escritora):
77
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Vemos que esta mquina no hace gran cosa. Sin embargo, una mquina de Turing puede hacer cosas tiles, tales
como suma r dos nmeros, multiplicarlos, copiarlos, etc. Disponiendo de una mquina con el suficiente nmero
de estados, podramos hacer con ella cualquier operacin que un ordenador normal pudiese realizar.
Las mquinas de Turing plantean una deduccin bastante curiosa: dado que en ellas se puede realizar cualquier
trabajo computable, es posible programarlas para que simulen el comportamiento de un potente ordenador. Y
como una mquina de Turing puede ser codificada en cualquier ordenador, por pequeo que sea, sera posible (si
disponemos de memoria suficiente, claro) emular en nuestro ordenador de casa una mquina de Turing que simule
un superordenador. Esto significa que todos los ordenadores pueden realizar exactamente el mismo tipo de tareas,
y que los clculos que pueda realizar el ms grande los puede llevar a cabo tambin el ms pequeo. La nica
diferencia sera, obviamente, la velocidad.
78
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
79
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Un sistema Turing completo es aquel que puede simular el comportamiento de una mquina de Turing. Es
evidente que salvando los problemas de memoria, los ordenadores modernos y los lenguajes de programacin de
uso general, son sistemas de Turing completos. Tambin es evidente, que con independencia de su forma concreta,
cualquier dispositivo que se comporte como un sistema de Turing completo, puede en principio ejecutar cualquier
clculo que realice cualquier computador.
Nota: Observe que la anterior afirmacin no menciona para nada la posible dificultad de escribir el programa o
del tiempo que pueda emplear en realizar el clculo (cualquier clculo que pueda hacer un ordenador puede
tericamente efectuarse con papel y lpiz).
Una mquina de Turing es un autmata que se mueve sobre una secuencia lineal de datos. En cada instante la
mquina puede leer un solo dato de la secuencia (generalmente un carcter) y realiza ciertas acciones en base a
una tabla que tiene en cuenta su "estado" actual (interno) y el ltimo dato ledo. Entre las acciones est la
posibilidad de escribir nuevos datos en la secuencia; recorrer la secuencia en ambos sentidos y cambiar de "estado"
dentro de un conjunto finito de estados posibles.
80
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
Una cadena A^*, es aceptada por una MT, si comienza en el estado e0, con la cabeza de lectura/escritura en
el smbolo ms a la izquierda, luego de leer toda la cadena , llega a un estado e_fF. El lenguaje aceptado por
MT, es el conjunto de todas las cadenas que son aceptadas por MT:
Otras cadenas tambin aceptadas por esta MT son 11110000, 10, 11111110000000.
Lenguajes regulares: las gramticas (de tipo 3) formales definen un lenguaje describiendo como se pueden
generar las cadenas del lenguaje Las gramticas regulares (aquellos reconocidos por un autmata finito). Son
81
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
las gramticas ms restrictivas. El lado derecho de una produccin debe contener un smbolo Terminal y como
mximo un smbolo no Terminal.
Lenguajes Libres de contexto: Estas gramticas conocidas tambin como gramticas de tipo 2 o gramticas
independientes del contexto, son las que generan los lenguajes libres o independientes del contexto. Los lenguajes
libres del contexto son aquellos que pueden ser reconocidos por un autmata de pila determinstico o no
determinstico. Como toda gramtica se definen mediante una cudrupla G=N, T, S, P), siendo N un conjunto
finito de smbolos no terminales; T un conjunto de smbolos terminales: P un conjunto finito de producciones; S
es el smbolo distinguido o axioma.
Ejemplo1
Aqu se describe una MT M2 que reconoce el lenguaje consistente de todas las cadenas de 0s cuya longitud es
una potencia de 2. La MT decide el lenguaje A = {02n | n 0}.
M2 = Sobre la cadena de entrada w:
1. Recorrer la cinta de izquierda a derecha, marcando un cero si y otro no.
2. Si en el paso 1 la cinta contiene slo un cero, aceptar.
3. Si en el paso 1 la cinta contiene ms de un cero y la cantidad de ceros es impar, rechazar.
4. Regresar la cabeza de la cinta hasta la posicin ms a la izquierda.
5. Ir al paso 1.
Q = { q1, q2, q3, q4, q5, qaceptar, qrechazar }
={0}
= { 0, x, }
se describe en el diagrama de estados de la figura 4.4
Los estados iniciales de aceptacin y rechazo son q1, qaceptar, qrechazar, respectivamente
82
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
En la imagen anterior la etiqueta 0 , R aparece en la transicin de q1 a q2. Esto significa que, cuando M2 se
encuentra en el estado q1 con la cabeza de la cinta leyendo un 0, la mquina va al estado q2, escribe y mueve
la cabeza de la cinta a la derecha (R). En otras palabras (q1, 0) = (q2, , R). Para mayor claridad se usa 0 R
en la transicin de q3 a q4, lo cual significa que M2 se mueve a la derecha cuando lee un 0 en el estado q3, pero
no altera la cinta, (q3, 0) = (q4, 0, R).
A continuacin podemos ver una corrida de M2 sobre la cadena de entrada 0000.
83
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
84
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
CONCLUSIN
Un lenguaje es el conjunto de todas las sentencias que pueden ser generadas a partir de las reglas de
rescritura de la gramtica.
Los lenguajes que son generados dependen del tipo de gramtica utilizada. La del tipo 0 genera los
recursivamente enumerables, tipo 1: sensibles al contexto, tipo 2: independientes del contexto y el tipo 3
generan los lenguajes regulares. La relacin entre los lenguajes es de inclusin no estricta:
Un autmata es una maquina terica capaz de realizar las computaciones necesarias para reconocer los
patrones de un determinado lenguaje y as poder determinar si la cadena pertenece o podra pertenecer a
un lenguaje o no.
85
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
86
Unidad: INSTITUTO TECNOLGICO SUPERIOR
DE LA CHOAPAS VERACRUZ. Grupo: 5C Fecha: 11/12/17
1-6
Materia: Lenguajes y Autmatas I. Docente: Joel Carrera Herrera
Alumno: Vianell Guadalupe Almazn Alor. Clave de Asignatura: SCD-1015
____
BIBLIOGRAFA
Bastidas, C. (s.f.). Ejemplo de analizador lxico sintctico y semntico. Obtenido de
https://gramaticasformales.wordpress.com/category/ejemplo-de-analizador-lexico-sintactico-y-
semantico/
Edgar Ruiz L, E. R. (s.f.). CONVERSIN DE UN AFN A UN AFD. Obtenido de INGENIERA DE
SISTEMAS E INFORMTICA:
http://sisbib.unmsm.edu.pe/bibvirtualdata/publicaciones/indata/Vol6_n1/pdf/conversion.pdf
John E. Hopcroft, R. M. (2007). Introduccin a la teora de autmatas, lenguajes y computacin. Madrid:
PEARSON EDUCACIN S.A., Addison Wesley.
Lenguajes y Automatas I. (17 de Junio de 2016). Obtenido de http://lenguajesyautomatas1unidad6-
4.blogspot.mx/2016/06/diagramas-de-sintaxis.html
Lovelle, J. M. (Noviembre de 2011). Catedrtico de E.U. de Lenguajes y Sistemas Informticos. Obtenido
de Departamento de Informtica. Universidad de Oviedo:
http://di002.edv.uniovi.es/~cueva/publicaciones/AUTOMATA.pdf
Mejia, A. V. (23 de 10 de 2016). in SlideShare. Obtenido de Automatas Finitos:
https://es.slideshare.net/AnelVeronicaUchihaLP/automatas-finitos-70286440?from_action=save
PROGRAMACION DE SISTEMAS. (s.f.). Obtenido de Traductor y su estructura.: http://ing-radjchv-
pmz-estl.blogspot.mx/2009/09/14-traductor-y-su-estructura.html
Universiddad. (s.f.). ANLISIS SINTCTICO. Obtenido de
http://www.cartagena99.com/recursos/alumnos/apuntes/ININF2_M4_U3_T2.pdf
UV. (s.f.). uUV. Obtenido de https://www.uv.mx/ncruz/documents/LibroAlumnos.pdf
87