Lenguajes formales

Page 1

Revista de Ingeniería de Sistemas

LENGUAJES FORMALES

Áreas de Grado Ciencias de la Computación


Lenguajes Formales Volumen I – Año 2015 Contenido EDITORIAL Introducción……………………………..3 Lenguajes Formales. ……………………4 Aporte José Vásquez. Lenguajes Formales……………………..5 Aporte Argenis Gil. Lenguajes Formales……………………..5 Especificación de los Lenguajes Formales………………………………...6 Jerarquía Descrita por Noam Chomsky………………………………...7 Autómatas finitos………………………8 Expresiones regulares………………….8 Demostraciones Deductivas…………...9 Biografía Noam Chomsky…………….10 Conclusiones…………………………..11 Bibliografía…………………………….12

El desarrollo de la revista de ingeniería de sistemas está basado en un método de investigación científico, el cual permite el desarrollo del aprendizaje en forma dinámica, ofreciendo la oportunidad de compartir recursos, ideas, criterios, y experiencias. Esta primera edición se desarrolla en función de un tema en específico, lenguajes formales, el tema ha sido desarrollado por un equipo de estudiantes de la Universidad de Oriente, Núcleo de Monagas, cursantes de áreas de grado en la modalidad curso especial de grado. Queremos expresar agradecimientos por la oportunidad brindada, y esperamos que la revista resulte de provecho para futuros investigadores y la adquisición de conocimientos.


INTRODUCCIÓN El lenguaje se remonta a épocas muy antiguas en las cuales el hombre se encontraba en la búsqueda de comunicar sus experiencias y expresarlas a los demás, en tal sentido esta búsqueda dio origen a implementar un grupo de reglas sintácticas, simbólicas, corporales, y sonoras que dieron origen al lenguaje convirtiéndose en un sistema de comunicación estructurado. Durante el transcurrir del tiempo han surgidos nuevos procesos y reglas que rigen el lenguaje, en tal sentido ha venido obteniendo modificaciones que han dado origen a una mejora y así lograr mejor su comprensión. Existen algunas clasificaciones de los lenguajes, el desarrollo de este tópico está basado en los leguajes formales, los cuales poseen unas reglas sintácticas y semánticas rígidas, concretas y bien definidas, que permiten mejor su comprensión y control, a diferencia de los lenguajes naturales que resultan ser un poco más complejos ya que la sintaxis y la semántica son más difíciles de controlar. En un sentido más amplio los lenguajes son de gran importancia en la humanidad para la comunicación, en especial el lenguaje formal que tiene su enfoque a lo matemático y computacional, a su vez se incluyen los lenguajes en este termino de lenguajes formales de programación. En la actualidad los lenguajes formales, también conocidos como artificiales han tenido un gran auge para el desarrollo de las tecnologías, y la teoría de autómatas, dando paso a la evolución del lenguaje formal y aplicación en diversas ramas de la ciencia permitiendo el desarrollo de software, lógica computacional, inteligencia artificial, y aplicaciones.

3


Lenguaje Formal El desarrollo del lenguaje ha tenido una gran evolución a través del tiempo, obteniendo diversas modificaciones, y afianzando a su vez sus sintaxis y gramática. Los lenguajes poseen distintas clasificaciones que permiten diferenciarlos, pero a su vez todos tienen en el mismo objeto de transmitir un mensaje, en consideración a esto se pueden mencionar los lenguajes naturales y lenguajes formales, en este tópico se toma como objeto de estudio el lenguaje formal, resulta necesario afianzar su concepto, el cual está definido “Como un conjunto de palabras (cadena de caracteres) de longitud finita formadas a partir de un alfabeto (conjunto de caracteres) finito” Edgar Quiroga, 2008, pág 21. El lenguaje formal es muy utilizado en muchos contextos de la ciencia, en esencia se utiliza para referirse de un modo más técnico y no coloquial a diferencia de los leguajes naturales que están orientados al lenguaje humano, los cuales son utilizados de forma más frecuente. Los lenguajes formales se conocen también como lenguajes

