• Nenhum resultado encontrado

Lista de Exercícios Definição de gramáticas e Autômatos Finitos Determinísticos

N/A
N/A
Protected

Academic year: 2021

Share "Lista de Exercícios Definição de gramáticas e Autômatos Finitos Determinísticos"

Copied!
6
0
0

Texto

(1)

Lista de Exercícios

Definição de gramáticas e Autômatos Finitos Determinísticos

Uma das formas de se especificar a gramática de uma linguagem de programação é utilizar a Backus-Naur Form (BNF – Ingerman 1962). Nela, símbolos não terminais (variáveis) são defini-das por rótulos entre “<>” e o sinal que indica as possíveis produções de um símbolo é o “::=”. Para simplificar a representação das gramáticas, há a forma estendida da BNF, a EBNF (Whitney 1969). Seu uso permite a inclusão de operadores de opcionalidade, o “[ ]” e de repetição, o operador “{ }”.

1. Seja a EBNF abaixo que expressa a linguagem de uma calculadora binária. <expressao> ::= <numero> [<operador> <expressao>]

<operador> ::= +| − | × |÷ <numero> ::= [−]{<digito>} <digito> ::= 0 | 1

(a) Represente essa gramática em sua forma clássica (utilizando apenas letras maiúsculas para símbolos não terminais, “→” para indicar a produção e | como “ou”).

(b) Construa o grafo da função de transição de um autômato finito determinístico que a reco-nhece.

(c) Apresente este autômato.

Solução: Uma possível representação desta gramática em sua forma clássica é:

G =< {S,N,O,D}, Σ,δ,S>, com Σ = {0,1} e δ : S → N | NOS O → + | − | × | ÷ N → D | −D D → DD | 0 | 1

A função de transição de um autômato para esta gramática é

(2)

e o autômato seria A =< {q0, q1, q2, q3}, Σ,δ,q0, {q1} >, com Σ = {0,1,+,−,×,÷} δ = 0..9 + − × ÷ q0 q1 q2 q1 q1 q3 q3 q3 q3 q2 q1 q3 q1 q2

2. Estenda a EBNF da questão 1 para uma calculadora decimal e efetue os mesmos procedimentos solicitados.

Solução: Uma possível EBNF para a calculadora decimal é:

<expressao> ::= <numero> [<operador> <expressao>] <operador> ::= +| − | × |÷

<numero> ::= [−]{<digito>}

<digito> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0.

Uma possível representação desta gramática em sua forma clássica é: G =< {S,N,O,D}, Σ,δ,S>, com Σ = {1,2,3,4,5,6,7,8,9,0} e δ : S → N | NOS O → + | − | × | ÷ N → D | −D D → DD | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0

A função de transição de um autômato para esta gramática é

(3)

e o autômato seria A =< {q0, q1, q2, q3}, Σ,δ,q0, {q1} >, com Σ = {1,2,3,4,5,6,7,8,9,0,+,−,×,÷} δ = 0..9 + − × ÷ q0 q1 q2 q1 q1 q3 q3 q3 q3 q2 q1 q3 q1 q2

3. Sejam os possíveis conjuntos de regras de produção para a gramática G especificada abaixo. G =< {S,P},{a,b},δ,S> δ1: S → aSa | aPa P → PP | b δ2: S → aSa | aPa P → PP | Pb | bP | b δ3: S → aSa | aPa | aQa P → PP | Pb | bP | b Q → b

(a) Como é a linguagem gerada por cada uma das gramáticas G1, G2e G3que compartilham a

estrutura da gramática G diferindo apenas no conjunto de regras de produção (δ1, δ1e δ3,

respectivamente)?

(b) Qual dos conjuntos de regras de produção possui melhor estruturação de suas regras? (c) Qual o formalismo mais simples capaz de reconhecer essas gramáticas?

(d) Especifique o formalismo do ítem anterior.

Solução: Os três conjuntos de regras de produção especificam a mesma linguagem: a

lin-guagem que contém os caracteres “a” e “b” compondo uma cadeia balanceada de “a”s (ao menos um de cada lado)com uma sequência de “b”s entre as de “a” (ao menos um “b”). Ex.: aba, aabaa, aaabaaa, aabbbbbbaa, abba.

O conjunto δ1apresenta a menor quantidade possível de regras para especificar esta

lingua-gem, sendo, portanto, G1a gramática mínima para esta linguagem. Nas gramáticas G2e G3

(4)

Nessa linguagem há a necessidade de se balancear a quantidade de “a”s no começo e no fim da cadeia. O formalismo mais simples capaz de propiciar este balanceamento é o autômato de pilha. Um possível autômato para esta linguagem é:

A =< {q1, q2, q3}, {a,b}, {A,Z}, δ, q0, Z, q3>, com δ especificado pelo grafo do autômato abaixo.

q1 q0 b,A,A q2 b,A,A a,A,λ a,Z,AZ a,A,AA a,A,λ ǫ,Z,λ

4. Proponha uma gramática para a linguagem H que representa as horas (formato 24h) e construa o autômato finito determinístico que a reconhece.

Solução: Uma possível gramática H seria:

H =< {S,H,L,M}, Σ,δ,S>, com Σ = {0,1,2,3,4,5,6,7,8,9,0,:} δ : S → 0H:MH | 1H:MH | 2L:MH L → 0 | 1 | 2 | 3 M → L | 4 | 5 H → L | M | 6 | 7 | 8 | 9

e um autômato finito determinístico que a reconheça é:

A =< {q0, q1, q2, q3, q4, q5, q6}, Σ,δ,q0, {q6} >, com Σ = {1,2,3,4,5,6,7,8,9,0,:} δ = 0..1 2 3 4..5 6..9 : q0 q2 q1 q1 q3 q3 q3 q2 q3 q3 q3 q3 q3 q3 q4 q4 q5 q5 q5 q5 q5 q6 q6 q6 q6 q6

(5)

q1 q0 q2 a a a,b a,b,c c,d

(a) Qual a linguagem reconhecida por esse autômato?

(b) Apresente o grafo de um autômato finito determinístico correspondente a este.

Solução: A linguagem reconhecida pelo autômato é uma sequência de tamanho mínimo um

de: sequências de “a”s e “b”s (em qualquer ordem) de qualquer tamanho finalizadas por “a”, “b” ou “c” seguido de “c” ou “d” finalizando por um “a”.

Para se converter o autômato finito não determinístico em um autômato finito não deter-minístico, um dos métodos que podem ser utilizados é a construção da tabela de regras de produção, na seguinte forma.

Passo 1

Montar a tabela com as regras de produção do autômato finito determinístico.

δ = a b c d q0 {q0, q1} {q0, q1} q1 q1 q2 q2 q2 {q0, q1} Passo 2

Modificar a tabela de forma que os casos de não determinismos gerem, cada um deles, um novo estado. Caso as transições dos novos estados gerem não-determinismos novos, cada um deles vai gerar também um novo estado.

δN D= a b c d q0 {q0, q1} {q0, q1} q1 q1 q2 q2 q2 {q0, q1} {q0, q1} {q0, q1} {q0, q1} {q1, q2} q2 {q1, q2} {q0, q1} q2 q2 Passo 3

Cada caso onde se atingisse um estado final faz com que o novo estado seja também estado final. Assim, o autômato finito determinístico correspondente será:

AN D =<{q0, q1, q2, {q0, q1}, {q1, q2}}, {a,b,c,d}, δN D, q0, {q1, {q0, q1}, {q1, q2}} >. Seu grafo pode

ser observado na figura abaixo.

(6)

Referências

Ingerman, P. Z. (1962), ‘General language translation schemata’, Communications of the ACM

5(6), 356.

Referências

Documentos relacionados

E nesse ponto, se faz necessário um adendo, pois, não é só importante ver, no presente, como a “ciência conduz sua tarefa de inventar” (LAUDAN, 1993, p. 7), mas também no

Para entender o supermercado como possível espaço de exercício cidadão, ainda, é importante retomar alguns pontos tratados anteriormente: (a) as compras entendidas como

Com o objetivo de compreender como se efetivou a participação das educadoras - Maria Zuíla e Silva Moraes; Minerva Diaz de Sá Barreto - na criação dos diversos

EDITAL DO PROCESSO SELETIVO PARA INGRESSO DE ESTUDANTES NOS CURSOS DE EDUCAÇÃO PROFISSIONAL TÉCNICA DE NÍVEL MÉDIO NA MODALIDADE PRESENCIAL DA ESCOLA

(grifos nossos). b) Em observância ao princípio da impessoalidade, a Administração não pode atuar com vistas a prejudicar ou beneficiar pessoas determinadas, vez que é

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

No entanto, maiores lucros com publicidade e um crescimento no uso da plataforma em smartphones e tablets não serão suficientes para o mercado se a maior rede social do mundo

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política