Laboratorio No 4
Laboratorio No 4
Laboratorio No 4
Facultad de Ingeniería
Ingeniería en Ciencia de la Computación y Tecnologías de la Información
Laboratorio No. 4
- Cree un repositorio privado en GitHub.com para alojar el código correspondiente para este
laboratorio.
- Añada a los siguientes usuarios con rol de collaborator:
o Aristondo01
o Daniel14gonc
o gbrolo
- Coloque todas las instrucciones que considere pertinentes en un archivo denominado
README.md en la raíz del repositorio.
- Para los incisos que no involucren la generación de código, cree una carpeta por separado
en su repositorio y coloque las respuestas en un documento con formato PDF
- Grabe un video de no más de 10 minutos donde muestre la ejecución de sus programas
para el ejercicio 1. Súbalo a YouTube como video no listado y adjúntelo en el README de
su repositorio.
Ahora, utilizando todos estos elementos, deberá construir (con base en el árbol generado) el AFN
resultante de aplicar el algoritmo de Thompson al árbol construido y mostrar su dibujo en pantalla,
así como deberá también simular el AFN para reconocer cadenas de la expresión regular asociada.
• Entrada
o Una expresión regular r.
o Una cadena w.
• Salida
o Por cada AFN generado a partir de r:
§ Una imagen con el Grafo correspondiente para el AFN generado, mostrando
el estado inicial, los estados adicionales, el estado de aceptación y las
transiciones con sus símbolos correspondientes.
§ La simulación del AFN al colocar la cadena w: el programa debe indicar si
w ∈ L(r) con un "sí" en caso el enunciado anterior sea correcto, de lo
contrario deberá mostrar un "no".
- Su programa debe leer un archivo de texto y procesar cada línea en este archivo. Cada
línea deberá de tener una expresión regular, correspondiente a la siguiente lista:
o (𝑎 ∗ |𝑏 ∗) +
o ((𝜀|𝑎)|𝑏 ∗) ∗
o (𝑎|𝑏) ∗ 𝑎𝑏𝑏(𝑎|𝑏) ∗
o 0? (1? )? 0 ∗
- Muestre la ejecución completa de su programa y explique brevemente en el video su
código.
Universidad del Valle de Guatemala
Facultad de Ingeniería
Ingeniería en Ciencia de la Computación y Tecnologías de la Información
Ejercicio No. 2 (10%) – Utilice el Pumping Lemma para demostrar que el Lenguaje 𝐴 = {𝑦𝑦 | 𝑦 ∈
{0,1}∗ } no es regular.
• 𝑦 son todas las cadenas que pueden ser generadas con 0’s y 1’s.
• El lenguaje está conformado entonces por todas las cadenas 𝑦 seguidas de la misma 𝑦. Por
ejemplo, si 𝑦 = 01 entonces una cadena parte del lenguaje será 𝑦𝑦 = 0101.
• Tome como base de su demostración que 𝑆 = 0" 10" 1, con P = pumping length.