Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Exercícios Resolvidos Linguagens Formais - Compiladores, Exercícios de Compiladores

Exercícios como Exemplo Resolvidos Linguagens Formais e Expressões Regulares - Compiladores - Engenharia - Computação.

Tipologia: Exercícios

2019
Em oferta
30 Pontos
Discount

Oferta por tempo limitado


Compartilhado em 04/10/2019

ghermanypaganini
ghermanypaganini 🇧🇷

4.7

(3)

1 documento

1 / 2

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Linguagens
1 Linguagens Formais
Linguagens são formadas a partir de um alfabeto e dessa forma seguem as regras convencionais dos conjuntos
matemáticos.
As seguintes operações podem ser realizadas sobre uma linguagem (conjunto):
União (operação ‘ou’):
Interseção (operação ‘e’):
Complemento (operação ‘não’): ~
Diferença:
Uma cadeia, ou palavra, é uma sequência finita de símbolos do alfabeto e sobre ela são válidas as operações:
Tamanho: |𝑐𝑎𝑑𝑒𝑖𝑎|
Concatenação: 𝐶𝑎𝑑𝑒𝑖𝑎1 || 𝐶𝑎𝑑𝑒𝑖𝑎2
Concatenação sucessiva: 𝑤𝑛
Cadeia reversa: 𝐶𝑎𝑑𝑒𝑖𝑎
Elemento neutro (cadeia vazia): 𝜆 ou 𝜀
Fecho positivo: +
Fecho estrela: *
Sendo o alfabeto Σ = {𝑎, 𝑏}, responda:
1. Expressão só com b’s.
2. Qual é a expressão que produza todas as cadeias que sigam a regra de começar com ‘a’?
3. Qual é a expressão que produza todas as cadeias que sigam a regra de terminar com ‘b’?
4. Expressão que contenha cadeias com dois ‘a’ consecutivos.
5. Expressão que contenha três ‘a’ consecutivos e três ‘b’ consecutivos.
6. Expressão com no máximo 2 elementos, incluindo vazio.
7. Expressão com no mínimo 3 elementos.
8. Expressão contendo uma vez ‘ba’ e terminando em ‘a’.
9. Expressão contendo um número par de ‘b’.
10. Expressão contendo uma quantidade ímpar de ‘b’.
Uma expressão deve aceitar todas as palavras que estejam de acordo com a regra e rejeitar todas as que não
estejam de acordo.
Respostas:
1. Expressão só com b’s: 𝑏+
2. Qual é a expressão que produza todas as cadeias que sigam a regra de começar com ‘a’: (𝑎𝑏)+
3. Qual é a expressão que produza todas as cadeias que sigam a regra de terminar com ‘b’: (𝑎𝑏)+
4. Expressão que contenha cadeias com dois ‘a’ consecutivos: (𝑎𝑏)𝑎𝑎(𝑎𝑏)
Fazendo 𝐾 = (𝑎𝑏) é possível escrever a expressão como: 𝐾𝑎𝑎𝐾
5. Expressão que contenha três ‘a’ consecutivos e três ‘b’ consecutivos:
Fazendo 𝐾 = (𝑎𝑏):
𝐾𝑎𝑎𝑎𝐾𝑏𝑏𝑏𝐾: Inválido pois só aceita cadeias em que os três ‘a’ aparecem antes dos três ‘b’
𝐾𝑎𝑎𝑎𝐾𝑏𝑏𝑏𝐾 𝐾𝑏𝑏𝑏𝐾𝑎𝑎𝑎𝐾: Válido
6. Expressão com no máximo 2 elementos, incluindo vazio. 𝑎 𝑏 𝑎𝑎 𝑎𝑏 𝑏𝑎 𝑏𝑏 𝜆
7. Expressão com no mínimo 3 elementos.
Fazendo 𝐾 = (𝑎𝑏): (𝐾𝑎𝑎𝑎)(𝐾𝑎𝑎𝑏)(𝐾𝑎𝑏𝑎)(𝐾𝑏𝑎𝑎)(𝐾𝑎𝑏𝑏)(𝐾𝑏𝑎𝑏)(𝐾𝑏𝑏𝑎)(𝐾𝑏𝑏𝑏)
8. Expressão contendo uma vez ‘ba’ e terminando em ‘a’.
Fazendo 𝐾 = (𝑎𝑏)
𝐾𝑏𝑎𝐾𝑎: Não resolve, pois a cadeia 𝑎𝑎𝑏𝑎 é válida de acordo com a regra mas não é aceita pela expressão
𝐾𝑏𝑎: Não resolve, pois 𝑎𝑎𝑏𝑎𝑎𝑎 é válida de acordo com a regra mas não é aceita pela expressão
𝐾𝑏𝑎 𝐾𝑎: Não resolve, pois aceita 𝑎𝑎𝑎
𝐾𝑏𝑎𝐾𝑎 𝐾𝑏𝑎: Válido
9. Expressão contendo um número par de ‘b’: (𝑎𝑏𝑎𝑏𝑎)+
10. Expressão contendo uma quantidade ímpar de ‘b’: (𝑎𝑏𝑎𝑏𝑎)+𝑏𝑎 𝑎𝑏𝑎
Forma alternativa: ~(𝑎𝑏𝑎𝑏𝑎)+: complemento dos pares ou ~(𝑎𝑏𝑎𝑏𝑎): complemento dos pares sem 𝜆
pf2
Discount

