Lenguajes formales

14
Revista de Ingeniería de Sistemas LENGUAJES FORMALES Áreas de Grado Ciencias de la Computación

description

 

Transcript of Lenguajes formales

Page 1: Lenguajes formales

Revista de Ingeniería de Sistemas

LENGUAJES

FORMALES

Áreas de Grado Ciencias de la Computación

Page 2: Lenguajes formales

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.

Page 3: Lenguajes formales

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

Page 4: Lenguajes formales

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

Page 5: Lenguajes formales

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

Page 6: Lenguajes formales

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

Page 7: Lenguajes formales

(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

Page 8: Lenguajes formales

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

Page 9: Lenguajes formales

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

Page 10: Lenguajes formales

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

Page 11: Lenguajes formales

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

Page 12: Lenguajes formales

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

Page 13: Lenguajes formales

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:

[email protected]

[email protected]

Page 14: Lenguajes formales