Está en la página 1de 6

ENSAYO: AUTÓMATAS Y LENGUAJES FORMALES

Estudiante
PAOLA ANDREA ZARATE LUNA

Docente
PhD. MAURICIO ALBA CASTRO
Asignatura Teoría de la Computación

UNIVERSIDAD AUTÓNOMA DE OCCIDENTE


DOCTORADO EN INGENIERIA
SANTIAGO DE CALI 2019
AUTOMATAS Y LENGUAJES FORMALES

Actualmente existen muchos campos para investigación directa de los autómatas y de sus
lenguajes, algunos de los estudios que se han realizado han cambiado sus resultados
sustancialmente en las últimas dos décadas en razón a que son herramientas esenciales en
formación de nuevas disciplinas para la tecnología y en general para las ciencias de la
computación.

Fue así, como para la década de los 30’s, el precursor de la ciencia de la computación Alan
Turing matemático y científico, tras la segunda guerra mundial y al servicio de los nazis
diseñó uno de los primeros computadores, estudio una maquina abstracta con las capacidades
de los computadores actuales (al menos en lo que respecta a generar cálculos), un artefacto
que ayudo a formalizar y dar fuerza a los conceptos de los algoritmos y los autómatas: la
máquina de Turing. Motivados en lo descrito anteriormente, aprovecharemos la bondad de
las máquinas de Turing para discernir a través de un modelo preciso para representar lo que
es capaz de hacer y lo que no cualquier dispositivo físico de computación basados en la
premisa "«Todo algoritmo es equivalente a una máquina de Turing» separando los problemas
que no se pueden de los que se pueden resolver, esto en relación a la decidibilidad que define
que puede hacer una computadora.

De aquí una de las características de la importancia del estudio de los autómatas y los
lenguajes formales, el establecer la magnitud del problema al que vamos a enfrentarnos o la
manera de abordar el problema, así como, cuantificar el tiempo que utilizarla un programa
determinado en resolverlo.

Es por esto que el propósito del siguiente escrito es dar respuesta a la siguiente inquietud
¿son los autómatas finitos determinísticos y no determinísticos un modelo adecuado de un
computador de propósito general?, para realizar una apreciación basada en conceptos lógicos
y sustentables, en este punto es necesario comenzar por cuestionarse sobre, ¿qué pueden
hacer las computadoras? Empezaremos por definir que una computadora de propósito
general es una clasificación que comprende todas las computadoras que permiten la
realización de múltiples y diferentes tipos de funciones y aplicaciones, como herramientas
para el trabajo en oficina (textos, cálculos, bases de datos, comunicación, etc) o para la
creación y manipulación de imágenes, diversión y entretenimiento, investigación, entre otras
muchas posible en la actualidad.

Ahora bien, por su parte la teoría de autómatas es el estudio de dispositivos de cálculo


abstractos, es decir, de las “máquinas” [1] Los autómatas finitos constituyen una guía útil
para muchos tipos de hardware y software y si, son un modelo de un dispositivo informático
particularmente simple, que actúa como un aceptador de lenguaje.

A continuación, se muestra en la figura No. 1 la definición gramatical de un autómata finito:


Figura No.1 Definición gramatical de un autómata finito
Fuente: [2]

Ciertamente puede relacionarse un computador con un autómata, al describir que cualquier


computador, cuyas salidas sean “sí” o “no”, actúa como un idioma aceptador y el idioma que
la computadora acepta es el conjunto de cadenas de entrada necesarias para producir la
respuesta sí.

De forma similar actúa la máquina de Turing, básicamente es un autómata finito que dispone
de una única cinta de longitud infinita en la que se pueden leer y escribir datos. Una ventaja
de la máquina de Turing sobre los programas como representación de lo que se puede calcular
es que la máquina de Turing es lo suficientemente simple como para que podamos representar
su configuración de manera precisa, utilizando una notación sencilla muy similar a las
descripciones instantáneas de un autómata a pila [1] ya que a través de otros lenguajes como
por ejemplo el lenguaje C la comprobación formal sería demasiado compleja.
Al pensar sistémicamente en lo que puede hacer una computadora se podría resumir en tres
características: un computador recibe alguna entrada, en forma de una cadena de caracteres
que realiza algún tipo de procesamiento y arroja una salida o resultado, este punto la
computadora está jugando el papel de un aceptador de lenguaje, tal como un autómata, esto
en razón a que el reconocimiento de cadenas de un lenguaje es una manera formal de expresar
cualquier problema y la resolución de un problema es un sustituto razonable de lo que hacen
las computadoras.

El idioma aceptado es el conjunto de cadenas a las que la computadora responde que sí,
aceptar un idioma es aproximadamente lo mismo que resolver un problema de decisión, al
recibir una cadena que representa una instancia del problema y respondiendo ya sea sí o no.
Podemos imaginar que el analizador léxico examina un carácter del programa que se está
compilando en un determinado instante, y que el siguiente carácter que se va a examinar es
la entrada al autómata [6].

Un autómata finito procede moviéndose entre un número finito de estados distintos en


