Prof. Yandre Maldonado e Gomes da Costa

Slides:



Advertisements
Apresentações semelhantes
Linguagens Livre-de-contexto
Advertisements

FAPE - Curso de Ciência da Computação
Software Básico Silvio Fernandes
Capítulo 7 Tableaux semânticos e resolução na Lógica Proposicional
Linguagem Fabrício Dias
Teoria da Computação MÁQUINA DE TURING (Continuação) Fabrício Dias
I - Noções dum compilador
Prof. Yandre Maldonado e Gomes da Costa
LFA - Ambiguidade - Equivalência de gramáticas - Hierarquia de Chomsky
Linguagens Formais e Autômatos
Prof. Yandre Maldonado e Gomes da Costa
TEORIA DA COMPUTAÇÃO Parte II  Linguagens Livres de Contexto
TEORIA DA COMPUTAÇÃO Parte III  Máquina de Turing
VETORES.
Teoria da Computação FIC– Ciência da Computação
Deyvisson, Rafael M.P., Renato, Robson C.F., Rodolfo
Software Básico Silvio Fernandes
Forma Normal de Chomsky
Resolução.
Compiladores Prof. Yandre Maldonado Compiladores - Prof. Yandre - 1.
Análise Sintática - Continuação
Jorge Muniz Barreto UFSC-INE 2000
Linguagens Livres de Contexto
Linguagens Livre de Contexto
esquerda p/ direita,read only
Identificando Linguagens Não Regulares
INTRODUÇÃO À PROGRAMAÇÃO
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Análise Sintática Ascendente
Relações em uma Gramática
Linguagem de Prog. e Programas
01(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.
Construção de Compiladores
Construção de Compiladores
Prof. Luiz A M Palazzo Pelotas, fevereiro de 2011
Exercícios Linguagens Formais.
Frase - Oração - Período
A Lógica das Sentenças Abertas Profa. Ana Florencia Aula 9
Noção de conjuntos, suas representações e conceitos fundamentais
Conjunto Dos Números Racionais
Conceitos Básicos.
Prof. Bruno Moreno Aula 4 – 11/03/2011
Informática Teórica Engenharia da Computação
Compiladores, Aula Nº 9 João M. P. Cardoso
Lemas (Sudkamp)  .
Gramáticas Livres de Contexto
Informática Teórica Engenharia da Computação
Conjuntos (continuação)
Sintaxe e Semântica Prof.: Gláucya Carreiro Boechat
Teoria da Computação Aula 1 Prof. Fabiano Sabha.
Expressões Regulares e Gramáticas
Inteligência Artificial
1.
Capítulo II Gramáticas e Linguagens
Máquina de Turing Universal
Matemática I AULA 1 Profª Karine R. de Souza ..
Analise sintática aula-07-analise-sintática.pdf.
Esquemas L-atribuídos
Tópicos em Sistemas Inteligentes
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
Linguagens Formais e Autômatos
LFA: Unidade 03 – Parte B Engenharia/Ciência da Computação
Programação Lógica com Prolog
Linguagens Livres de Contexto
Engenharia/Ciência da Computação
tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06.
Reverso de uma Linguagem Regular
Faculdade Pernambuca - FAPE Compiladores Abril/2007 Compiladores Abril/2007.
Informática Teórica Engenharia da Computação. Teoria da Computação Contexto do que vamos começar a estudar As linguagens também podem ser definidas formalmente.
Transcrição da apresentação:

Prof. Yandre Maldonado e Gomes da Costa Gramática Prof. Yandre Maldonado e Gomes da Costa Gramática - Prof. Yandre - 1

Gramática Gramática é um mecanismo que nos permite definir formalmente uma linguagem; Através dela pode-se gerar todas as sentenças da linguagem definida por ela; Gramática - Prof. Yandre - 2

Gramática Gramática é uma quádrupla ordenada G = (V, T, P, S), onde: V é um conjunto finito de símbolos não-terminais (ou variáveis); T é um conjunto finito de símbolos terminais disjunto de V; P é um conjunto finito de pares, denominados regras de produção tal que a primeira componente é palavra de (VT)+ e a segunda componente é palavra de (VT)*; S é um elemento de V, denominado símbolo inicial (ou símbolo de partida). Gramática - Prof. Yandre - 3

Gramática Os símbolos de T são aqueles que aparecem nos programas de uma linguagem de programação. É o alfabeto em cima do qual a linguagem é definida; Os elementos de V são símbolos auxiliares que são criados para permitir a definição das regras da linguagem. Eles correspondem à “categorias sintáticas” da linguagem definida: Português: sentença, predicado, verbo, ...; Pascal: programa, bloco, procedure, ...; Gramática - Prof. Yandre - 4

Gramática Uma regra de produção (, ) é representada por ; As regras de produção definem as condições de geração das sentenças; A aplicação de uma regra de produção é denominada derivação; Uma regra  indica que  pode ser substituído por  sempre que  aparecer; Enquanto houver símbolo não-terminal na cadeia em derivação, esta derivação não terá terminado; Gramática - Prof. Yandre - 5

Gramática O símbolo inicial é o símbolo através do qual deve iniciar o processo de derivação de uma sentença; Observações: VT =  Os elementos de T são os terminais. Procuraremos representá-los por letras minúsculas (a, b, c, d, ...) Os elementos de V são os não-terminais. Procuraremos representá-los por letras maiúsculas (A, B, C, D, ...) As cadeias mistas, isto é, aquelas que contém símbolos de V e símbolos de T (cadeias pertencentes à (VT)* ) serão representadas por letras gregas (, , , , ...) Gramática - Prof. Yandre - 6

Gramática Exemplo: G1 = ({S, A, B}, {a, b}, P, S) onde: P = { 1) S  AB 2) A  a 3) B  b } Quais as cadeias terminais geradas por esta gramática? Gramática - Prof. Yandre - 7

