Presento el uso de un programa para uso didáctico llamado SP-PS1 para la enseñanza de temas de lenguajes y autómatas tales como expresiones regulares, reglas de thompson, algoritmo de construcción de subgrupos y algoritmo de particiones. Es una primera parte de 2, ya que la segunda usa a este mismo SP-PS1 para generar código C++, C# y Object pascal usado en la construcción de analizadores léxicos, según las clases propuestas por R.A.Francisco.
Este programa es una herramienta desarrollada para ayudarte en el estudio de 2 materias : “Lenguajes y Autómatas” y “Programación de Sistemas I”.
Inicialmente, este manual te indicará el uso de Ps1 como auxiliar didáctico tanto para la enseñanza como para el aprendizaje de los siguientes temas del curso de “Lenguajes y Autómatas” : Expresiones regulares; Reglas de Thompson; Algoritmo de construcción de subgrupos; Algoritmo de particiones; Gramáticas.
El uso de Ps1 como auxiliar didáctico para el curso de “Programación de Sistemas I”, se trata en otro documento.
Ps1 es un programa que te facilita la edición de expresiones regulares, y su compilación según las reglas descritas en el libro del dragón : “COMPILADORES, Principios, técnicas y herramientas”, con autores Aho, Sethi y Ullman.
Una vez que has editado y compilado una expresión regular, puedes visualizar la descomposición sintáctica que efectuó Ps1 (en forma de parejas token-lexema) para reconocer cada expresión regular que compone tu definición regular.
Realmente esta característica, sólo es útil si tú eres profesor o bien, si eres alumno te servirá como ejemplo de estudio para el tema de analizadores sintácticos que se incluye en la materia de “Programación de Sistemas I” y que seguro te llamará la atención.
Recuerda que a un conjunto de expresiones regulares se le denomina una definición regular, y ésta denota a un lenguaje regular. Los tokens son secuencias de caracteres con un cierto significado semántico. Por ejemplo el token id puede tomar los lexemas siguientes en un segmento de código : iCont, iNum, sNoCon, fPromedioGrupo. Un token situado en el contexto de un lenguaje de programación, es un lenguaje cuyas cadenas cumplen con un cierto patrón. Este patrón generalmente es definido utilizando una definición regular, es decir, utilizando un conjunto de expresiones regulares.
Las definiciones regulares en su construcción siguen una serie de reglas bien específicas. Ps1 usa esta serie de reglas para compilar tu definición regular.
Además Ps1 añade otras reglas que deberás respetar para lograr que tus definiciones regulares puedan ser compiladas de manera exitosa. Todo lo anterior se te explica en el capitulo II.
En el capítulo III verás cómo es generado un autómata finito no determinístico, para cada una de tus expresiones regulares que conforman la definición regular que editaste y compilaste. Este autómata finito no determinístico AFND es construído por Ps1, usando las reglas de THOMPSON. El formato empleado por Ps1 para dibujar estos autómatas es .BMP , por lo que fácilmente podrás agregarlos a un documento Word ya sea directamente o bien, utilizando un editor de imágenes (Paint por ejemplo) donde podrás personalizar el autómata producido por Ps1.
Francisco Ríos Acosta
friosam[arroba]prodigy.net.mx
Ingrese el e-mail y contraseña con el que está registrado en Monografias.com
Trabajos relacionados
Ver mas trabajos de Programacion |
|
Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.
Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.