Está en la página 1de 6

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA

FACULTAD DE INGENIERA
ESCUELA DE CIENCIAS Y SISTEMAS
LENGUAJES FORMALES Y DE PROGRAMACIN

Segundo Semestre 2016


Seccin
AB-

Catedrtica
Inga. Damaris Campos de Lpez
Inga. Zulma Aguirre

Tutor acadmico
Elmer Anselmo Calel Ramos
Luis Fernando Lara Lemus

Enunciado de Prctica No. 1


Objetivos:
Que el estudiante implemente un analizador lxico bsico para poder obtener informacin de un
archivo de entrada.
Conocer y aprender el lenguaje de programacin Visual C Sharp as como sus diferentes
funcionalidades.
Aplicar los conocimientos adquiridos en la clase y laboratorio.
Descripcin:
La empresa deGuate, debido a su alta demanda y rpido crecimiento, decidi migrar todos sus servicios
en la nube, de un servidor Linux a uno Windows, ya que ofreca un mejor precio, sin embargo, se ha
encontrado con el inconveniente que sus desarrolladores estn acostumbrados al manejo del sistema
operativo Linux por medio de una terminal y no con una interfaz grfica como en el sistema operativo
Windows.
Para los desarrolladores de la empresa deGuate es ms fcil el manejo de archivos, en el sistema
operativo Windows, por medio de un lenguaje o uso de comandos, razn por la cual se le ha contratado a
usted para que realice una pequea aplicacin en el lenguaje C#, basada en consola, para facilitarles a
los desarrolladores el manejo de archivos en el sistema operativo Windows.
La aplicacin consiste en la interpretacin de un lenguaje de script, definido posteriormente en el
enunciado, y al cual le llamaremos lfscript, la aplicacin reconocer archivos .lfp los cuales contienen
los comandos a interpretar y ejecutar directamente en la consola de Windows.
Definicin del lenguaje:
El lenguaje contara con las siguientes etiquetas:

<lfscript>
........
</lfscript>
<comando>
........
</comando>

Es la etiqueta inicial del archivo, sirve para que el analizador sepa que se
est iniciando la escritura de un archivo en el lenguaje script.

Esta etiqueta anuncia la aproximacin de un nuevo comando, y es


importante mencionar que, dentro de un mismo archivo, pueden existir n
cantidad de comandos.

Comandos soportados por nuestro lenguaje

Existen 3 tipos de comandos elementales que nuestro analizador lxico debe reconocer, estos son:
o
o
o

carpeta: anuncia una operacin sobre alguna carpeta.


archivo: anuncia una operacin sobre algn archivo.
especial: anuncia una operacin especial sobre algn archivo.

Contenido de cada comando

Cada tipo de comando tiene diferentes cualidades o atributos que nuestro analizador lxico debe
reconocer, estos se enlistan a continuacin:
o

Carpeta
Accin: este atributo puede tomar el valor de crear o eliminar, teniendo como
resultado, la respectiva creacin o eliminacin de una carpeta.
Ejemplo:
Accin
Atributo Accin
Resultado fsico

Crear una carpeta

crear

Eliminar una
carpeta

eliminar

Nombre: con ayuda de este atributo, se podr especificar el nombre de la


carpeta que necesitemos crear o bien el nombre de la carpeta a eliminar.
NOTA: el contenido de este atributo debe estar entre comillas dobles y no se
permite dos carpetas con el mismo nombre.
Texto: este atributo siempre tendr el valor de null cuando se trate de una
carpeta.
Ruta: con este atributo podemos especificar la ruta donde queremos que se crea
nuestra carpeta o bien, especificar la ruta donde se encuentra la carpeta que
queremos eliminar.
NOTA: el contenido de este atributo debe estar entre comillas dobles.

Archivo
Accin: este atributo puede tomar el valor de crear, eliminar o bien
modificar, teniendo como resultado, la respectiva creacin, eliminacin o
modificacin de un archivo de texto con la extensin .txt.
Accin
Atributo
Resultado fsico
Accin
Crear un archivo
crear

Eliminar un
archivo

eliminar

Modificar un
archivo

modificar

Nombre: con ayuda de este atributo se especificar el nombre que tomar


nuestro archivo de texto si lo creamos, lo eliminamos o bien, especificar el
nombre del archivo a modificar.
NOTA: el contenido de este atributo debe estar entre comillas dobles.
Texto: con este atributo especificamos el contenido que ser grabado en el
archivo de texto ya sea cundo se cree o bien cuando se modifique. Para la
opcin de eliminar un archivo, este atributo deber llevar la palabra null.
NOTA: el contenido de este atributo debe estar entre comillas dobles, excepto
para la eliminacin, la cual lleva la palabra null sin comillas.
Ruta: con este atributo podemos especificar la ruta donde queremos que se cree
nuestro archivo, o bien donde se elimine o modifique.
NOTA: el contenido de este atributo debe estar entre comillas dobles.