Gramáticas G2 V = {Sentença, Sn, Sv, Artigo, Verbo, Substantivo, Complemento} T = {peixe, isca, mordeu, o, a} P = { 1) Sentença  Sn Sv 2) Sn  Artigo Substantivo 3) Sv  Verbo Complemento 4) Complemento  Artigo Substantivo 5) Artigo  o 6) Artigo  a 7) Substantivo  peixe 8) Substantivo  isca 9) Verbo  mordeu } S = Sentença Gramática - Prof. Yandre - 8

G3 - Eliminando os problemas de concordância de gênero V = {Sentença, Sn, Sv, ArtigoF, ArtigoM, Verbo, SubstantivoF, SubstantivoM, Complemento} T = {peixe, isca, mordeu, o, a} P = { 1) Sentença  Sn Sv 2) Sn  ArtigoF SubstantivoF 3) Sn  ArtigoM SubstantivoM 4) Sv  Verbo Complemento 5) Complemento  ArtigoF SubstantivoF 6) Complemento  ArtigoM SubstantivoM 7) ArtigoF  a 8) ArtigoM  o 9) SubstantivoF  isca 10) SubstantivoM  peixe 11) Verbo  mordeu } S = Sentença Gramática - Prof. Yandre - 9

Gramáticas BNF - Forma Normal de Backus Substitui o símbolo “” por “::=”; Os não-terminais são ladeados por “<” e “>”; É usada para regras que apresentam um único símbolo não-terminal do lado esquerdo; Quando houverem repetições do lado esquerdo, do tipo: <A> ::= 1 <A> ::= 2 ... <A> ::= n escreve-se: <A> ::= 1 | 2 | ... | n * Os símbolos <, >, :, = e | não fazem parte da linguagem, apenas ajudam a descrevê-la. Gramática - Prof. Yandre - 10

G3 - Descrição em BNF 1) <Sentença> ::= <Sn> <Sv> 2) <Sn> ::= <ArtigoF> <SubstantivoF> | <ArtigoM> <SubstantivoM> 4) <Sv> ::= <Verbo> <Complemento> 5) <Complemento> ::= <ArtigoF> <SubstantivoF> | <ArtigoM> <SubstantivoM> 7) <ArtigoF> ::= a 8) <ArtigoM> ::= o 9) <SubstantivoF> ::= isca 10) <SubstantivoM> ::= peixe 11) <Verbo> ::= mordeu } S = <Sentença> Gramática - Prof. Yandre - 11

Árvore de Derivação Sintática <sentença> <sv> <sn> <artigo> <substantivo> <verbo> <complemento> o peixe mordeu a isca Gramática - Prof. Yandre - 12

Gramáticas Geração direta (): Considere , , ,   (V  T)* Uma cadeia  gera diretamente () uma cadeia  sse:     P Gramática - Prof. Yandre - 13

Gramáticas Geração (*): Considere , , ,   (V  T)* Uma cadeia  gera (*) uma cadeia  sse:  1, 2, ..., n tal que   1  2 ...  n   n0 Gramática - Prof. Yandre - 14

Gramáticas Assim, em G1 temos: S * ab S * aB AB * ab E em G3, temos: <sentença> * o peixe mordeu a <subst.> <complemento> * o <substantivo> Gramática - Prof. Yandre - 15

Gramáticas Definições: Forma sentencial: uma cadeia   (VT)* é uma forma sentencial de uma gramática sse S  , ou seja,  é um embrião para alguma sentença gerada pela gramática, ou a própria sentença. Sentença: uma forma sentencial , é uma sentença de G sse   T*. Portanto, as cadeias geradas pela gramática são as sentenças de G. * Gramática - Prof. Yandre - 16

G1 = ({A, B}, {a, b, c}, P, A) onde: Gramáticas Exemplo: dada a gramática G1 = ({A, B}, {a, b, c}, P, A) onde: P = { 1) A  aB 2)B  bB 3)B  c } Indique se as seguintes cadeias são sentenças ou formas sentenciais produzidas por G1: abc A a abB abbbB abbbc Sentença Forma Sentencial   Gramática - Prof. Yandre - 17

Gramáticas Descrição de linguagens: 2)B  bB A linguagem gerada pela gramática G1 descrita acima, poderia ser expressa da seguinte forma: L(G1)={abnc, n 0} A linguagem gerada pela gramática G2 descrita acima, poderia ser expressa da seguinte forma: L(G2)={biacj, i1, j 1} G2 = ({S, A, B, C}, {a, b, c}, P, S) onde: P = { 1) S  A 2) A  BaC 3) B  bB 4) B  b 5) C  cC 6) C  c } G1 = ({A, B}, {a, b, c}, P, A) onde: P = { 1) A  aB 2)B  bB 3)B  c } Gramática - Prof. Yandre - 18