artificiales los cuales son propios de la matemática y la informática, los lenguajes de programación también se conocen como lenguajes formales, a través de los lenguajes formales se ha dado origen a grandes avances tecnológicos los cuales están estructurados de una forma comprensible para quienes manejan el lenguaje formal, ofreciendo un lenguaje global que permita la comunicación en diferentes ámbitos técnicos y la comunicación entre hombre máquina. (Br. José Vásquez, 2015)

La

premisa de lenguaje formal parte del lenguaje natural, cuando se menciona esto se hace referencia a que el lenguaje formal es una compactación o raciocinio del lenguaje natural, debido a que los lenguajes formales van modificando las definiciones naturales y amoldándolas a la parte lógica, computacional y matemática. Teniendo como premisa que todo lenguaje formal es una abstracción de la naturaleza y el quehacer cotidiano, más que todo el empresarial, para expresarlo en forma de gramáticas cortas y entendibles en un entorno, como

4


ejemplo se denota lo siguiente: {a, b, c, d, e} dicho ejemplo, a través de una documentación se puede denotar que cada vocal representa la introducción de un nuevo producto en una empresa, esto se hace para no alargar mucho el contexto y que a nivel de almacenaje y manejo computacional sea más sencillo de asimilar. Los lenguajes formales pueden ser usados por humanos y máquinas para dar una explicación sencilla a un procedimiento complejo, es por esto que se debe resaltar que la formalidad se le da a cuestiones complejas más que todo, los lenguajes formales facilitan el entendimiento de muchos procedimientos y el afianzamiento y funcionamiento del mismo. Desde hace mucho tiempo los lenguajes formales han venido evolucionado y con ello logrando la conformación de un entorno tecnológico, formidable y entendible, a través de la documentación y tutoriales se puede hacer entender dichos lenguajes para nuevos usuarios, debido a que es un lenguaje que viene del lenguaje natural y por consiguiente puede ser visto de manera subjetiva (depende de la persona), las máquinas pueden

asimilar el lenguaje de manera inmediata debido a su inteligencia artificial o autonomía (autómatas). Es de gran agrado el manejo de terminologías para la suposición y puesta en marcha de palabras y procedimientos muy técnicos a través de lenguajes formales en nuestra actividad, debido a su eficiencia y garantía de funcionamiento. (Br. Argenis Gil)

Informalmente, el término lenguaje formal se utiliza en muchos contextos (en las ciencias, en derecho, etc.) para referirse a un modo de expresión más cuidadoso y preciso que el habla cotidiana. Hasta finales de la década de 1990, el consenso general era que un lenguaje formal, era en cierto modo la versión «límite» de este uso antes mencionado: un lenguaje tan formalizado que podía ser usado en forma escrita para describir métodos computacionales. Sin embargo, hoy en día, el punto de vista de que la naturaleza esencial de los lenguajes naturales (sin importar su grado de «formalidad» en el sentido informal antes descrito) difiere de manera importante de aquella de los verdaderos lenguajes formales, gana cada vez más adeptos.

5


Un posible alfabeto sería, digamos, {a, b}, y una cadena cualquiera sobre este alfabeto sería, por ejemplo, ababba. Un lenguaje sobre este alfabeto, que incluyera esta cadena, sería: el conjunto de todas las cadenas que contienen el mismo número de símbolos a que b, por ejemplo. La palabra vacía (esto es, la cadena de longitud cero) es permitida y frecuentemente denotada mediante ε o λ. Mientras que el alfabeto es un conjunto finito y cada palabra tiene una longitud también finita, un lenguaje puede bien incluir un número infinito de palabras. Algunos ejemplos varios de lenguajes formales:  El conjunto de todas las palabras sobre {a, b}.  El conjunto {an: n es un número primo}.  El conjunto de todos los programas sintácticamente válidos en un determinado lenguaje de programación  El conjunto de entradas para las cuales una particular

máquina detiene.

de

Turing

se

Los lenguajes formales pueden ser especificados en una amplia variedad de maneras, como:  Cadenas producidas por una gramática formal (ver Jerarquía de Chomsky).  Cadenas producidas por una expresión regular.  Cadenas aceptadas por un autómata, tal como una máquina de Turing. Una pregunta que se hace típicamente sobre un determinado lenguaje formal es cuán difícil es decidir si incluye o no una determinada palabra v. Este tema es del dominio de la teoría de la computabilidad y la teoría de la complejidad computacional. Por contraposición al lenguaje propio de los seres vivos y en especial el lenguaje humano, considerados lenguajes naturales, se denomina lenguaje formal a los lenguajes «artificiales» propios de las matemáticas o la informática, los lenguajes artificiales son llamados lenguajes formales

