(LFP) Proyecto1 S2 2023
(LFP) Proyecto1 S2 2023
FACULTAD DE INGENIERÍA
ESCUELA DE CIENCIAS Y SISTEMAS
LENGUAJES FORMALES DE PROGRAMACIÓN
SEGUNDO SEMESTRE 2023
PROYECTO NO. 1
DESCRIPCIÓN GENERAL
1. OBJETIVO GENERAL
Que el estudiante cree una herramienta la cual sea capaz de reconocer un
lenguaje, dado por medio de un analizador léxico el cual cumple con las
reglas establecidas, manejando la lectura y escritura de archivos para el
manejo de la información. A través de un entorno gráfico.
2. OBJETIVO ESPECÍFICOS
• Implementar por medio de estados un analizador léxico.
• Utilizar funciones de manejo de cadenas de caracteres en lenguaje
Python.
• Programar un Scanner para el análisis léxico.
• Construir un scanner basándose en un autómata finito determinístico.
• Crear una herramienta para interactuar de forma visual con el usuario con
Tkinter
• Crear diagramas con la librería Graphviz
DESCRIPCIÓN
Se solicita la lectura de código fuente, el cual tendrá un formato JSON, creando un
programa el cual sea capaz de identificar un lenguaje dado, identificando los errores
léxicos y ejecutando las instrucciones correspondientes.
FUNCIONALIDAD
Se ha pensado en el desarrollo de una aplicación en lenguaje Python haciendo uso
de la librería de Tkinter que permita reconocer las distintas instrucciones, y la
ejecución de estas. Con el objetivo que se implemente el análisis léxico
correspondiente.
MENU
Archivo:
• Abrir: Permite abrir un archivo para poder seguir editándolo en la
aplicación
• Guardar: Permite guardar el archivo que está siendo editado con el
nombre actual.
• Guardar como: Permite guardar el archivo que está siento editado con
otro nombre.
• Salir: Con esta opción se cerrará la aplicación.
Errores: Muestra los errores con el formato que más adelante se detalla del último
archivo compilado.
FUNCIÓN OPERACIÓN
SUMA Suma de 2 o más números u operaciones anidadas.
RESTA Resta de 2 o más números u operaciones anidadas.
MULTIPLICACIÓN Multiplicación de 2 o más números u operaciones anidadas.
DIVISIÓN División entre números u operaciones anidadas.
POTENCIA Potencia N de un número u operación anidadas.
RAIZ Raíz N de un número u operación anidadas.
INVERSO Inverso de un número u operación anidadas.
SENO Función trigonométrica seno de un número u operación
anidadas.
COSENO Función trigonométrica coseno de un número u operación
anidadas.
TANGENTE Función trigonométrica tangente de un número u operación
anidadas.
MOD Residuo entre números u operaciones anidadas.
ENTREGABLES
En UEDI entregar únicamente el link del repositorio de GitHub que debe incluir:
• Manual técnico en markdown
• Manual de usurario en markdown
• Código fuente
CONSIDERACIONS IMPORTANTES
• El proyecto se deberá realizar en forma individual.
• Se debe de crear un repositorio privado en GitHub con el siguiente
nombre: LFP_S2_2023_Proyecto1_#Carnet
• El proyecto se implementará en lenguaje Python, en caso contrario no
será calificado.
• No se aceptan entregas vía correo electrónico u otro medio.
• Se valorará la calidad de la información proporcionada por la aplicación
cuando se produzcan errores, así como la presentación de la interfaz
gráfica y amigabilidad de la aplicación.
• Sistema Operativo Libre
• Utilizar para el entorno gráfico únicamente la librería TKINTER
• Utilizar para generar los diagramas únicamente Graphviz
• Agregar al auxiliar correspondiente de su sección como colaborador a su
repositorio Github para poder validar los commits hasta el día de la
entrega de su proyecto en UEDI.
• Deberá mantener el repositorio y el permiso disponible hasta finalizado el
semestre.
• La calificación se realizará en línea y se grabará, esto para que quede
constancia de la forma en la que se calificó y como soporte en la toma de
decisiones en reclamos por parte del alumno si se presenta el caso.
• La calificación es personal con una duración máxima de 30 minutos, en el
horario posteriormente convenido. Durante la calificación el estudiante no
podrá modificar el archivo de entrada ni el código fuente de su aplicación.
• El estudiante es responsable del horario que elija para calificarse, en caso
de no poder presentarse deberá notificar al auxiliar con suficiente
anticipación (1 días antes) para ceder su lugar a otro estudiante, en caso
contrario el estudiante solo obtendrá el 80% de su nota obtenida.
• No se dará prórroga para la entrega del proyecto 1.
• COPIA PARCIAL O TOTAL DE LA PRÁCTICA TENDRÁ UNA NOTA DE
0 PUNTOS, Y SE NOTIFICARÁ A LA ESCUELA DE SISTEMAS PARA
QUE SE APLIQUEN LAS SANCIONES CORRESPONDIENTES.
• En el caso de no cumplir con alguna de las indicaciones antes
mencionadas, NO se calificará la práctica; por lo cual, se tendrá una nota
de cero puntos.
• Fecha de entrega: 22 de septiembre de 2023, antes de las 23:59, no se
recibirán entregas después de la fecha y hora establecida.