dc.contributor.advisor | Gómez Pérez, Domingo | |
dc.contributor.author | Tapia Ruiz, Álvar | |
dc.contributor.other | Universidad de Cantabria | es_ES |
dc.date.accessioned | 2019-09-16T12:21:55Z | |
dc.date.available | 2019-09-16T12:21:55Z | |
dc.date.issued | 2019-06-21 | |
dc.identifier.uri | http://hdl.handle.net/10902/16863 | |
dc.description.abstract | RESUMEN: Un lenguaje formal se puede definir por el conjunto de palabras, y para saber si una palabra pertenece a un lenguaje, se pueden utilizar autómatas diseñados a partir de la definición del lenguaje.
Una clase de lenguajes muy importantes son los aceptados por autómatas finitos, también conocidos como lenguajes regulares.
Un lenguaje regular arbitrario puede ser aceptado por diferentes autómatas finitos; por ello es interesante buscar aquellos que tengan buenas propiedades, para hacer el proceso lo más sencillo posible.
Existe un algoritmo que, dada la descripción del lenguaje mediante una expresión regular, genera un autómata finito. Pero, en ciertas implementaciones, la transformación de una expresión regular en un autómata finito puede tardar más en ejecutarse que otra, aunque proporcionen los mismos resultados.
En este documento nuestro objetivo es diseñar un conjunto de reglas que permitan transformar una expresión regular «problemática» en otra con mejores propiedades, pero manteniendo el mismo resultado de la expresión original.
Nos apoyaremos en autómatas finitos para demostrar por qué hay un ahorro de tiempo de cómputo en una expresión y no en la otra, aun obteniendo los mismos resultados. | es_ES |
dc.description.abstract | ABSTRACT: A formal language can be defined by the set of words. To solve the problem wether a word belongs to certain classes of languages, automata based on the language definition can be built.
An important class of languages is the languages that can be defined as the words accepted by finite automata, also known as regular languages. Any regular language can be defined by a regular expresión.
A particular regular language can be accepted by different finite automata; so it is interesting to find those with good properties, to make the computation as efficient as possible. There are algorithms that, given a regular expression, can generate a finite automaton. But, in some implementations, a regular expression can be more complex for computing than another, even though they define the same language.
In this document our objective is to design a set of rules that allow as to transform a «problematic» regular expression into another one with better properties, while keeping the results of the original one.
We will use finite automata to discuss why a regular expression need less time than another to achieve the same goal. | es_ES |
dc.format.extent | 37 | es_ES |
dc.language.iso | spa | es_ES |
dc.rights | Atribución-NoComercial-SinDerivadas 3.0 España | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/3.0/es/ | * |
dc.subject.other | Expresiones regulares | es_ES |
dc.subject.other | Optimización | es_ES |
dc.subject.other | Python | es_ES |
dc.subject.other | RE | es_ES |
dc.subject.other | Regular expressions | es_ES |
dc.subject.other | Optimization | es_ES |
dc.title | La transformación de lenguajes formales a autómatas finitos | es_ES |
dc.title.alternative | From formal languages to finite automata | es_ES |
dc.type | info:eu-repo/semantics/bachelorThesis | es_ES |
dc.rights.accessRights | openAccess | es_ES |
dc.description.degree | Grado en Ingeniería Informática | es_ES |