6


(incluyendo lenguajes de programación). Sin embargo, el lenguaje humano tiene una característica que no se encuentra en los lenguajes de programación: la diversidad. En 1956, Noam Chomsky creó la Jerarquía de Chomsky para organizar los distintos tipos de lenguaje formal. Un Lenguaje normal o natural, como por ejemplo el lenguaje español e inglés, son la clase de lenguajes que han evolucionado con el paso del tiempo y tienen por fin la comunicación humana. Este tipo de lenguajes están en constante evolución y sus reglas gramaticales solo pueden ser explicadas y no determinadas en cuanto a la estructura del lenguaje. En contraste, un lenguaje formal está definido por reglas preestablecidas y se ajustan con rigor a ellas, ejemplos son los lenguajes computacionales como C o Pascal. En contraste, un lenguaje formal está definido por reglas preestablecidas y se ajustan con rigor a ellas, ejemplos son los lenguajes computacionales como C o Pascal.

Como especificar la sintaxis de un lenguaje: Se utiliza la jerarquía de chomsky; la jerarquía de Chomsky es una clasificación jerárquica de distintos tipos de gramáticas formales que generan lenguajes formales. Esta jerarquía fue descrita por Noam Chomsky en 1956. Define cuatro familias de gramáticas y lenguajes estas son: 0,1,2,3 gramáticas sin restricciones, de contexto, de contexto libre y regulares.  Gramáticas de tipo 0 (sin restricciones), que incluye a todas las gramáticas formales. Estas gramáticas generan todos los lenguajes capaces de ser reconocidos por una máquina de Turing. Los lenguajes son conocidos como lenguajes recursivamente enumerables. Nótese que esta categoría es diferente de la de los lenguajes recursivos, cuya decisión puede ser realizada por una máquina de Turing que se detenga.  Gramáticas de tipo 1 (gramáticas sensibles al contexto) generan los lenguajes sensibles al contexto. Estas gramáticas tienen reglas de la forma con Aun no terminal y α, β y γ cadenas de terminales y no

7


terminales. Las cadenas α y β pueden ser vacías, pero γ no puede serlo. La regla está permitida si S no aparece en la parte derecha de ninguna regla. Los lenguajes descritos por estas gramáticas son exactamente todos aquellos lenguajes reconocidos por una máquina de Turing no determinista cuya cinta de memoria está acotada por un cierto número entero de veces sobre la longitud de entrada.  Gramáticas de tipo 2 (gramáticas libres del contexto) generan los lenguajes independientes del contexto. Las reglas son de la forma con Aun no terminal y γ una cadena de terminales y no terminales. Estos lenguajes son aquellos que pueden ser reconocidos por un autómata con pila.  Gramáticas de tipo 3 (gramáticas regulares) generan los lenguajes regulares. Estas gramáticas se restringen a aquellas reglas que tienen en la parte izquierda un no terminal, y en la parte derecha un solo terminal, posiblemente seguido de un no terminal. La regla también está permitida si S no aparece en la parte derecha de ninguna regla. Estos lenguajes son aquellos que

pueden ser aceptados por un autómata finito. También esta familia de lenguajes pueden ser obtenidas por medio de expresiones regulares. Autómatas finitos. Los autómatas finitos utilizan estados y transiciones entre estados en respuesta a las entradas. Resultan útiles para construir diversos tipos de software, incluyendo el componente de análisis léxico de un compilador y los sistemas que permiten verificar la corrección de, por ejemplo, circuitos o protocolos Expresiones regulares. Definen una notación estructural que permite describir los mismos patrones que se pueden representar mediante los autómatas finitos. Se emplean en muchos tipos comunes de software, incluyendo herramientas para la búsqueda de patrones, por ejemplo, en textos o en nombres de archivo. Gramáticas independientes del contexto. Definen una importante notación para describir la estructura de los lenguajes de programación y de los conjuntos relacionados de cadenas de caracteres; resultan útiles en la construcción del analizador sintáctico de un compilador.

