LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam

Documentos relacionados
Introdução Definição Conceitos Básicos de Linguagem

Linguagens Regulares. Prof. Daniel Oliveira

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Expressões Regulares e Gramáticas Regulares

Teoria da Computação Aula 02 Introdução

Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo

Linguagens Formais e Autômatos. Conceitos Básicos Prof. Anderson Belgamo

INE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

IBM1088 Linguagens Formais e Teoria da

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

Gramáticas Livres de Contexto Parte 1

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real.

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos

LINGUAGENS FORMAIS E AUTÔMATOS

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador

Linguagens Formais e Autômatos. Linguagens Regulares Prof. Anderson Belgamo

Editor de Autômatos Finitos. Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins

LFA Aula 09. Gramáticas e Linguagens Livres de Contexto 18/01/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Apostila 02. Objetivos: Estudar os autômatos finitos Estudar as expressões regulares Estudar as gramáticas regulares Estudar as linguagens regulares

Capítulo II Gramáticas

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

LINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos

Compiladores Aula 4. Celso Olivete Júnior.

Capítulo II Gramáticas

Prof. Adriano Maranhão COMPILADORES

IV Gramáticas Livres de Contexto

Como construir um compilador utilizando ferramentas Java

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação

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

Gramática. Gramática. Gramática

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Linguagens Livres de Contexto

Conceitos básicos de Teoria da Computação

Análise Léxica. Fundamentos Teóricos. Autômatos Finitos e Conjuntos Regulares (cap. III da apostila de Linguagens Formais e Compiladores)

Introdução à Programação

Lista de exercícios 1

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Linguagens Livres de Contexto

Autômatos finitos não-determinísticos

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior.

SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

Histórico e motivação

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba

INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:

Linguagens Formais e Autômatos P. Blauth Menezes

FACULDADE LEÃO SAMPAIO

Construção de Compiladores Aula 16 - Análise Sintática

Autómatos Finitos Determinísticos (AFD)

Linguagens Formais e Autômatos P. Blauth Menezes

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

Python e sua sintaxe LNCC UFRJ

Matemática Discreta para Ciência da Computação

Definições Hierarquia de Chomsky Exemplos de gramáticas. Gramáticas. Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior.

Gramáticas e Linguagens independentes de contexto

Linguagens, Reconhecedores e Gramáticas

Definições Exemplos de gramáticas

Construção de Compiladores

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

INE5317 Linguagens Formais e Compiladores AULA 6: Autômatos Finitos Com S aída

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000)

I.2 Introdução a Teoria da Computação

Compiladores 02 Analise léxica

Plano da aula. Compiladores. Os erros típicos são sintáticos. Análise Sintática. Usando Gramáticas. Os erros típicos são sintáticos

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação

Alfabeto, Cadeias, Operações e Linguagens

Árvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1

1 INTRODUÇÃO E CONCEITOS BÁSICOS

Compiladores. Prof. Bruno Moreno Aula 8 02/05/2011

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

Gramáticas ( [HMU00], Cap. 5.1)

Linguagens e Programação Gramáticas. Paulo Proença

Sintaxe e Semântica. George Darmiton da Cunha Cavalcanti.

LFA. Aula 04. Sintaxe e Semântica. Conceitos Básicos Alfabeto Palavra Linguagem

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

Folha 2 Autómatos e respectivas linguagens

Analisador Léxico parte II

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

Linguagens Formais e Autômatos (LFA)

SCC 205 Teoria da Computação e Linguagens Formais

Linguagens Livres de Contexto

Transcrição:

Linguagens Naturais LINGUAGENS FORMAIS Definições Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam São muito ricas, mas também ambíguas e imprecisas. Ex.: João amarelou ao ver a silhueta na janela O homem nasceu livre; mas por toda a parte se vê acorrentado (Rousseau) Linguagens Formais (artificiais) Linguagens Formais são utilizadas por cientistas para evitar as imperfeições das linguagens naturais Ex.: Explicar a Teoria da Relatividade em inglês, francês ou com a simbologia da matemática? Linguagens Formais são apenas um instrumento a ser empregado, onde precisão e operacionalidade são desejáveis 1