Especial
Dentro de los comandos especiales, existen 4 variantes detallados a
continuacin, con sus respectivos atributos:
Nuevo-nombre-shell: este comando nos permitir personalizar nuestra
Shell o consola, permitiendo cambiar el nombre que se muestra en la
esquina superior izquierda.
o Nombre: este atributo permite especificar el nombre con el cual
pretendemos personalizar nuestra consola.
NOTA: el contenido de este atributo debe estar entre comillas
dobles.
Ejemplo de la aplicacin del atributo Nombre:

Obtener-fecha: este comando permitir obtener la fecha del sistema y


escribirlo en archivo de texto.
o Nombre: con este atributo se especifica el nombre del archivo de
texto que contendr la fecha actual.
NOTA: el contenido de este atributo debe estar entre comillas
dobles.
o Ruta: este atributo permitir especificar la ruta donde queremos
que se escriba nuestro archivo con la fecha del sistema.
NOTA: el contenido de este atributo debe estar entre comillas
dobles
Obtener-hora: este comando permitir obtener la hora del sistema y
escribirlo en archivo de texto
o Nombre: con este atributo se especifica el nombre del archivo de
texto que contendr la hora actual.
NOTA: el contenido de este atributo debe estar entre comillas
dobles.
o Ruta: este atributo permitir especificar la ruta donde queremos
que se escriba nuestro archivo con la hora del sistema.
NOTA: el contenido de este atributo debe estar entre comillas
dobles.

Interfaz grfica:
Esta aplicacin, al ser de tipo consola, no contar con interfaz grfica, sin embargo, debe presentar un
men, el cual contendr las siguientes opciones.
1. Leer Script: al seleccionar esta opcin, se podr especificar la ruta donde se encuentra nuestro
archivo script con la extensin .flp
2. Crear archivos de salida: la aplicacin debe ser capaz de generar 2 pginas web, con la
extensin .html las cuales contendrn en una tabla, los tokens si el archivo es lexicamente
correcto o bien los errores, si se encontrara algn carcter que no es aceptado por nuestro
lenguaje de script.
3. Salir: esta ser la nica opcin con la cual se podr salir de la aplicacin.
Ejemplo:

Archivos de Salida:
El archivo de Tokens encontrados se debe mostrar en una pgina HTML, la informacin debe estar en
una tabla como se muestra a continuacin:
#
1
2
3

Lexema
<
comando
/

Id Token
1
22
13

Token
simboloMenor
reservadaComando
simboloCierreEtiqueta

El archivo de Errores, si existieran, se debe mostrar en una pgina HTML con la informacin en una tabla
como se muestra a continuacin:
Fila
Columna
#
Carcter
Descripcin
1
05
10
|
Desconocido

2
08
30

Desconocido
3
10
05
~
Desconocido
Entregables que se deben incluir en la carpeta compartida:
Manual de Usuario
Manual Tcnico, debe incluir el DFA que se use para el analizador lxico.
Cdigo Fuente
Ejecutable de la Aplicacin (.exe)
Documentacin a entregar de forma fsica el da de la calificacin:
Hoja de calificacin (Original y una copia)
Notas importantes:
La prctica se debe desarrollar de forma individual.
Esta prctica se deber desarrollar utilizando C# con Visual Studio 2013.
No se puede hacer uso de ninguna librera externa para leer el archivo .lfp, ni ejecutar los
comandos de consola.
El proceso de obtener tokens, se debe hacer a travs de la implementacin del autmata finito
determinista desarrollado por el propio estudiante.
No se puede agregar o quitar algn smbolo en el archivo de entrada. La prctica deber
funcionar con los archivos de prueba que se disponga para la calificacin, sin modificacin.
La calificacin de la prctica ser personal y durar como mximo 30 minutos, en un horario que
posteriormente ser establecido. Se debe tomar en cuenta que durante la calificacin no podrn
estar terceras personas alrededor, de lo contrario no se calificar la prctica.
No se dar prrroga para la entrega de la prctica.
Copia parcial o total de la prctica 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 el proyecto; por lo cual, se tendr una nota de cero puntos.
Fecha de entrega: 18 de Agosto de 2016

Ejemplos de archivos de Entrada: