ine5317 linguagens formais e compiladores aula 4:...

39
INE 5317 Linguagens Formais e Compiladores Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: [email protected] URL: www.inf.ufsc.br/~silveira AULA 4: Gramáticas baseado em material produzido pelo prof Olinto José Varela Furtado

Upload: phamnga

Post on 08-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

INE5317 Linguagens Formais e

Compiladores

Ricardo Azambuja SilveiraINE-CTC-UFSC

E-Mail: [email protected]: www.inf.ufsc.br/~silveira

AULA 4: Gramáticasbaseado em material produzido pelo prof Olinto José Varela Furtado

Page 2: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 2

Conceitos Básicos● Alfabeto (ou vocabulário): É um conjunto finito,

não vazio, de símbolos (elementos). Representaremos um alfabeto por.– Exemplos:

● V = {a, b, c,...,z }● V = {0, 1}● V = {a, e, i, o ,u}

Page 3: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 3

Conceitos Básicos– Sentenças: Uma sentença sobre um alfabeto V, é

uma seqüência (ou cadeia) finita de símbolos do alfabeto.

● Exemplo de sentenças sobre V = { a , b }: – a, b, aa, ab, bb, aaa, aab, aba, baa, ...

– Tamanho de uma sentença: Seja w uma sentença, o tamanho da sentença w, denotado por |w|, é definido pelo número de símbolos (elementos do alfabeto) que compõem w.

● Exemplos: – Seja V = { a , b , c }– se x = aba, então |x| = 3– se x = c, então |x| = 1

Page 4: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 4

Conceitos Básicos– Sentença vazia:

● É uma sentença constituída de nenhum símbolo; isto é, uma sentença de tamanho 0 (zero).

● Observações: ● Representaremos a sentença vazia por ε (épsolon).● Por definição, |ε| = 0

– Potência de uma sentença:● Seja w uma sentença, a n-ésima potência de w,

representada por wn, significa w repetido n vezes.– Exemplos:

● se x = ab, então x3 = ababab● Para uma sentença ∀ x, x0 = ε

Page 5: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 5

Conceitos Básicos

● Fechamento reflexivo: sendo Σ um alfabeto qualquer, Σ* representa o conjunto de todas as palavras possíveis de serem construídas com Σ (fecho transitivo reflexivo),

● Fechamento transitivo: Σ+ representa o conjunto de todas as palavras possíveis de serem construídas com Σ (fecho transitivo), exceto a palavra vazia.

● ∑+ denota ∑* - { ε }.● Prefixo (respectivamente, Sufixo) de uma palavra é

qualquer seqüência inicial (respectivamente, final) de símbolos da palavra

● Subpalavra é qualquer seqüência de símbolos contígua da palavra

Page 6: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 6

Fechamento de um alfabeto– Seja V um alfabeto

● O fechamento reflexivo (ou simplesmente fechamento) de V, representado por V*, é dado pelo conjunto de todas as possíveis seqüências que podem ser formadas a partir de V, inclusive a sentença vazia.

● O fechamento transitivo (ou fechamento positivo) de V, representado por V+, é dado por V* - { ε }.

– Exemplos: ● Seja V = { 0, 1 }, temos que:

– V* = {ε, 0, 1, 00, 01, 11, 000,...}– V+ = {0, 1, 00 ,01, 11, 000,...}

Page 7: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 7

Exemplos

● a) abcb é uma palavra sobre o alfabeto {a, b, c};● b) Se ∑ = {a, b}, então:

∑+ = {a, b, aa, ab, ba, bb, aaa,...} ∑* = {ε , a, b, aa, ab, ba, bb, aaa,...}● c) abcb = 4 e ε = 0;● d) Qualquer prefixo ou sufixo de uma palavra é uma

subpalavra.

Page 8: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 8

Linguagens e suas representações

– Uma linguagem L sobre um alfabeto V, é um subconjunto de V*; isto é: L ⊆ V*.

– Linguagem Finita: pode ser representada por enumeração.

– Exemplo: A linguagem definida como sendo o conjunto dos inteiros positivos pares maiores que 0 e menores que 20, pode ser representado por: L = {2, 4, 6, 8, 10, 12, 14, 16, 18}.

– Linguagem Infinita: impossibilidade de usarmos enumeração,

– Exemplo: A linguagem definida como sendo o conjunto dos inteiros pares poderia ser representada por V ={2, 4, 6, 8, 10,...} que, que apesar de intuitiva, não é finita e nem precisa.

Page 9: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 9

Representação de linguagens

● Considerando um alfabeto Σ e, dado que uma linguagem é sempre um subconjunto de Σ*, pode-se especificar uma linguagem por meio do esquema utilizado para representar conjuntos infinitosL = {w ∈ Σ* | w tem a propriedade P}

● ExemploL= {w ∈ {0,1}* | w consiste em n 0’s seguidos de n 1’s}{01,0011,000111,00001111,…}

Page 10: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 10

Linguagens e suas representações

● Reconhecedores – – Dispositivos formais que nos permitem verificar

se uma determinada sentença pertence ou não a uma determinada linguagem

– é uma representação das sentenças de uma linguagem sob o ponto de vista do reconhecimento de tais sentenças

– Esses dispositivos denominam-se autômatos; ● autômatos finitos, autômatos de pilha e máquinas de

turing, por exemplo, podem ser destacados como importantes classes de autômatos.

Page 11: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 11

Linguagens e suas representações

● Sistemas Geradores– Dispositivos formais dotados de mecanismos que

permitem a geração sistemática das sentenças de uma linguagem

– representação sob o ponto de vista da geração das sentenças de uma linguagem

– Os principais sistemas geradores disponíveis são as gramáticas

Page 12: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 12

Linguagens e suas representações

● Linguagens Formais: São linguagens que podem ser representadas de maneira finita e precisa através de sistemas com sustentação matemática (dispositivos formais ou modelos matemáticos).

Page 13: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 13

O que é uma gramática● Um sistema gerador de linguagens;● Um sistema de reescrita;● Uma maneira finita de descrever (representar)

uma linguagem; ● Um dispositivo formal usado para especificar

de maneira finita e precisa uma linguagem potencialmente infinita

Page 14: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 14

Finalidade de uma gramática– Definir o subconjunto de V* que forma uma

determinada linguagem. Exemplo:● (um subconjunto da gramática da língua portuguesa)

<sentença> :: = <sujeito> <predicado><sujeito> :: = <substantivo> | <artigo> <substantivo> | <artigo> <adjetivo> <substantivo><predicado> :: = <verbo> <objeto><substantivo> :: = joão | Maria | cachorro | livro | pão<artigo> :: = o | a<adjetivo> :: = pequeno | bom | bela<verbo> :: = morde | le | olha<objeto> :: = <substantivo> | <artigo> <substantivo> | <artigo> <adjetivo> <substantivo>

Page 15: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 15

Definição formal de gramática

● G = (Vn, Vt, P, S) – onde:

● Vn – conjunto finito de símbolos não-terminais. ● Vt – conjunto finito de símbolos terminais.

– convenções: Vn ∩ Vt = ϕ e Vn ∪ Vt = V● P – conjunto finito de pares (α , β) denominados

produções (ou regras gramaticais ou de sintaxe). – P = { α :: = β |α ∈ V*VnV* ∧ β ∈ V*}

● S – É o símbolo inicial da gramática.

Page 16: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 16

Exemplo

● Formalizando o subconjunto da gramática da língua portuguesa apresentado, teríamos:– Gportugues = (Vn, Vt, P, S), onde:

● Vn = { <sentença> , <sujeito> , <predicado> , <substantivo>, <artigo> ,<adjetivo>, <predicado> , <verbo>, <objeto>}

● Vt = { joão, maria , cachorro, livro , pão, o, a, pequeno, bom, bela , morde , le , olha }

● P = é o conjunto das regras gramaticais apresentado● S = <sentença>

Page 17: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 17

Exemplos● gramáticas podem que representar as

seguintes linguagens:– Inteiros positivos menores que 1000– Inteiros positivos– Inteiros positivos pares– Inteiros positivos com número ímpar de dígitos– Números inteiros e reais

Page 18: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 18

Outros exemplos– Dado Vt = { a, b }, uma linguagem pode ser

construída com uma gramática cuja linguagem gerada seja:

● O conjunto de sentenças cujo último símbolo seja igual o primeiro

● O conjunto de sentenças de tamanho par● O conjunto de sentenças que não possuam b’s

consecutivos● O conjunto de sentenças onde o #a’s seja igual o #b’s e

todos os a’s precedam todos os b’s● O conjunto de sentenças onde o #a’s = #b’s

Page 19: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 19

Notação utilizada● ::= → ● V

N – Letras de “A” a “T” e palavras escritas com letras

maiúsculas (símbolos não-terminais)● V

T – Letras de “a” a “t”e palavras escritas com letras

minúsculas, dígitos e caracteres especiais (símbolos terminais)

● VT

* - u, v, x, y, w, z (sentenças com símbolos terminais)

● {VN ∪ V

T} – U, V, X, Y, W, Z (símbolos terminais e não-

terminais)● {V

N ∪ V

T}* - α, β, γ, δ, ..., ω ( exceto ε )(sentenças com

símbolos terminais e não-terminais)

Page 20: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 20

Derivação e redução● São operações de substituição que formalizam o uso

de gramáticas– Seja G = (Vn, Vt, P, S) uma gramática ∀ ∧ Seja ( δαγ)

∈ (Vn ∪ Vt)* ● Derivação em um passo (ou direta):

– δαγ ⇒ δβγ ⇔ α→β ∈ P● Derivação em zero ou mais passos

● α ⇒∗ β ⇔ α ⇒ α1 ⇒ α2 ⇒ ... ⇒ αν ⇒β:; p/ n ≥ 0● Se α ⇒∗ β em 0 (zero) passos, então α = β .

● Derivação em um ou mais passos ● α ⇒+β ⇔

– α ⇒ α1 ⇒ α2 ⇒ ... ⇒ αν ⇒β:; p/ n ≥ 1

Page 21: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 21

Derivação e redução●

● Redução em um passo (ou direta)● δαγ ⇐ δβγ

● Redução em zero ou mais passos● δαγ ⇐∗ δβγ● Redução em um ou mais passos

● δαγ ⇐+ δβγ

Page 22: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 22

Sentença, Forma Sentencial e Linguagem

– Seja G = (Vn, Vt, P, S) :– Sentença – seqüência de terminais produzida a

partirdo símbolo inicial de G– S ⇒+ x

– Forma Sentencial ● seqüência de terminais e/ou não-terminais produzida a

partir do símbolo inicial de G● Se S ⇒α ⇒ β ⇒ ... ⇒ γ. ● então α.β,..., γ são formas sentenciais de G.

Page 23: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 23

Sentença, Forma Sentencial e Linguagem

● Linguagem gerada – conjunto de sentenças derivadas a partir do símbolo inicial de G

● L(G) = { x | x ∈ Vt* ∧ S ⇒+ x }● Gramáticas Equivalentes – Duas gramáticas

G1 e G2 são equivalentes entre si, se e somente se – L(G1) = L(G2).

– G1 ≡ G2 ⇔ L(G1) = L(G2)

Page 24: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 24

Exemplo● Seja a gramática G = (V,T,P,S), onde:

– V = {S,D}– T = {0,1,2, ..., 9}– P = {S→D, S →DS, D → 0|1|2| ... |9 }

● Gera sintaticamente o conjunto dos números naturais

● O número 243 é gerado da seguinte forma:– S ⇒ DS ⇒ 2S ⇒ 2DS ⇒ 24S ⇒ 24D ⇒ 243

Page 25: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 25

Exemplo● Ex: G = ({S}, {0, 1}, P, S) com

– P = {S → 0S1, S → 01}. Assim,– S ⇒ 0S1⇒ 00S11 ⇒ 03S13 ⇒ ... que é igual a 0n1n

para n ≥¸ 1.– Logo, L(G) = {0n1n |n ≥¸ 1}¸ 1g.

● Notação:– n vezes aaa ... = an

Page 26: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 26

Exemplo– A gramática G = ({S,X,Y,A,B,F},{a,b},P,S) onde:

● P = { S → XY,X → XaA | XbB | F,Aa → aA, Ab → bA, AY → Ya,Ba → aB, Bb → bB, BY→ Yb,Fa → aF, Fb → bF, FY → ε}

– Gera a linguagem● {ww | w é palavra de {a, b}* }● Por exemplo, a palavra baba é derivada por

– S ⇒ XY ⇒ XaAY ⇒ XaYa ⇒ XbBaYa ⇒ XbaBYa ⇒ XbaYba ⇒ FbaYba ⇒ bFaYba ⇒ baFYba ⇒ baba

Page 27: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 27

Expressões Regulares● Um outro formalismo importante, utilizado na

definição de linguagens regulares, consiste nas chamadas expressões regulares.

● As expressões regulares, diferentemente dos autômatos, fornecem uma forma declarativa de expressar cadeias de símbolos que são considerados válidos em uma linguagem

Page 28: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 28

Definição– uma expressão regular sobre um alfabeto Σ é

indutivamente definida como segue:● Ø - denota a linguagem vazia.● ε - denota a linguagem contendo exclusivamente a

palavra vazia, ou seja, {ε}.● Qualquer símbolo x ∈ Σ é uma expressão regular e

denota a linguagem contendo a palavra unitária x, ou seja {x}.