Definições Linguagens Formais (artificiais) São sistemas simbólicos elaborados para fins científicos (práticos ou teóricos), para representar determinados domínios de conhecimento Os símbolos das LF são utilizados conforme regras rigorosas de manipulação estabelecidas previamente. Ex.: o quadrado da hipotenusa é o resultado da soma dos quadrados dos catetos de um triângulo retângulo H 2 = a 2 + b 2 2

Definições Semiótica É Qualquer tipo de investigação em torno de uma linguagem-objeto (linguagem de interesse de estudo). A linguagem objeto pode ser uma linguagem natural ou uma linguagem artificial Semiótica é o estudo (metalinguístico) de qualquer sistema simbólico. Semiótica = Sintáctica + Semântica + Pragmática Semiótica - Sintáctica = Sequência de ordenação dos símbolos de uma determinada linguagem Semiótica - Semântica = Sentidos e denotações de uma determinada expressão linguística Semiótica - Pragmática = Dimensão do sistema simbólico que o relaciona com o mundo nos contextos sociais, psicológicos, econômicos, políticos, etc 3

Definições Linguagens Formais (artificiais) Desenvolvida na 1 a metade do século XX com o objetivo de desenvolver teorias relacionadas com as linguagens naturais. Investigação inicial: Estrutura matemática das linguagens Áreas de aplicação Análise léxica e sintática de linguagens de programação Modelos de sistemas biológicos Projetos de circuitos ( chips ) Linguagens planares, espaciais e n-dimensionais 4

Definições Linguagem Sintáctica Semântica Pragmática Natural Sim Sim Sim Formal Sim Sim - Linguagens Formais (artificiais) Dimensão: SINTAXE = Apresenta construções matemáticas bem definidas e universalmente aceitas. Ex.: Gramáticas de Chomsky 5

Conceitos Básicos Alfabeto (Σ) Um conjunto finito de símbolos (um conjunto vazio também é considerado um alfabeto) Ex.: Letras, dígitos, operadores aritméticos, variáveis Sentença (palavra, cadeia de caracteres) Uma sequência finita de símbolos (do alfabeto) justapostos ε Σ * Σ + - sentença vazia - Todas as sentenças (palavras) possíveis sobre Σ - Todas as sentenças (palavras) possíveis sobre Σ excetuando-se a palavra vazia. Σ + = Σ * - { ε } Tamanho (comprimento) da sentença Seja a sentença simbolizada por w. Então w é o número de símbolos que compõem a sentença (palavra) 6

7 LINGUAGENS FORMAIS Conceitos Básicos

8

Prefixo, Sufixo, Subpalavra LINGUAGENS FORMAIS Conceitos Básicos Um prefixo (respectivamente sufixo) de uma sentença é qualquer sequência inicial (respectivamente final) da sentença. Uma subpalavra de uma palavra é qualquer sequência de símbolos contígua da palavra Concatenação Define-se concatenação β de duas cadeias (sentenças) α e α como sendo a cadeia formada pela justaposição das sequências de símbolos α e α nesta ordem β = α α ou β = αα β = α + α Concatenação é uma operação associativa: (αβ)γ = α(βγ) Cadeia ε é elemento neutro na concatenação: αε = εα = α 9

Linguagem Formal LINGUAGENS FORMAIS Conceitos Básicos Uma linguagem formal é um conjunto de sentenças (palavras) sobre um alfabeto 10

Conceitos Básicos Gramática Conjunto de leis de formação (justaposição) dos símbolos do alfabeto para formação das sentenças (palavras) da linguagem em questão Gramática É uma quádrupla ordenada G = (V, T, P, S) onde: V - Conjunto finito de símbolos variáveis ou nãoterminais T - Conjunto finito de símbolos terminais distintos de V P - Conjunto finito de pares do tipo α β denominados regras de produção S - Elemento de V denominado variável inicial V T = α (V T) + β (V T) * 11

