0% encontró este documento útil (0 votos)
107 vistas7 páginas

Gramáticas y Autómatas Finito

El documento presenta dos problemas relacionados con la obtención de gramáticas regulares en formato estándar a partir de conjuntos de producciones dadas. En el primer problema, se aplican los pasos necesarios para obtener la gramática regular equivalente. En el segundo problema, se realizan los mismos pasos y además se convierte la gramática de izquierda a derecha.

Cargado por

Cris Tian
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
107 vistas7 páginas

Gramáticas y Autómatas Finito

El documento presenta dos problemas relacionados con la obtención de gramáticas regulares en formato estándar a partir de conjuntos de producciones dadas. En el primer problema, se aplican los pasos necesarios para obtener la gramática regular equivalente. En el segundo problema, se realizan los mismos pasos y además se convierte la gramática de izquierda a derecha.

Cargado por

Cris Tian
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD TECNOLÓGICA NACIONAL

Facultad Regional Tucumán


TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes
Ciclo 2021

UNIDAD Nº2: Lenguajes-Gramáticas Regulares y Autómatas Finitos.


Gramáticas Regulares (GR), Lenguajes Regulares (LR), Expresiones Regulares (ER), Autómatas
Finitos Deterministas y No-Deterministas (AFD y AFND). Máquinas de Estados Finitos (MEF).
Analizador Léxico (Scanner).

1. Problemas a resolver en clase

1.1. Obtener una GR en formato estándar para el siguiente conjunto de producciones. En el


caso del punto b), pasar el FNC3 de regular izquierda a derecha. Simular con JFLAP.

a) P: S → abX | bbY | aaW | λ


T → baS | abY
V → aS | bbX | baY
X → abT | bbbS | aaZ
Y → T | aaX | λ
Z → abZ | bbZ

Aplicando el mecanismo para obtener una gramática regular en formato estándar.

1º paso: eliminar las reglas innecesarias

S → aaW

Esta regla es innecesaria, porque el no terminal W es inútil, ya que no puede derivar a nin-
guna secuencia de terminales, debido a que no hay reglas con W a la izquierda.

V → aS | bbX | baY

Estas reglas son innecesarias, porque el no terminal V es inútil, ya que no existe ninguna
sucesión de reglas a partir del axioma que permita llegar a V, debido a que V no está en la
parte derecha de ninguna regla.

Z → abZ | bbZ
X → aaZ

El no terminal Z es inútil porque nunca derivará secuencias de terminales solos, ya que con-
tiene solo reglas recursivas sin ningún caso base, lo que lleva a un ciclo infinito. Por lo tanto
todas las reglas que contienen Z son innecesarias.

Entonces las producciones quedan:


P: S → abX | bbY | λ
T → baS | abY
X → abT | bbbS
Y → T | aaX | λ

Página 1/7
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes
Ciclo 2021

2º paso: eliminar el axioma S de la derecha, si es que λ  L, es decir S→* λ y si el


axioma S aparece a la derecha de alguna producción

Se agrega un nuevo axioma S1, que obviamente no aparece en la parte derecha de ninguna
producción, y las reglas quedan:
S1→ S | λ
S → abX | bbY | λ
T → baS | abY
X → abT | bbbS
Y → T | aaX | λ

Donde la regla S1→ λ, será la excepción para generar la palabra vacía y no se eliminará en
el paso 4.

3º paso: eliminar reglas de redenominación N1→ N2

Para eliminar Y → T, se agregan las reglas: Y → baS | abY | aaX | λ

Para eliminar S1→ S se agregan las reglas: S1→ abX | bbY | λ

Las producciones quedan:


S1→ abX | bbY | λ
S → abX | bbY | λ
T → baS | abY
X → abT | bbbS
Y → baS | abY | aaX | λ

4º paso: eliminar reglas de borrado

Para eliminar “S → λ” y “Y → λ”, se agregan las nuevas producciones que surgen de reem-
plazar S y Y por λ en las partes derechas

S1→ abX | bbY | λ | bb


S → abX | bbY | bb
T → baS | abY | ba | ab
X → abT | bbbS | bbb
Y → baS | abY | aaX | ba | ab

5º paso: Realizar las sustituciones necesarias para reducir a uno la cantidad de termi-
nales en cada regla.
S1→ aC | bD | bB | λ C → bX
S → aC | bD | bB D → bY
T → bE | aD | bA | aB E → aS
X → aF | bG | bH F → bT
Y → bE | aD | aI| bA | aB G → bJ
A→a J → bS
B→b H → bB
I →aX
Página 2/7
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes
Ciclo 2021