Em oferta

Pré-visualização parcial do texto

Baixe Exercícios Resolvidos Linguagens Formais - Compiladores e outras Exercícios em PDF para Compiladores, somente na Docsity!

Linguagens

1 Linguagens Formais

Linguagens são formadas a partir de um alfabeto e dessa forma seguem as regras convencionais dos conjuntos

matemáticos.

As seguintes operações podem ser realizadas sobre uma linguagem (conjunto):

  • União (operação ‘ou’): ∪
  • Interseção (operação ‘e’): ∩
  • Complemento (operação ‘não’): ~
  • Diferença: −

Uma cadeia, ou palavra, é uma sequência finita de símbolos do alfabeto e sobre ela são válidas as operações:

  • Tamanho:
  • Concatenação: 𝐶𝑎𝑑𝑒𝑖𝑎

1

2

  • Concatenação sucessiva: 𝑤

𝑛

  • Cadeia reversa: 𝐶𝑎𝑑𝑒𝑖𝑎
  • Elemento neutro (cadeia vazia): 𝜆 ou 𝜀
  • Fecho positivo:
  • Fecho estrela:

Sendo o alfabeto Σ =

, responda:

  1. Expressão só com b’s.
  2. Qual é a expressão que produza todas as cadeias que sigam a regra de começar com ‘a’?
  3. Qual é a expressão que produza todas as cadeias que sigam a regra de terminar com ‘b’?
  4. Expressão que contenha cadeias com dois ‘a’ consecutivos.
  5. Expressão que contenha três ‘a’ consecutivos e três ‘b’ consecutivos.
  6. Expressão com no máximo 2 elementos, incluindo vazio.
  7. Expressão com no mínimo 3 elementos.
  8. Expressão contendo uma vez ‘ba’ e terminando em ‘a’.
  9. Expressão contendo um número par de ‘b’.
  10. Expressão contendo uma quantidade ímpar de ‘b’.

Uma expressão deve aceitar todas as palavras que estejam de acordo com a regra e rejeitar todas as que não

estejam de acordo.

