Professional Documents
Culture Documents
Jimnez
-Alma Karina Herrada Balderas -Nancy Acosta Rodriguez -Sergio Alan Villegas Payan
Septimo semestre.
Septiembre de 2013
Introduccion
En este apartado hablaremos de la pila semntica en un analizador lxico veremos su concepto y un ejemplo del mismo, tambin hablaremos del concepto de esquemas de traduccin dirigidos por sintaxis y asi ser mas fcil desarrollar un lenguaje de anlisis sintctico ms completo y correcto.
Cdigo
// stack_semantics_for_reference_types.cpp // compile with: /clr ref class R { public: int i; R(){} // assignment operator void operator=(R% r) { i = r.i; } // copy constructor R(R% r) : i(r.i) {} }; void Test(R r) {} // requires copy constructor int main() { R r1; r1.i = 98; R r2(r1); // requires copy constructor System::Console::WriteLine(r1.i); System::Console::WriteLine(r2.i); // use % unary operator to convert instance using stack semantics // to its underlying handle R ^ r3 = %r1; System::Console::WriteLine(r3->i); Test(r1); R r4; R r5; r5.i = 13; r4 = r5; // requires a user-defined assignment operator System::Console::WriteLine(r4.i); // initialize tracking reference R % r6 = r4; System::Console::WriteLine(r6.i); }
Donde las categoras lxicas apar y cpar corresponden a parntesis (de apertura y cierre, respectivamente) y acor y ccor, anlogamente, corresponden a corchetes. Observa que esta gramtica permite utilizar un delimitador de cierre de tipo distinto al utilizado en la apertura (abrir un corchete y cerrar un parntesis, por ejemplo), una circunstancia que se desea controlar semnticamente. Se trata, por lo tanto, de aadir acciones semnticas a la gramtica anterior de forma que el esquema de traduccin resultante pueda sintetizar, mientras lleva a cabo un anlisis LL(1) de su entrada, un atributo lgico hLisi.ok que indique si se ha utilizado el mismo tipo de delimitador en apertura y cierre (valor Cierto) o no ha sido as (valor Falso). Adems, ten en cuenta las Siguientes restricciones: No puedes utilizar ningn objeto global. Todos los atributos deben ser de tipo lgico. Solo se permiten acciones semnticas en el extremo derecho de la parte derecha de cada produccin in-contextual. Y debes documentar de forma clara y concisa el signicado de cada atributo. Por ejemplo: Atributo hLisi.ok: valor Cierto solo si en la lista se utiliza el mismo tipo de delimitador para la apertura y el cierre.
Conclusion
En importante conocer los conceptos, algunos ejemplos y aplicaciones de la pila semntica en un analizador lxico as como mtodos y las funciones que se realizan en un programa.