b)
P: S → Xa | Tabb | Y
T → Tba | Wab | Xaa
V → Tbb | Xabb | Yb
X → Ya | Xaba | λ
Y→T|λ
Z → Zab | Ybb | aaa

Aplicando el mecanismo para obtener una gramática regular en formato estándar.

1º paso: eliminar las reglas innecesarias

T → Wab (no se puede continuar)

V → Tbb | Xabb | Yb (no se pueden aplicar nunca)

Z → Zab | Ybb | aaa (no se pueden aplicar nunca)

Entonces las producciones quedan:

S → Xa | Tabb | Y
T → Tba | Xaa
X → Ya | Xaba | λ
Y→T|λ

2º paso: eliminar el axioma S de la derecha, si es que λ  L, es decir S→* λ y si el


axioma S aparece a la derecha de alguna producción

No se agrega S1 → S | λ, porque si bien S → Y → λ, S no figura del lado derecho de ninguna


regla de producción. Pero se agrega la regla S → λ, para que siga generando la palabra
vacía; esta regla será la excepción y no se eliminará en el paso 4.

3º paso: eliminar reglas de redenominación N1→ N2

Para eliminar Y → T, se agregan las reglas: Y → Tba | Xaa | λ


Para eliminar S → Y, se agregan las reglas: S → Xa | Tabb | Tba | Xaa | λ

Página 3/7
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes
Ciclo 2021

Las producciones quedan:

S → Xa | Tabb | Tba | Xaa | λ


T → Tba | Xaa
X → Ya | Xaba | λ
Y → Tba | Xaa | λ

4º paso: eliminar reglas de borrado

Para eliminar “X→ λ” y “Y → λ”, se agregan las nuevas producciones que surgen de reem-
plazar X y Y por λ en las partes derechas

S → Xa | Tabb | Tba | Xaa | a | aa | λ


T → Tba | Xaa | aa
X → Ya | Xaba | a | aba
Y → Tba | Xaa | aa

5º paso: Realizar las sustituciones necesarias para reducir a uno la longitud de las se-
cuencias de terminales que hubiera en las reglas.

S → Xa | Bb | Da | Ea | a | Aa | λ A →a E → Xa
B → Cb F → Eb
T → Da | Ea | Aa
C → Ta G → Ab
X → Ya | Fa | Ga | a D → Tb
Y → Da | Ea | Aa

Para convertir la Gramática regular por izquierda en Gramática regular por derecha, aplica-
remos el método correspondiente.

1) Dado que en este caso, el axioma no figura a la derecha de las reglas, no será nece-
sario hacer ninguna transformación previa a la GR.

2) Construir el siguiente grafo

Página 4/7
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes
Ciclo 2021

Página 5/7
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes
Ciclo 2021

3) Invertir el grafo

4) Crear las reglas de la GR por derecha a partir del grafo

S → aA | aX | a | λ A → aT | aY | bG | a E → aT | aY | bF | a
T → aC | bD B→b F → aX
X → aE | a C → bB G → aX
D → aY | aT | a
Y → aX

Como detalle de este caso particular, los No terminales F, G y Y tienen las mismas re-
glas por lo tanto se pueden unificar en uno solo, en este caso hemos tomado a Y.
Por otro lado observamos que al reemplazar G y F por Y, las reglas de A y E quedan
iguales, o sea que también se pueden unificar; entonces, si elegimos a A, la gramática
queda:

S → aA | aX | a | λ A → aT | aY | bY | a
T → aC | bD B→b
X → aA | a C → bB
Y → aX D → aY | aT | a

Página 6/7
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 2
Cátedra: Sintaxis y Semántica de los Lenguajes
Ciclo 2021

1.2 Encontrar gramáticas regulares a la derecha y a la izquierda que generen los lenguajes
indicados, considerando el alfabeto Σ = { a , b , c }. Simular con JFLAP

a) Todas las palabras que no tienen símbolos consecutivos iguales

S → aX | bY | cZ | λ S → Xa | Yb | Zc | λ
X→ bY | cZ | λ X → Yb | Zc | λ
Y→ aX| cZ | λ Y → Xa | Zc | λ
Z→ aX | bY | λ Z → Xa | Yb | λ

b) Todas la palabras que responden al patrón anbmcp / n≥0 , m impar , p≥2

S→ aS | X S → Sc | Xcc
X → bbX | bY X → Xbb | Yb
Y→ cY | cc Y → Ya | λ

Página 7/7

También podría gustarte