Respostas:

  1. Expressão só com b’s: 𝑏
  1. Qual é a expressão que produza todas as cadeias que sigam a regra de começar com ‘a’: (𝑎𝑏

  1. Qual é a expressão que produza todas as cadeias que sigam a regra de terminar com ‘b’:

  1. Expressão que contenha cadeias com dois ‘a’ consecutivos: (𝑎

Fazendo 𝐾 =

é possível escrever a expressão como: 𝐾𝑎𝑎𝐾

  1. Expressão que contenha três ‘a’ consecutivos e três ‘b’ consecutivos:

Fazendo 𝐾 =

𝐾𝑎𝑎𝑎𝐾𝑏𝑏𝑏𝐾: Inválido pois só aceita cadeias em que os três ‘a’ aparecem antes dos três ‘b’

𝐾𝑎𝑎𝑎𝐾𝑏𝑏𝑏𝐾 ∪ 𝐾𝑏𝑏𝑏𝐾𝑎𝑎𝑎𝐾: Válido

  1. Expressão com no máximo 2 elementos, incluindo vazio. 𝑎 ∪ 𝑏 ∪ 𝑎𝑎 ∪ 𝑎𝑏 ∪ 𝑏𝑎 ∪ 𝑏𝑏 ∪ 𝜆
  2. Expressão com no mínimo 3 elementos.

Fazendo 𝐾 =

  1. Expressão contendo uma vez ‘ba’ e terminando em ‘a’.

Fazendo 𝐾 =

𝐾𝑏𝑎𝐾𝑎: Não resolve, pois a cadeia 𝑎𝑎𝑏𝑎 é válida de acordo com a regra mas não é aceita pela expressão

𝐾𝑏𝑎: Não resolve, pois 𝑎𝑎𝑏𝑎𝑎𝑎 é válida de acordo com a regra mas não é aceita pela expressão

𝐾𝑏𝑎 ∪ 𝐾𝑎: Não resolve, pois aceita 𝑎𝑎𝑎

𝐾𝑏𝑎𝐾𝑎 ∪ 𝐾𝑏𝑎: Válido

  1. Expressão contendo um número par de ‘b’:

  1. Expressão contendo uma quantidade ímpar de ‘b’: (𝑎

Forma alternativa: ~(𝑎

: complemento dos pares ou ~(𝑎

: complemento dos pares sem 𝜆

2 Linguagens e Expressões Regulares

Linguagens regulares são as mais simples da hierarquia de Chomsky (tipo 3). Elas são relacionadas aos seguintes

formalismos:

  • Autômatos finitos: Uma linguagem é regular se existe pelo menos um autômato finito determinístico que a

aceite.

  • Expressões regulares: Uma expressão regular pode ser usada para gerar uma linguagem regular.
  • Gramáticas regulares: Lado esquerdo da regra de produção possui exatamente uma variável e o lado

esquerdo por, no máximo, uma variável.

Uma aplicação das linguagens regulares é a fase de análise léxica de um compilador.

Uma expressão regular é definida sobre um alfabeto Σ através dos seguintes operadores:

  • Linguagem vazia: ∅
  • Palavra vazia: 𝜀
  • União: +
  • Concatenação: ∙ (ou simplesmente grudar os símbolos)
  • Fecho estrela: ∗

Exemplo:

gera a seguinte linguagem:

Questões:

  1. Sendo 𝐿 = { 001 , 110 } e 𝑀 = {𝜆, 11 , 110 } e o alfabeto Σ = { 0 , 1 } responda:

a) 𝐿 + 𝑀

b) 𝐿 ∙ 𝑀

  1. Sendo Σ =

que palavras (cadeias)

∙ 𝑐 representa?

  1. Sendo Σ = {𝑎, 𝑏}, responda:

a) Somente a palavra ‘aa’.

b) Todas as palavras que iniciam por ‘b’, seguido por zero ou mais ‘a’.

c) Qual é a expressão que representa todas as palavras sobre o alfabeto {𝑎, 𝑏}?

d) Todas as palavras contendo ‘aa’ como subpalavra.

e) Todas as palavras contendo exatamente dois ‘b’.

f) Todas as palavras que terminam com ‘aa’ ou ‘bb’.

g) Todas as palavras que não possuam dois ‘a’ consecutivos.

  1. Sendo Σ =

, responda:

a) Qual é a expressão que fornece o conjunto de todas as cadeias de 0’s e 1’s com exatamente 3 símbolos?

b) Qual é a expressão que produz todas as cadeias de 0’s e 1’s com pelo menos um símbolo 0?

c) Forneça uma descrição em português da expressão: ( 0 + 1 )

Respostas:

  1. Sendo 𝐿 =

e 𝑀 =

e o alfabeto Σ =

a) 𝐿 + 𝑀 = 𝐿 ∪ 𝑀 = { 001 , 110 , 𝜆, 11 }

b) 𝐿 ∙ 𝑀 = 𝐿𝑀 = { 001 , 00111 , 001110 , 110 , 11011 , 110110 }

  1. Sendo Σ =

que palavras (cadeias) (𝑎 + 𝑏) ∙ 𝑐 representa? (𝑎 + 𝑏) ∙ 𝑐 =

  1. Sendo Σ = {𝑎, 𝑏}, responda:

a) Somente a palavra ‘aa’: 𝑎𝑎

b) Todas as palavras que iniciam por ‘b’, seguido por zero ou mais ‘a’: 𝑏𝑎

c) Qual é a expressão que representa todas as palavras sobre o alfabeto {a,b}?

d) Todas as palavras contendo ‘aa’ como subpalavra: (𝑎 + 𝑏)

e) Todas as palavras contendo exatamente dois ‘b’. 𝑎

f) Todas as palavras que terminam com ‘aa’ ou ‘bb’. (𝑎 + 𝑏)

g) Todas as palavras que não possuam dois ‘a’ consecutivos: (𝑎 + 𝜀)(𝑏 + 𝑏𝑎)

  1. Sendo Σ =

, responda:

a) Qual é a expressão que fornece o conjunto de todas as cadeias de 0’s e 1’s com exatamente 3 símbolos?

3

b) Qual é a expressão que produz todas as cadeias de 0’s e 1’s com pelo menos um símbolo 0?

c) Forneça uma descrição em português da expressão: ( 0 + 1 )

Conjunto de todas as cadeias de 0’s e 1’s que contém 101 como subcadeia.