Está en la página 1de 5

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas Lenguajes Formales y de Programacin Primer semestre 2011

Segundo Proyecto
Objetivos:
Realizar la fase de anlisis lxico y sintctico completamente Utilizar los conceptos vistos en el curso sobre anlisis lxico y sintctico

Descripcin:
El proyecto consiste en la realizacin de una aplicacin de ventanas (Windows Form Application) como un editor de texto en el lenguaje Visual Basic .NET, la aplicacin debe ser capaz de: Cargar archivos Editar archivos Guardar archivos Mostrar resultados Mostrar errores

El proyecto consiste en la puesta en prctica de la fase de anlisis lxico y sintctico, consiste en realizar un scanner y un parser para reconocer un archivo de entrada, tambin debe llevarse un control sobre los errores encontrados, identificando de manera clara el error detectado El lenguaje del proyecto se describe a continuacin: Creacin de nuevo programa: Sirve para declarar el inicio de un nuevo programa, su sintaxis es: o Programa <id>, ejemplo: Programa libro1

Declaracin de variables numricas: Se pude hacer la declaracin de variables tanto de tipo: Entero, Real y Cadena, ejemplo: Variable tipo Entero: Int n1=10; Int n1,num2,n3=4; Int num1,num3,n4;

Variable tipo real: Real real1=10.65; Real n1, var2,n3=4; Real num1,num3,n4, num5; Variable tipo cadena: Cadena Cad1=z; Cadena n1, var2,n3=ejemplo; Cadena c1,c3,c4, c5; Definicin de matrices: Se utiliza para la creacin de matrices multidimensionales, dndole a la matriz un nombre, en donde sta puede ser inicializada con cualquier cantidad de valores, los valores que puede contener son de tipo entero, real y cadena; adems, se pueden incluir valores numricos declarados previamente, su sintaxis se describe a continuacin: o Matriz <id>={ {<num>[,<num>].} [,{<num>[,<num>]}] }

Un ejemplo de cmo se declara se muestra a continuacin: o Matriz A1={ {1,2.4,num1}, {5,va1,2.8}, {3,15.1,7}, {0.1,4,var2} }; Matriz Array2, Array3={ {va1,va2,num1,0.5,10,num2}, {10,va10,var2,0.8,5,va4} }; Tambin se pueden declarar matrices sin necesidad de inicializarlas por ejemplo: Matriz A1, Mat2, A3.;

Operaciones: Existen operaciones que se pueden dar entre matrices y variables numricas as como constantes, tales operaciones son definidas a travs de una frmula, las operaciones que se pueden llevar a cabo se describen a continuacin: o Suma: Realiza una suma con base a una serie de parmetros, dichos parmetros pueden ser nmeros enteros, nmeros reales, variables numricas, Matrices previamente declaradas, u otro tipo de operacin, el nmero de parmetros pueden ser N, por ejemplo: Sumando la matriz A1, Array2, Matriz2 y la Resta de Mat4,5,4.2, var2: Suma(A1,Matriz2,Resta(Mat4,5,4.2,var2),Array2); Sumando las matrices Val1, A2, M3, Mat4 y los nmeros 10, 2.5, 17, real1: Suma(17,Val1,A2,2.5,M3, Mat4,10,real1); Resta: Realiza una resta segn los parmetros, dichos parmetros pueden ser nmeros enteros, nmeros reales, Matrices previamente declaradas, u otro tipo de operacin, el nmero de parmetros pueden ser N, por ejemplo: Restando la matriz A1, Valor2, Array3 y la Suma de B2, A1, Mat5: Resta(A1,Suma(B2,A1,Mat5),Valor2,Array3); Restando la matriz Arr1, B2 y los nmeros 3.5, 1, real2, 6, 7.2: Resta(Arr1, 3.5, 1, real2,6, 7.2); Multiplicacin: Realiza una multiplicacin con base a una serie de parmetros, dichos parmetros pueden ser nmeros enteros, nmeros reales, Matrices previamente declaradas, u otro tipo de operacin, el numero de parmetros pueden ser N, por ejemplo: Multiplicando la matriz Val1, C1, A3, Suma de A1 y 2: Multi(Val1,C1,Suma(A1,2),A3); Multiplicando la matriz A2,A3, el entero 23, 2,3 y el real 10.5: Multi(10.5, 23, A2,A3,2,3,10.5); Divisin: Realiza una divisin entre 2 parmetros, dichos parmetros pueden ser nmeros enteros, nmeros reales, matrices previamente declaradas u alguna otra operacin, por ejemplo: Division entre 2 matrices: Div(Array2,B10); Division entre Val5 y la Resta de A3, B4 y los nmeros 11, num1: Div(Val5,Resta(A3,B4,11,num1));

