You are on page 1of 10

TEMA 2. LENGUAJES FORMALES.

CONTENIDOS 2.1.2.2.2.3.2.4.2.5.2.6.-

Concepto de Lenguaje. Concepto y Operaciones sobre Tiras. Concepto de Gramtica. Notacin. Clasificacin de Chomsky. Notacin BNF.

2.1. CONCEPTO DE LENGUAJE

Un Lenguaje es un conjunto finito o infinito de oraciones, cada una de ellas de longitud finita y construidas por concatenacin a partir de un nmero finito de elementos (smbolos) y de acuerdo con un conjunto de reglas. Se denomina sintaxis al estudio de la estructura del lenguaje. Es el estudio funcional de la palabra dentro de la frase.

La siguiente definicin de lenguaje, debida a Chomsky, es aplicable a cualquier tipo de lenguaje, ya sea un lenguaje natural o un lenguaje de programacin.

Se denomina semntica al estudio del significado de las frases u oraciones de un lenguaje, sintcticamente correctas, y a su interpretacin dentro de un dominio. Un Smbolo es un elemento bsico del lenguaje. Un Alfabeto o vocabulario es el conjunto de todos los smbolos del lenguaje. Un alfabeto de smbolos puede ser por ejemplo el conjunto {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, +,-,*,/ } que podemos usar para representar una operacin aritmtica, por ejemplo: 154 * 2 - 7, esta operacin constituye una secuencia ordenada de smbolos, es decir una tira o sentencia de nuestro lenguaje.

2.2.- QUE SON LAS TIRAS ?

Una Tira (o sentencia) del lenguaje es una secuencia ordenada de los smbolos.

El concepto de tira es muy importante en la teora de lenguajes que iremos desarrollando. Por tanto intentaremos profundizar un poco ms tomando como referencia el conjunto de smbolos { a, b }. Las tiras que podemos formar a partir de este alfabeto son , a, b, aa, ab, ba, bb, aaa, aab, aba, baa, abb, bab, bba, bbb, aaaa, ...

NOTA: Las tiras ab y ba son distintas. es la tira mnima o tira nula, que no debemos confundir con el conjunto vaco , que es aquel que no tiene ningn elemento, ni tan siquiera la tira nula. Operaciones con tiras : Concatenacin de tiras es la mera yuxtaposicin de las mismas. Ejemplo => Sea x = aab ; y = bbab x <concatenado> y, bien xy es igual aabbbab Ejemplo =>x = x = x

La concatenacin de la tira nula con cualquier otra tira es esta ltima. Longitud de una tira x es el nmero de caracteres que la forman y se indica con dos barras verticales |x|. Potencia de una tira es la concatenacin de la misma tantas veces como indique el exponente. Ejemplo => sea x la tira abc entonces x0 =; x1 = abc; x2 = abcabc Ejemplo => || = 0; |a| = 1; |b| = 1; |ababa| = 5

Dados dos conjuntos de tiras A y B se define el producto cartesiano de A por B, denominado AB como el conjunto de tiras resultante de la concatenacin de una tira del conjunto A con una tira del conjunto B. Ejemplo => Sea A={ a,bc } entonces AB = {a,bc,aa,bca,acde,bccde} ; B={ , a, cde }

Operaciones con conjuntos de tiras :

As mismo se define la potencia de un conjunto como el producto cartesiano de un conjunto por s mismo tantas veces como indique el exponente. Ejemplo => Sea A={a, bc} A2 = {aa,abc,bca,bcbc} A3 = {aaa,aabc,abca,abcbc,bcaa,bcabc,bcbca,bcbcbc} ; B={ , a, cde}

Definimos el cierre transitivo de un conjunto A, que denominaremos A+ como la unin de todas sus potencias positivas. Definimos el cierre transitivo y reflexivo (estrella de Klenne) de A, que denominaremos A* como la unin de todas sus potencias positivas ms la tira nula. A* = { } U A+ A+ = A1 U A2 U A3 U ...

2.3.- CONCEPTO DE GRAMTICA

- N es un vocabulario no terminal de smbolos, que son elementos auxiliares en la definicin de la gramtica y que no figuran en la definicin del lenguaje. - T es un vocabulario terminal, es decir es el conjunto de smbolos utilizados para formar las cadenas del lenguaje definido por la gramtica. - P es un conjunto de reglas de produccin que permite generar tiras o cadenas a partir de otras. Estas tiras estn compuestas por smbolos que pertenecen o bien a N o a T. Ejemplos de Gramticas: - S es un smbolo especial del conjunto N que se toma como smbolo inicial o axioma. Ejemplo => + pertenece a T. Ejemplo => <EXPRESIN> pertenece a N.

Definimos gramtica como el conjunto de smbolos y reglas que permiten definir un determinado lenguaje. Formalmente una gramtica es un cuarteto { N,T,P,S } en donde =>

G: (N,T,P,S) N={A,B,C}; T={a,b} P={ A -> aBb aBb -> ababb A -> aB B -> Bb B -> a } S=A; El lenguaje definido por una gramtica G se denomina L(G) y es el conjunto de tiras de smbolos terminales que se obtienen partiendo del axioma S y empleando las reglas del conjunto P en cualquier orden. Ejercicio => Para las siguientes gramticas determinar el lenguaje que definen cada una de ellas: a) G = ( {E,D}, {0,1,2,3,4,5,6,7,8,9}, P, E) P={ E -> ED D -> 2 E -> D D -> 3 D -> 0 D -> 4 D -> 1 .... } Se dicen que dos gramticas son equivalentes cuando generan el mismo lenguaje.

