Post on 21-Jul-2016
description
Revista de Ingeniería de Sistemas
LENGUAJES
FORMALES
Áreas de Grado Ciencias de la Computación
Contenido
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
Volumen I – Año 2015
Lenguajes Formales
EDITORIAL
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 de Turing se
detiene.
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 proposicio-
nes 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.
13
Contacto:
josegvasquezg@gmail.com
argenisgilmarval@gmail.com