• Nenhum resultado encontrado

Exercícios Associados à Aula 02 (14/08/2013)

N/A
N/A
Protected

Academic year: 2021

Share "Exercícios Associados à Aula 02 (14/08/2013)"

Copied!
10
0
0

Texto

(1)

Exercícios Associados à Aula 02 (14/08/2013)

Os exercícios da disciplina devem ser feitos pelos alunos à medida que as aulas vão sendo dadas. Dúvidas devem ser dirigidas à professora, por email ou em sala de aula. Os exercícios são parte da matéria.

Recursos para estes exercícios

Livro Texto Adotado

Linguagens Formais. Teoria, Modelagem e Implementação

Marcus Vinicius Medina Ramos, João José Neto e Ítalo Santiago Vega Editora Bookman (Porto Alegre). 2009

http://www.univasf.edu.br/~marcus.ramos/livro-lfa/index.html

Capítulo 1: Recapitulação de Matemática Discreta pp. 31-42 Capítulo 2: Conceitos Básicos de Linguagens pp.77-81

JFLAP 7.0 – Pode ser baixado de http://www.jflap.org/ ou http://www.jflap.org/jflaptmp/

Há uma versão leve (JFLAPthin.jar) no segundo endereço; pode ser usada também, apesar de ter recursos gráficos mais restritos que a completa (JFLAP.jar).

Exercícios

1. Utilizando o JFLAP, explore passo-a-passo o comportamento dos seguintes autômatos ao receberem (input>stepbystate ou input>fastrun) as seguintes entradas (sem aspas): “inf1626”; “inf16”; “inf162”; “inf16262”; “inf16262626”; e “inf16262”.

inf1626(1)

inf1626(2)

(2)

I

INNFF11662266LLiinngguuaaggeennssFFoorrmmaaiisseeAAuuttôômmaattooss((22001133--22)) Informática PUC-Rio

2. Abra simultaneamente os três autômatos acima no JFLAP. Explore a “equivalência” entre eles, através do menu test>compareequivalence, para todas as duplas

possíveis. O que você descobriu? A partir destes resultados, como você definira

intuitivamente (em suas próprias palavras) o que são “autômatos equivalentes”?

3. Para cada um dos autômatos, examine o que acontece se você escolhe a opção de “marcar não-determinismo” usando o menu test>highlightnondeterminism.O que você descobriu? A partir destes resultados, como você definira intuitivamente (em suas próprias palavras) o que é “não determinismo”?

4. O que você tem a comentar – pensando em custos de computação – sobre as diferenças entre os dois autômatos equivalentes utilizados neste exercício?

5. A cadeia “inf1626” é aceita (processada com sucesso) por todos os três autômatos. Imaginando que os três sejam abstrações de três programas diferentes, feitos tão-somente para reconhecer a cadeia “inf1626”, o que você tem a comentar sobre o autômato inf1626(1).jff comparativamente aos outros dois? Ele é melhor ou pior do que os demais? Por quê e/ou em que situações específicas?

Os autômatos (com extensão “.jff”) podem ser baixados conjuntamente no pacote

inf1626-automatos.zip, pelo site da disciplina.

6. Vamos agora estender o nosso poder de reconhecer cadeias e considerar que queremos fazer a especificação abstrata (i.e. construir um autômato) para um

pequeno programa capaz de reconhecer todos e somente os códigos possíveis para as disciplinas regulares de graduação de um departamento de Informática. Estes códigos são sempre iniciados pelo prefixo “inf”, seguido do dígito “1”, seguidos por uma sequência de três dígitos pertencentes ao conjunto {0,1,2,3,4,5,6,7,8,9}. Construa este autômato no JFLAP, monte uma lista de códigos corretos e outra de códigos

incorretos e confira o comportamento do seu autômato submetendo sua lista através

do menu input>multiplerun.  Omaispráticoécolocarsualistaemumarquivo‘txt’ecarregáͲloclicandonobotão LoadInputsqueaparecenaparteinferiordajanelaqueseabreparavocêinformar asmúltiplascadeiasdeentradaquevocêquerprocessar. 

7. Os estados finais dos processadores significam algo importante. Quando ao processar uma cadeia um autômato chega a um estado final e não há mais símbolo algum para ser processado na cadeia de entrada, isto significa que a cadeia foi reconhecida com sucesso e portanto pertence ao conjunto de ‘cadeias válidas’ da linguagem ou sistema de codificação que aquele autômato pode processar (e assim especifica formalmente). Voltando à questão dos códigos de disciplinas, abordada no exercício anterior, considere agora que o departamento de Informática do exemplo tem, além de disciplinas de graduação, disciplinas de pós-graduação. O código destas últimas é praticamente igual ao do das de graduação, exceto que entre o prefixo “inf” e os três dígitos que identificam cada disciplina, para a pós-graduação se usa “2” e não “1”, como é o caso da graduação.

(3)
(4)

3

I

INNFF11662266LLiinngguuaaggeennssFFoorrmmaaiisseeAAuuttôômmaattooss((22001133--22)) Informática PUC-Rio

Autômatos têm de ter apenas UM estado inicial, mas podem ter tantos estados finais quanto se queira. Baseado no autômato que você construiu para o exercício (6), faça agora dois autômatos distintos para processar com sucesso qualquer cadeia de código válido de disciplinas do departamento de Informática, sejam elas de graduação ou pós-graduação.

O primeiro autômato que você construir deve ter um único estado final.

O segundo deve ter dois estados finais distintos: um que significa o reconhecimento de um código de disciplina de graduação e outro que significa o reconhecimento de um código de disciplina de pós-graduação.

Comente o que você acha vantajoso e desvantajoso em cada caso, considerando a eficiência de (a) reconhecer um cadeia que o autômato acabou de processar com sucesso e (b) interpretar uma cadeia que o autômato acabou de processar com sucesso.

8. Aproveite os exemplos dos autômatos pqsystem-[a..e], que ilustraram análises com o JFLAP na aula 02 (14/08/2013), e tente “implementá-los” em Ruby. Siga as dicas de programação e ilustrações apresentadas em aula.

Estes exercícios são apenas para reforçar pontos tratados na aula introdutória da disciplina. Servem para o aluno fazer sozinho o que foi apresentado em sala pela professora, ganhando familiaridade não apenas com o JFLAP, mas também – e principalmente – com os conceitos que constituem a base da disciplina.

A recapitulação de Matemática Discreta visa fixar elementos basicos da teoria de conjuntos que serão necessários para a disciplina.

(5)
(6)

I

INNFF11662266LLiinngguuaaggeennssFFoorrmmaaiisseeAAuuttôômmaattooss((22001133--22)) Informática PUC-Rio

Exercícios Associados à Aula 04 (21/08/2013)

Os exercícios da disciplina devem ser feitos pelos alunos à medida que as aulas vão sendo dadas. Dúvidas devem ser dirigidas à professora, por email ou em sala de aula. Os exercícios são parte da matéria.

Obs: exercícios extraídos do cap.2 do livro-texto da disciplina (Ramos, Neto e Vega)

1. Oquesignificadefinirformalmenteumalinguagem?Apresentepelomenosdois motivosquejustifiquemaimportânciadesedefinirlinguagensformalmente.  2. Oquesignificadizerqueumalinguagemédefinidaporenumeração?Porqueas enumeraçõessãopoucoutilizadasnadefiniçãoformaldelinguagens?Que alternativasseapresentamparacontornaradificuldadenoempregodas enumerações? 3. Considereoalfabetoɇ={a,ab,abc}.Dêosseguintesexemplossobreɇ: a)Símbolo; b)Cadeiaqualquer; c)Cadeiadecomprimento2; d)Cadeiadecomprimento4; e)Linguagemfinita; f)Linguageminfinita(descritadeformafinita).  4. Determineoscasosemque: a)UmalinguagemLcoincidecomL*Ͳ{ɸ}; b)UmalinguagemLnãocoincidecomL*Ͳ{ɸ}; c)UmalinguagemLfazcomqueL+coincidacomL*Ͳ{ɸ}; d)UmalinguagemLfazcomqueL+nãocoincidacomL*Ͳ{ɸ}; e)UmalinguagemLfazcomqueL*coincidacomL+U{ɸ}; e)UmalinguagemLfazcomqueL*nãocoincidacomL+ U{ɸ}; 5. ApresenteumalinguagemLsobre{a,b}quecoincidacomLR.  6. Sejaɇumalfabetoqualquer.Defina,utilizandooperaçõessobreconjuntos: a)Amenorlinguagemsobreɇ; b)Amaiorlinguagemsobreɇ; c)Amaiorlinguagemsobreɇquenãoincluasentençasdecomprimentomenorouigual a3; d)Oconjntodetodasaslinguagensquepodemserdefinidassobreɇ; e)OconjuntodetodasaslinguagensnãoͲvaziasquepodemserdefinidassobreɇ.   1