Conceitos Básicos Derivação Seja G = (V, T, P, S) uma gramática. Uma derivação é um par da relação denotada por 12 α β, onde α (V T) + e β (V T) * Para todo par α β, onde β = β u β v β w, se β v β t é regra de P então: β = β u β t β w * é fecho transitivo e reflexivo: ou seja, zero ou mais passos de derivações sucessivos + é fecho transitivo: ou seja, um ou mais passos de derivações sucessivos i exatos i passos de derivações sucessivos onde i N Linguagem Gerada A linguagem gerada pela gramática G = (V, T, P, S) denotada por L(G) ou GERA(G) é composta por todos as sentenças (palavras) de símbolos terminais deriváveis a partir do símbolo inicial S L(G) = { w T * S + w }

13 LINGUAGENS FORMAIS Gramáticas - Exemplos

14

Gramáticas Gramáticas [ G = (V, T, P, S) ] Dispositivos GERADORES de SENTENÇAS de uma determinada linguagem 15

Gramáticas Lineares 16 LINGUAGENS FORMAIS Linguagens Regulares (Tipo 3) Seja G = (V, T, P, S) uma gramática e sejam: A V, B V e w é uma sentença (palavra) de T *. Então G é uma: a) Gramática Linear à Direita (GLD) se todas as regras de produção são da forma A wb ou A w b) Gramática Linear à Esquerda (GLE) se todas as regras de produção são da forma A Bw ou A w c) Gramática Linear Unitária à Direita (GLUD) se todas as regras de produção são como na GLD e adicionalmente: w 1 d) Gramática Linear Unitária à Esquerda (GLUE) se todas as regras de produção são como na GLE e adicionalmente: w 1

Linguagens Regulares (Tipo 3) Teorema: Equivalência das Gramáticas Lineares Seja L uma linguagem. Então: L é gerada por uma GLD se e somente se, L é gerada por uma GLE se e somente se, L é gerada por uma GLUD se e somente se, L é gerada por uma GLUE Gramática Regular Uma gramática regular (tipo 3) é qualquer gramática linear 17

18 LINGUAGENS FORMAIS Linguagens Regulares (Tipo 3)

Linguagens Regulares (Tipo 3) A gramática acima é gramática tipo 3?? 19

Linguagens Regulares (Tipo 3) Na gramática acima V N =? V T =? P =? A gramática acima é gramática tipo 3?? 20

Linguagens Regulares (Tipo 3) 1) Construa a gramática regular G sobre o alfabeto Σ={0,1} que gera SENTENÇAS da linguagem L onde L = { w w = 1 m 0, m = 1, 2, 3,... } 2) Construa a gramática regular G sobre o alfabeto Σ={0,1} que gera SENTENÇAS da linguagem L onde as sentenças iniciem, obrigatoriamente, com 00 ou 11 3) Construa a gramática regular G sobre o alfabeto Σ={0,1} que gera SENTENÇAS da linguagem L onde as sentenças tenham, obrigatoriamente, 00 ou 11 como subpalavras 4) Construa a gramática regular G sobre o alfabeto Σ={0,1} que gera SENTENÇAS da linguagem L onde as sentenças iniciem, obrigatoriamente, com 1 e terminem, obrigatoriamente com 0 5) Construa a gramática regular G sobre o alfabeto Σ={0,1} que gera SENTENÇAS da linguagem L onde as sentenças possuem um número par de bits 1 21