● Se r e s são expressões regulares que denotam os conjuntos R e S, respectivamente, então (r+s), (rs), e (r*) são expressões regulares que denotam os conjuntos R∪S, RS = { uv | u ∈ R e v ∈ S} e R*, respectivamente

Page 29: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 29

Exemplos● 00 é uma expressão regular que denota a palavra 00.● A expressão (0+1)* denota todas palavras sobre S={0

,1}.● (0 +1)*00(0 +1)* denota as cadeias de 0s e 1s com

pelo menos dois 0s consecutivos como subpalavra.● (0+1)*001 denota as cadeias de 0s e 1s que terminam

por 001.● a+b* denota as cadeias que tem qualquer quantidade

de a’s (mínimo1) seguidos de qualquer quantidade de b’s OU nenhum. Exemplo = {a, aaa, aab, aabbbbbb, ab, abbbb, ...}

Page 30: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 30

Exemplos

Page 31: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 31

Exemplo

Page 32: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 32

Tipos de gramáticas● As linguagens são denominadas,

respectivamente, – Linguagens Sem Restrições – Linguagens Sensíveis ao Contexto – Linguagens Livres de Contexto – Linguagens Regulares

Page 33: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 33

Tipos de gramáticas

Linguagens do Tipo 0

Linguagens do Tipo 1

Linguagens do Tipo 2

Linguagens do Tipo 3

Page 34: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 34

Tipos de gramática● Classificação ou hierarquia de CHOMSKY

– Dado uma gramática G = (V, T, P, S), – A diferença reside nas restrições impostas nas regras de

derivação:● Gramática Tipo 3 ou Gramática Regular:

– P = {A → aX | A ∈ V, a ∈ T ∧ X ∈ {V ∪ {ε}}}– No lado direito da produção há no máximo um não-

terminal sempre acompanhado de uma variável terminal

● Gramática Tipo 2 ou Gramática Livre de Contexto:– P = {A → β A ∈ V ∧ β ∈ (V ∪ T)*}– O lado esquerdo da produção contém exatamente uma

variável● Gramática Tipo 1 ou Gramática Sensível ao Contexto:

– P = {α → β |α| ≤ |β|, α ∈ (V ∪ T)*V(V ∪ T)* ∧ β ∈ (V ∪ T)+}

● Gramática Tipo 0 ou gramática sem restrições:– P = {α → β | α ∈ (V ∪ T)*V(V ∪ T)* ∧ β ∈ (V ∪ T)*}

Page 35: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 35

Sentença Vazia● Considerações:

– 1 - A motivação para o estudo de gramáticas foi à necessidade de e encontrar representações finitas para as linguagens.

– 2 - Se uma linguagem L possui uma descrição finita, então L1 = L ∪ {ε}, também deveria possuir descrição finita.

– 3 - Pela definição dada, as G.S.C., G.L.C. e G.R. não aceitam produções da forma S → ε - logo, a sentença vazia (ε) não pode pertencer as L.S.C., L.L.C. ou L.R..

Page 36: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 36

Sentença vazia● Redefinição de G.S.C. G.L.C. e G.R.

– G.S.C., G.L.C. e G.R., podem ter a produção S→ ε , desde que:

● 1 – S seja o símbolo inicial da gramática;● 2 – S não apareça no lado direito de nenhuma

produção da gramática em questão.– Observação: segundo esta redefinição, a produção

S → ε só poderá ser usada na derivação de ε (a sentença vazia).

Page 37: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 37

Recursividade das G.S.C.

● Uma gramática G é recursiva se existe um algoritmo que determine, para qualquer seqüência w, se w é ou não gerada por G.

● Uma gramática G é recursivamente enumerável se existe uma procedure que determine, para qualquer seqüência w, se w é ou não gerada por G.

Page 38: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 38

Gramatica regular● Gramáticas lineares

– Seja G = (V, T, P, S) onde A e B ∈ Ve w é uma palavra de T*, G é uma

● Gramática linear a direita se todas as regras são da forma:– A→wB ou A→w

● Gramática linear a esquerda se todas as regras são da forma:– A→Βw ou A→w

● Gramática linear unitária a direita ou a esquerda se adicionalmente

– |w| ≤1● Uma gramática regular é qualquer gramática linear

Page 39: INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticasricardo.silveira/INE5317/Laminas/INE5317Aula4.pdf · 06/09/06 Ricardo Silveira 10 Linguagens e suas representações Reconhecedores

06/09/06 Ricardo Silveira 39

Exemplos● Livro pag 56