b) G = ( {S,E,T,F}, {(,),+,*,a}, P, S) P={ S -> E E -> E+T E -> T T -> T*F T -> F F -> (E) T -> a } c) G = ( {S,B,C}, {a,b,c}, P, S) P={ S -> aSBC CB -> BC bC -> bc } S -> abC bB -> bb cC -> cc

2.4.- NOTACIN

1- Los elementos del vocabulario terminal T pueden ser :

En los presentes apuntes se seguir la siguiente notacin en lo referente a gramticas : a) Letras minsculas del comienzo del alfabeto => a,b,c,... b) Operadores => +,-,*,/,.... c) Caracteres especiales => (,),[,&,... d) Dgitos => 0,1,2,3,...,9 e) Palabras en minsculas => if, then ,... a) Letras maysculas del comienzo del alfabeto => A,B,C,... b) Palabras en mayscula => EXPRESIN, FACTOR, TERMINO,... c) Nombres entre parntesis angulares => <EXPRESIN>,...

2- Los elementos del vocabulario no terminal N pueden ser :

3- El vocabulario completo V={N U T}, que comprende terminales y no terminales lo indicaremos con :

4- Las tiras terminales pertenecientes al conjunto T* :

a) Letras maysculas del final del alfabeto X,Y,Z,..., con subndices en caso necesario X1, X2, X3,... a) Letras minsculas del final del alfabeto => t,u,v,w,... a) Letras minsculas griegas => , ,...

5- Las tiras del vocabulario completo, pertenecientes a V*, es decir a

{N U T}* :

6- La tira nula se representa con el smbolo => .

2.5.- CLASIFICACION DE LAS GRAMTICAS.

La clasificacin de la gramticas fue dada por Chomsky en funcin de las reglas de produccin que forman el conjunto P de la gramtica. Segn esta clasificacin existen cuatro tipos: Tipo 0 : Gramticas con estructura de frase. Las reglas de P son de la forma => ->

Ejemplo: Sea la gramtica G=( {A,B,C}, {a,b,c}, P, A) P={ } A -> aBCd ab -> Cb aCb -> B aB -> a a -> C B ->

pertenece a (N U T)+ pertenece a (N U T)*

Tipo 1 : Gramticas sensibles al contexto. Las reglas de P son de la forma => A -> , pertenece a (N U T)* pertenece a (N U T)* A pertenece a N

Una gramtica es dependiente del contexto cuando de un smbolo no terminal A se deriva una cadena pero slo cuando A est dentro del contexto ... Ejemplo: sea la gramtica G = ( {A,B,C}, {a,b,c}, P, A) P={ A -> aBCd acBb -> acbCb aB -> aB aB -> aCb Cab -> abab

Tipo 2 : Gramticas de contexto libre. Las reglas de P son de la forma => A -> A pertenece a N pertenece a (N U T)*

Ejemplo : Sea la gramtica G=( {E,T,F}, {a,+,*,(,)}, P, E) P={

Existen dos clases de gramticas regulares, las regulares por la izquierda y las regulares por la derecha. En las gramticas regulares por la derecha se cumple que las reglas de P son de la forma : A -> Ba o bien A -> a A,B pertenece a N a pertenece a T U {} A,B pertenece a N a pertenece a T U {}

Tipo 3 : Gramticas regulares.

E -> E+T E -> T T -> T*F T -> F F -> (E) F -> a

Las gramticas regulares por la izquierda son aquellas cuyas reglas son de la forma : A -> aB o bien A -> a

Ejemplo: Sea la gramtica G=( {S,A,BA}, {0,1}, P, S) P={ } S -> 0A A -> 0A B -> 1B S -> 1B A -> 0S B -> 1

B -> 0

S -> 0 A -> 1B

Las gramticas regulares son un subconjunto de las gramticas de contexto libre, stas a su vez son un subconjunto de las gramticas sensibles al contexto y stas ltimas estn englobadas dentro de las gramticas tipo 0, es decir: G(3) < G(2) < G(1) < G(0) Por lo que se refiere a los lenguajes , estos pueden tambin clasificarse en lenguajes con estructura de frase, lenguajes de contexto sensitivo, lenguajes de contexto libre y lenguajes regulares, atendiendo al orden de la gramtica que es capaz de generarlos.

Se define como lenguaje regular aquel que puede ser expresado mediante una gramtica regular.

Se define lenguaje de contexto libre aquel que puede ser generado por una gramtica de contexto libre, no existiendo ninguna gramtica regular equivalente capaz de expresarlo ( ya que en ese caso sera un lenguaje regular). Y anlogamente se definen los lenguajes sensibles al contexto y los lenguajes con estructura de frase.

Al igual que con las gramticas se cumple la inclusin del conjunto de los lenguajes regulares en los lenguajes de contexto libre, incluidos stos a su vez en los de contexto sensitivo, y estos en los de estructura de frase. L(3) < L(2) < L(1) < L(0) A diferencia de las gramticas, no existe ningn algoritmo para determinar de que tipo es un determinado lenguaje. 2.6.- NOTACION BNF

La notacin BNF (Bakus Naur Form) se usa para dar una definicin abreviada de las reglas que forman una gramtica, para lo cual usamos las siguientes convenciones : a) Alternativas de una regla => <digito> -> 0 1 2 3 4 5 6 7 8 9

b) Llaves => { } , Indican que lo que se encuentra incluido en ellas puede repetirse cero o un nmero determinado de veces. c) Parntesis cuadrados => [ ], Indica que lo que hay entre ellos es opcional, es decir se puede repetir cero o una vez. <sent-IF> -> if <cond> then <sent> [ else <sent> ] <id-FORTRAN> -> <letra> { <alfanumrico> }

You might also like