(7)

As perguntas do exercício 4, a seguir, se referem ao fechamento reflexivo e transitivo ou ao fechamento transitivo de linguagens definidas sobre um alfabeto. Reproduzimos aqui um trecho do livro de Ramos (pp. 82 e 83) em que o autor define o fechamento reflexivo e transitivo e mostra como podemos definir linguagens através desta operação.

4. Determine os casos em que:

a) Uma linguagem L coincide com L*- {ε};

Tomando-se a definição acima, L* é a união de todos os conjuntos que

representam as possíveis concatenações de L consigo mesma, zero, uma, duas (L,L), três (L,L,L) até infinitas vezes. A concatenação de L consigo mesma zero

(8)

Uma definição concisa para esta condição é a de que ela ocorre com:

Qualquer linguagem tal que L+-L=∅ (que é o mesmo que L= L+).

b) Uma linguagem L não coincide com L*- {ε};

Seguindo o raciocínio acima, uma definição concisa para esta condição é a de que ela ocorre com:

Qualquer linguagem para a qual exista um conjunto L’ ≠ ∅ tal que L+-L=L’.

c) Uma linguagem L faz com que L+ coincida com L*- {ε};

Isto é verdadeiro para qualquer linguagem L tal que ε ∉ L. Se a cadeia vazia pertencesse à linguagem L, a ocorrência de ε corresponderia de fato uma concatenação de n cadeias vazias, para qualquer n≥1. Porém, se a cadeia vazia

não pertence à linguagem, a expressão L+ = L*- {ε} é verdadeira por definição.

d) Uma linguagem L faz com que L+ não coincida com L*- {ε};

Dada a resposta acima, se a cadeia vazia pertence à linguagem L, a ocorrência de

ε corresponde de fato uma concatenação de n cadeias vazias, para qualquer

n≥1. Portanto o conjunto L*- {ε} exclui mais cadeias do que o conjunto L+. Logo

L+ não coincide com L*- {ε}.

e) Uma linguagem L faz com que L* coincida com L+ U {ε};

Sempre, por definição.

f) Uma linguagem L faz com que L* não coincida com L+ U {ε};

Nunca, por contradição com a definição de L* e L+.

5. Apresente uma linguagem L sobre {a,b} que coincida com LR.

LR é a linguagem formada pelas cadeias reversas de R. Ora, para as cadeias de uma

linguagem coincidirem com o reverso de si mesmas, estamos falando de palíndromos. A definição de uma linguagem formara por palíndromos sobre o alfabeto {a,b} é, por exemplo, aquela que contém as seguintes produções: S  a

S  b S  aSa S  bSb

6. Seja Σ um alfabeto qualquer. Defina, utilizando operações sobre conjuntos: a) A menor linguagem sobre Σ;

L = {} -- uma linguagem vazia

b) A maior linguagem sobre Σ;

(9)

L = Σ3 U Σ4 U Σ5 U ... U Σ

d) O conjunto de todas as linguagens que podem ser definidas sobre Σ;

O conjunto de todos os subconjuntos possíveis de Σ* é o seu conjunto potência

(ou conjunto de todas as partes), representado por 2Σ*. Ele corresponde também

ao conjunto de todas as linguagens (que nada mais são do que conjuntos, elas próprias) que se pode definir sobre Σ.

e) O conjunto de todas as linguagens não-vazias que podem ser definidas sobre Σ.

Σ+ não contém o vazio. Portanto, o conjunto potência de Σ+ não conterá o vazio

tampouco. Assim, 2Σ+ representa o conjunto de todas as linguagens não-vazias

que se pode definir sobre Σ.

7. Seja Σ um alfabeto, A ⊆ Σ, B ⊆ Σ, A ∩ B = ∅. Utilizando apenas as operações de fechamento, união e concatenação sobre Σ, A e B, defina as maiores linguagens sobre Σ cujas sentenças α satisfaçam aos seguintes requisitos:

a) α contém no mínimo um símbolo do conjunto A;

L = Σ*. A+. Σ*

b) α contém pelo menos um símbolo de A como prefixo e pelo menos dois símbolos de B como sufixo;

L = A+. Σ*.γ.B+ | γ∈B+

c) α contém exatamente três símbolos de A, porém α pode conter qualquer quantidade de outros símbolos;

L = Σ*. γ . Σ*. δ . Σ*. χ . Σ* | γ,δ,χ∈A1

d) α contém exatamente um símbolo de A e um símbolo de B, sendo o símbolo de B justaposto imediatamente após o símbolo de A. Nenhum outro símbolo de A ou B comparece em α, embora α possa conter um número arbitrário de outros símbolos quaisquer.

L = (Σ-(A U B))*.γ.δ.(Σ-(A U B))* | γ∈A1,δ∈B1

8. Conceitue, em termos de linguagens e cadeias, as seguintes representações: a) { }; Uma linguagem vazia

b) {ε}; Uma linguagem composta de uma única cadeia, que é a cadeia vazia

c) ε ; A cadeia vazia

d) "ε"; O símbolo ε (letra grega épsilon)

e) ∅; O conjunto vazio

f) {∅}; Uma linguagem composta de um único símbolo, que é ∅

(10)

h) ""; A ausência de símbolos

i) { Æ, {}, "ε", ε, "", {Æ}, {ε}, {"ε"}, "Æ", {"Æ"} }.

Uma linguagem à qual pertencem as cadeias do conjunto indicado (isto é, os elementos separados por vírgula)

9. Demonstre que não existe w Î {a,b}* tal que aw = wb .

Se w for a cadeia vazia, a igualdade é obviamente falsa. Caso contrário: Se aw = wb então w = aab (precisa começar com a e terminar com b).

Supondo que a=e, já que a cadeia do meio não importa para a demonstração, a condição para a igualdade seria a de que a.ab = ab.b o que é evidentemente falso.

Logo, não há w Î {a,b}* tal que aw = wb

10. Se w Î {a,b}* e abw = wab, demonstre que w = (ab)n, n ³ 0. w ora é sufixo, ora prefixo, de ‘ab’; para abw=wab então:

ou w = e -- caso n=0 : (ab)0

ou w = ab -- caso n=1 : (ab)1

ou w = ab.x.ab -- caso n>1 : (ab)1. (ab)x. (ab)1 para x ³ 0

-- Se w=(ab)n para n³ 0 de fato abw = wab

Se w for a cadeia vazia, a igualdade é obviamente verdadeira. Caso contrário: Se abw = wab então as restrições de sufixação de w em abw e de prefixação de w em wab têm de ter alguma interseção. Examinando-as:

· Para ser um prefixo não nulo válido em wab a restrição sobre w é que w = (ab)+

· Para ser um sufixo não nulo válido em abw a restrição sobre w é que w = (ab)+

Como as restrições nos dois casos acima são idênticas - w = (ab)+ .

Da mesma forma, como w = (ab)* = (ab)n, n ³ 0 cobre tanto os prefixos e sufixos

Referências

Documentos relacionados

o conflito é fundamental em uma situação de trabalho, tendo em vista que contribui sobremaneira para o desenvolvimento humano, pois, mesmo que desestabilize o

Outras possíveis causas de paralisia flácida, ataxia e desordens neuromusculares, (como a ação de hemoparasitas, toxoplasmose, neosporose e botulismo) foram descartadas,

Ao ser selecionada esta opção será apresentada uma Caixa de Diálogo, idêntica aquela apresentada para seleção do arquivo de imagem, a ser utilizada para indicar

A assistência da equipe de enfermagem para a pessoa portadora de Diabetes Mellitus deve ser desenvolvida para um processo de educação em saúde que contribua para que a

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for

Idealmente, a melhor comparação para as UC tratadas viria do grupo de UC tratadas, ou seja, o grupo que receberam as ações de EE, mas na situação em que eles não tivessem

3 Mecanismos que visam garantir que o grupo de controle não receba as ações de EE são fundamentais para que a contaminação do grupo de controle não inviabilize a

O presente estudo objetivou testar a influência do guano na diversidade e abundância de invertebrados na caverna Toca da Raposa, município de Simão Dias,