8


Máquinas de Turing. Son autómatas que modelan la potencia de las computadoras reales. Nos permiten estudiar la decidibilidad, es decir, el problema de qué puede o no puede hacer una computadora. También nos permiten distinguir los problemas tratables (aquellos que pueden resolverse en un tiempo polinómico) de los problemas intratables (los que no se pueden resolver en un tiempo polinómico). Demostraciones deductivas. Este método básico de demostración se basa en la construcción de listas de proposiciones que o bien son verdaderas o bien se deducen lógicamente de proposiciones anteriores Demostración de las proposiciones Si-entonces. Muchos teoremas son de la forma “si (algo) entonces (alguna otra cosa)”. La proposición o proposiciones que siguen a la parte “si” son las hipótesis y las que siguen a la parte “entonces” es la conclusión. Las demostraciones deductivas de las proposiciones si-entonces comienzan con la hipótesis y continúan con proposiciones que se deducen lógicamente a partir de la hipótesis y de las proposiciones anteriores hasta que se demuestra la

conclusión como una proposición más. Demostración de proposiciones Si-y-sólo-si. Existen otros teoremas de la forma “(algo) si y sólo si (alguna otra cosa)”. Se demuestran probando las proposiciones si-entonces en ambos sentidos. Un tipo similar de teorema establece la igualdad de los conjuntos descritos de dos formas diferentes; se demuestran probando que cada uno de los dos conjuntos está contenido en el otro. Demostración de la conversión contradictoria. En ocasiones, es más fácil demostrar una proposición de la forma “si H entonces C” demostrando la proposición equivalente: “si no C entonces no H”. Esta última se conoce como conversión contradictoria de la primera. Demostración por reducción al absurdo. En otros casos, es más conveniente demostrar la proposición “si H entonces C” demostrando “si H y no C entonces (algo que sabemos que es falso)”. Una demostración de este tipo se denomina demostración por reducción al absurdo. Contraejemplos. Algunas veces nos pedirán que demostremos

9


que una determinada proposición no es verdadera. Si la proposición tiene uno o más parámetros, entonces podemos demostrar que es falsa proporcio-

nando un único contraejemplo, es decir, una asignación de valores a los parámetros que hace que la proposición sea falsa.

Biografía Avram Noam Chomsky Avram Noam Chomsky (Filadelfia, Estados Unidos, 7 de diciembre de 1928) es un lingüista filósofo y activista estadounidense. Es profesor emérito de Lingüística en el Instituto Tecnológico de Massachusetts (MIT) y una de las figuras más destacadas de la lingüística del siglo XX, gracias a sus trabajos en teoría lingüística y ciencia cognitiva. Es, asimismo, reconocido por su activismo político, caracterizado por una fuerte crítica del capitalismo contemporáneo y de la política exterior de los Estados Unidos. Se ha definido políticamente a sí mismo como un anarquista o socialista libertario.

10


CONCLUSIONES

 Los lenguajes formales son de gran importancia en la sociedad para referirse de una forma más técnica y precisa.  Los lenguajes de programación son considerados lenguajes formales.  Los lenguajes formales se utilizan en la ciencia y a la computación.  Los lenguajes formales han sido clasificados por la jerarquía de Chomsky.  El avance de los lenguajes durante mucho tiempo ha venido evolucionando.

11


BIBLIOGRAFÍA  John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. (Sf). Introducción a la teoría de autómatas lenguajes y computación Tercera Edición.  Edgar Alberto Quiroga rojas. (2008). Modulo autómatas y lenguajes formales universidad nacional abierta y a distancia – unad facultad de ciencias básicas e ingeniería programa ingeniería de sistemas Bogotá d.c.

12


REVISTA DE INGENIERÍA DE SISTEMAS.

VOL. 1 .Año 2015 Universidad de Oriente, Núcleo de Monagas. Curso Especial de Grado. Maturín, Monagas Venezuela.

Editores. Br. José Vásquez. Br. Argenis Gil. Grupo PYTHON

Diseño Gráfico. Br. José Vásquez.

Contacto: josegvasquezg@gmail.com argenisgilmarval@gmail.com

13



Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.