respuesta a los símbolos de entrada. Cada vez que alcanza un estado de aceptación, pensamos
en es como dar una respuesta de "sí" a la cadena de símbolos de entrada que ha recibido hasta
ahora. Cualquier computadora cuyas salidas sean “sí” o “no” actúa como un idioma
aceptador; el idioma que la computadora acepta es el conjunto de cadenas de entrada que se
causan para producir la respuesta sí.
Como se enunció anteriormente, un autómata finito es un modelo de un dispositivo
informático simple, sin embargo, debido algunas limitaciones no pueden ser estereotipos de
modelos generales de computación.
Analizado lo anterior, puede afirmarse que en muchos casos los autómatas finitos
determinísticos y no determinísticos son un modelo adecuado de un computador de propósito
general.

Para casos como como el diseño de software y comportamiento de circuitos digitales, o como
analizador léxico, para software exploratorio de cuerpos de textos largos que se hallen en
páginas web, para protocolos de comunicación donde se encuentran un numero de estados
finitos, por ejemplo, podrían llegarse a considerar los autómatas como modelos útiles. Un
ejemplo táctico puede asimilarse con los autómatas industriales que no son más que pequeños
ordenadores que controlan los movimientos de la maquinaria de una fábrica o por ejemplo
un horno microondas que recibe estímulos de usuario a través de un display selector y del
sensor de apertura de la puerta, incorpora un reloj para medir tiempos, este es un autómata
que a partir de estímulos recibidos del exterior responde a una secuencia de opciones
preestablecidas [3].

Ahora bien, aclarado lo anterior daremos paso a establecer si ¿es el lenguaje español un
lenguaje regular? Al igual que el caso anterior primero acotaremos los significados de las
palabras citadas para concluir con la respuesta de la misma pregunta ya que el concepto de
lenguajes es muy amplio, abarcando desde la comunicación oral y escrita de las personas.
Un lenguaje regular se refiere a los lenguajes de tipo 3, aquellos que pueden representarse
mediante gramáticas regulares, autómatas finitos o expresiones regulares.
[4] Se dice que un lenguaje es regular si y sólo si se cumple cualquiera de las siguientes
proposiciones:

 Tiene al menos una gramática regular G que lo produce.


 Puede ser reconocido por un autómata finito A.
 Existe una expresión regular Er que representa a todas las cadenas de L

Lo mismo sucede por ejemplo con las expresiones regulares, estas son una secuencia de
caracteres que forma un patrón de búsqueda, principalmente utilizada para la búsqueda de
patrones de cadenas de caracteres u operaciones de sustituciones. Las expresiones regulares
son implementadas ya en muchos lenguaje de programación de propósito general modernos
que permiten a los desarrolladores de lenguajes mecanismos muy eficientes para la obtención
intuitiva de partes de compiladores que reconocen los tókenes o partículas lexicales
del código fuente como fase del proceso completo de interpretación o compilado, según sea
el caso.

Desde el punto de vista de los autómatas finitos un lenguaje es un conjunto (posiblemente


finito) de cadenas, donde los símbolos de todas ellas se han seleccionado de un determinado
alfabeto. Un lenguaje es regular si el autómata finito lo reconoce, es decir cuando las cadenas
de un lenguaje se interpretan de alguna manera, por lo que se realiza una afirmación al
cuestionamiento inicialmente planteado.

Como lo demuestra el lema de bombeo, una forma de responder preguntas sobre el lenguaje
es examinar un autómata finito que lo acepta. El lema dice que cualquier palabra
suficientemente larga en un lenguaje regular puede ser bombeada, es decir, repetir una
sección en la mitad de la palabra un número arbitrario de veces para producir una nueva
palabra que también pertenece al mismo lenguaje. El lema de bombeo para lenguajes
regulares enuncia una propiedad que cumplen todos los lenguajes regulares infinitos con el
que se puede demostrar que ciertos lenguajes infinitos no son regulares [5]por contradicción,
condición que no aplica para el lenguaje español siendo este finito. Lo anterior teniendo en
cuenta que el lema de bombeo es una propiedad que se cumple para todas las cadenas de
longitud mayor o igual a cierta n, bastará encontrar una cadena de ese lenguaje, de longitud
mayor o igual a esa n, que no se pueda “bombear” para demostrar que el lenguaje no es
regular.
BIBLIOGRAFIA

[1] John E. Hopcroft, Rajeev Motwani y Jefffrey D. Ullman. Teoría de Autómatas, lenguajes
y computación. 2008 Pearson.
[2] Martin., J Introduction to languajes and the theory of computation. 2011 Mc Graw Hill
[3]Juan Giró, Juan Vázquez, Brenda Meloni y Leticia Constable. Lenguajes Formales y
Teoría De Autómatas. 2015. Alfaomega.

[4] Ecured. Lenguaje Regular. Recuperado el 23 de marzo de 2019 de


https://www.ecured.cu/Lenguaje_regular
[5] Rubén Béjar Hernández, Pedro Javier Álvarez El lema de bombeo para lenguajes
regulares. Recuperado el 15 de marzo de 2019.
http://webdiis.unizar.es/asignaturas/LGA/material_2003_2004/Lema_Bombeo_Regulares.p
df
[6] Michael Sipser. Introduction to the theory of Computation. 1997. PWS Publishing
Company.

También podría gustarte