Linguagens Regulares (Tipo 3) 6) Construa a gramática regular G sobre o alfabeto Σ={0,1} que gera SENTENÇAS da linguagem L onde as sentenças possuem um número par de bits 1 e um número par de bits 0 7) Construa a gramática regular G sobre o alfabeto Σ={0,1} que gera SENTENÇAS da linguagem L onde as sentenças possuem ou um número par de bits 1 e um número ímpar de bits 0, ou um número ímpar de bits 1 e um número par de bits 0 8) Construa a gramática regular G sobre o alfabeto Σ={0,1} que gera SENTENÇAS da linguagem L onde as sentenças não possuem a subpalavra 11 9) Construa a gramática regular G sobre o alfabeto Σ={0,1} que gera SENTENÇAS da linguagem L onde as sentenças não possuem a subpalavra 101 10) Construa a gramática regular G sobre o alfabeto Σ={0,1} que gera SENTENÇAS da linguagem L onde as sentenças possuem no máximo um par da subpalavra 00 22

Sistema de Estados (status) Finitos Modelo matemático apresentando entradas e saídas discretas. Assume um número finito e pré-definido de estados Exemplos Status da vida escolar de um indivíduo Curso primário incompleto Curso primário completo e cursando o 1 o grau 1 o grau completo e cursando o 2 o grau 2 o grau completo e cursando 3 o grau 3 o grau completo e cursando pós-graduação Pós-graduação completo Status da vida civil de um indivíduo Solteiro Casado Divorciado Viúvo Outros Status do plano de viagem de um avião avião no pátio chegada confirmada para o horário previsto horário de chegada com atraso... 23

Sistema de Estados (status) Finitos - Exemplos Status do acesso a uma determinada home page Localizando web site Web site localizado... Carregando página Web site não localizado Concluído ( carregamento/apresentação da HP)... 24

25 LINGUAGENS FORMAIS Sistema de Estados (status) Finitos - Exemplos

Autômato Finito Autômato Finito Determinístico É uma máquina composta de 3 partes: a) Fita : dispositivo de entrada que contém a informação a ser processada b) Unidade de controle: Reflete o estado corrente da máquina. Possui uma unidade de leitura (cabeça da fita) a qual acessa uma célula da fita de cada vez e movimentase exclusivamente para a direita c) Programa ou função de transição: função que comanda as leituras e define o estado (status) da máquina 26

Autômato Finito Determinístico Um autômato finito determinístico (AFD) é uma 5-upla: Onde: Σ Q δ M = (Σ, Q, δ, q 0, F) Alfabeto de símbolo de entrada Conjunto de estados possíveis do autômato Função programa ou função de transição δ: Q x Σ Q q 0 Estado inicial do autômato (Obs.: q 0 Q ) F Conjunto de estados finais tal que F Q Processamento de um AFD M, para uma palavra (SENTENÇA) w de entrada Sucessiva aplicação da função programa para cada símbolo de w (da esquerda para a direita) até ocorrer uma condição de parada Após processar o último símbolo da palavra w escrita na fita, o AFD assume um estado que pode ser um estado final (quando w é aceita) ou um estado não-final (quando w não é aceita) 27

Autômato Finito Determinístico Convenções para a representação da função de transição 28

29 LINGUAGENS FORMAIS Autômato Finito Determinístico - Exemplo

Gramáticas X Autômatos Autômatos sentenças Dispositivos RECONHECEDORES de Gramáticas Dispositivos GERADORES de sentenças Construir a gramática G = (V, T, P, S) que gera sentenças w que tenham aa ou bb como subpalavra L1 = { w w possui aa ou bb como subpalavra } V = { S, A, A 2, B, B 2 } T = { a, b } P: (1) S aa 2 bb 2 ab ba (2) A 2 aa a ab (3) B 2 bb b bb (4) A aa 2 ab (5) B bb 2 ba Assim, L1(G) : G gera a linguagem L1 30

Linguagens Regulares (Tipo 3) Uma linguagem L aceita por um autômato finito determinístico (AFD) é uma Linguagem Regular ou Tipo 3 A linguagem aceita por um AFD M = (Σ, Q, δ, q 0, F), denotada por ACEITA(M) ou L(M) é o conjunto de todas as SENTENÇAS pertencentes a Σ * aceitas por M, ou seja: ACEITA(M) = L(M) = { w δ(q 0, w) F } Uma linguagem L gerada por uma gramática regular é uma Linguagem Regular ou Tipo 3 A linguagem gerada por G = (V, T, P, S), denotada por GERA(G) ou L(G) é o conjunto de todas as SENTENÇAS pertencentes a Σ * geradas por G, ou seja: GERA(G) = L(G) = { w S * w } 31