Declaracin de frmulas: Se pueden crear formulas a partir de las operaciones mencionadas anteriormente, dichas formulas deben ser declaradas y pueden contener cualquier tipo de operaciones, la formula almacena el valor numrico como resultado de las operaciones, como se menciono anteriormente en la definicin de las operaciones, en

los parmetros de cualquier operacin pueden ir ms operaciones. Ejemplo de la declaracin de formulas: o Formula f1::=Div(Multi(A1,A2,2,Suma(8,B1,Resta(var1,A2),3)),Suma(num1,B10,3)); o Formula f2::=Multi(Suma(H2,10,4,C2,A1,0.2,Div(2,5),Resta(A2,Multi(2,Resta(Suma(1,I9),12) ,0.5,N1)))); Resultados: Se pueden imprimir los resultados por medio de este comando, el cual recibe una serie de parmetros los cuales son cadenas de texto y variables previamente declaradas como se describe a continuacin: o formulas previamente declaradas: %f o enteros previamente declarados: %i o nmeros reales previamente declarados: %r o Cadenas previamente declarados: %c Adems se pueden usar caracteres especiales dentro de la cadena, los cuales se describen: o o \n: Nueva lineal \t: tabulador

Por ejemplo: o Resultado(El Resultado de la formula f1 es: \t %f \n El Resultado de la formula f2 es: \t %f \n y el resultado de la variable num1 es: \t %i, f1, f2, num1);

En el ejemplo anterior se imprime el resultado de la formula f1 en una lnea, f2 en una lnea y la variable tipo entero num1 en otra lnea. Comentarios: La sintaxis del programa permite la inclusin de comentarios en cualquier parte, dichos comentarios se definen deben tomarse como un token, su sintaxis se muestra a continuacin: <comentario.>

Ejemplo: <Este es un ejemplo de un comentario el cual puede ir en cualquier parte del programa>

Se debe mostrar una tabla en formato HTML con el nombre Errores.html con los errores sintcticos encontrados en el archivo de entrada, esta debe ser mostrada al momento de ejecutar la opcin de Mostrar Errores, dicha tabla debe contener: Nmero Fila y columna en donde se encontr el error Lexema obtenido Token obtenido Token esperado

La forma de la tabla debe ser como la siguiente NMERO FILA COLUMNA LEXEMA TOKEN TOKEN ESPERADO 1 1 8 12 Entero=[0-9]+ ID=[a-z..A-Z]+ 2 2 9 , Coma=, Punto_Coma=; Nota: queda a libertad del estudiante utilizar estilos para la tabla siempre y cuando se muestre de la forma establecida.

Documentacin a Entregar en el CD:


Manual de Usuario y Manual Tcnico, dentro del manual tcnico, debe incluir: o Patrn de los Componentes Lxicos (Tokens), por medio de la Expresin Regular que corresponda a cada Token. o Desarrollo del mtodo del rbol para todos los tokens utilizados. o Gramtica libre del contexto (tipo #2) que corresponda al proyecto (analizador sintctico). Ejecutable Cdigo fuente del proyecto.

Lo nico que se deber de entregar impreso es la hoja de calificacin.

Notas importantes:
Se debe desarrollar de forma individual Se deber desarrollar utilizando Visual Basic .Net 2010 o 2008. Queda prohibida la utilizacin de cualquier herramienta auxiliar. Copia parcial o total del proyecto tendr una nota de 0 puntos y se notificar a la escuela para que se apliquen las sanciones correspondientes. Debe utilizar su analizador lxico implementado en el primer proyecto, y desarrollar su propio analizador sintctico, no se permite utilizar herramientas ya desarrolladas y publicadas para efectuar estos procesos. No se dar prorroga para la entrega del proyecto.

Fecha de Entrega: viernes 06 de mayo/2011

También podría gustarte