Compiladores Primeiras idéias Um compilador é um programa que lê um programa escrito numa linguagem - a linguagem fonte - e o traduz num programa equivalente numa outra linguagem - a linguagem alvo A compilação se divide em duas grandes fases: análise e síntese 32

Compiladores Primeiras idéias Compilador Fase de Análise 1) Análise linear - Um fluxo de caracteres constituindo um programa é lido da esquerda para a direita e agrupado em tokens, que são sequências de caracteres tendo um significado coletivo 2) Análise hierárquica - Os caracteres ou tokens são agrupados hierárquicamente em coleções aninhadas com significado coletivo 3) Análise semântica - Certas verificações são realizadas a fim de se assegurar que os componentes de um programa se combinam de forma significativa 33

Compiladores Primeiras idéias Análise léxica Num compilador, a análise linear é chamada de análise léxica ou esquadrinhamento (scanning) Exemplo: montante := deposito_inicial + taxa_de_juros * 60 Encontram-se os seguintes tokens: 1) identificador montante 2) símbolo de atribuição := 3) identificador deposito_inicial 4) sinal de adição 5) identificador taxa_de_juros 6) sinal de multiplicação 7) número 60 34

Compiladores Primeiras idéias Análise sintática É a análise hierárquica. Envolve o agrupamento de tokens do programa fonte em frases gramaticais que são usadas pelo compilador, a fim de sintetizar a saída. Usualmente, as frases gramaticais do programa fonte são representadas por uma árvore gramatical 35

Fases de um compilador LINGUAGENS FORMAIS Compiladores Primeiras idéias 36

37 montante := deposito_inicial + taxa_de_juros * 60

38

Linguagens Regulares (Tipo 3) 11) Construa um AFD sobre o alfabeto Σ={0,1} que reconheça SENTENÇAS da linguagem L onde L = { w w = 1 m 0, m = 1, 2, 3,... } 12) Construa um AFD sobre o alfabeto Σ={0,1} que reconheça SENTENÇAS da linguagem L onde as sentenças iniciem, obrigatoriamente, com 00 ou 11 13) Construa um AFD sobre o alfabeto Σ={0,1} que reconheça SENTENÇAS da linguagem L onde as sentenças tenham, obrigatoriamente, 00 ou 11 como subpalavras 14) Construa um AFD sobre o alfabeto Σ={0,1} que reconheça SENTENÇAS da linguagem L onde as sentenças iniciem, obrigatoriamente, com 1 e terminem, obrigatoriamente com 0 15) Construa um AFD sobre o alfabeto Σ={0,1} que reconheça SENTENÇAS da linguagem L onde as sentenças possuem um número par de bits 1 39

Linguagens Regulares (Tipo 3) 16) Construa um AFD sobre o alfabeto Σ={0,1} que reconheça SENTENÇAS da linguagem L onde as sentenças possuem um número par de bits 1 e um número par de bits 0 17) Construa um AFD sobre o alfabeto Σ={0,1} que reconheça SENTENÇAS da linguagem L onde as sentenças possuem ou um número par de bits 1 e um número ímpar de bits 0, ou um número ímpar de bits 1 e um número par de bits 0 18) Construa um AFD sobre o alfabeto Σ={0,1} que reconheça SENTENÇAS da linguagem L onde as sentenças não possuem a subpalavra 11 19) Construa um AFD sobre o alfabeto Σ={0,1} que reconheça SENTENÇAS da linguagem L onde as sentenças não possuem a subpalavra 101 20) Construa um AFD sobre o alfabeto Σ={0,1} que reconheça SENTENÇAS da linguagem L onde as sentenças possuem no máximo um par da subpalavra 00 40