Universidade Federal de Alfenas

Documentos relacionados
Universidade Federal de Alfenas

Universidade Federal de Alfenas

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

Linguagens Formais e Problemas de Decisão

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

Teoria da Computação

Universidade Federal de Alfenas

Universidade Federal de Alfenas

Como construir um compilador utilizando ferramentas Java

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

Fundamentos da Teoria da Computação

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

Universidade Federal de Alfenas

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

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos

Autômatos e computabilidade

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

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

Linguagens Formais e Autômatos (LFA)

Revisões de Conjuntos

Linguagens Formais - Preliminares

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

BCC244. Alfabeto, String, Linguagem, Gramática. Registro aqui o agradecimento à Profa. Lucília por ceder slides que fazem parte deste materal.

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS

Universidade Federal de Alfenas

LINGUAGENS FORMAIS E AUTÔMATOS

Histórico e motivação

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

Linguagens Livres do Contexto. Adaptado de H. Brandão

Paradigmas de Programação

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018

Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens)

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

Linguagens Formais e Autômatos P. Blauth Menezes

Fundamentos da Teoria da Computação

sumário 1 introdução e conceitos básicos 1 2 noções de lógica e técnicas de demonstração introdução à matemática discreta...

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 (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP

Introdução à Programação

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

Compiladores. Análise Léxica

Teoria da Computação (BBC244)

Modelos de Computação

Linguagens Formais e Autômatos. Tiago Alves de Oliveira

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

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

Notas sobre Definições Recursivas

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

IBM1088 Linguagens Formais e Teoria da

Compiladores. Prof. Bruno Moreno

Universidade Federal de Alfenas

Construção de Compiladores

Máquinas de Turing - Computabilidade

Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto

Gramáticas Livres de Contexto

Expressões Regulares. Linguagens Formais e Autômatos. Andrei Rimsa Álvares

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Linguagem (formal) de alfabeto Σ

Linguagens Formais e Autômatos P. Blauth Menezes

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

LINGUAGENS FORMAIS E AUTÔMATOS

MAT105 - Fundamentos de Matemática Elementar I

Aula 3: Autômatos Finitos

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

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

LFA. Provas formais; Indução; Sintaxe e Semântica Teoria dos Conjuntos

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:

Autômatos Finitos Não Determinís5cos (AFN)

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos

Linguagens Não-Regulares

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

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

Conceitos Preliminares

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação

Prof. Adriano Maranhão COMPILADORES

Teoria de Linguagens 2 o semestre de 2017 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 19/9/2017 Valor: 10 pontos

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

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 27 de Fevereiro de 2018

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

Hierarquia de Chomsky e sua relação com os autômatos

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema

Conceitos Preliminares

Python e sua sintaxe LNCC UFRJ

a n Sistemas de Estados Finitos AF Determinísticos

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

Semântica Denotacional

Teoria dos Conjuntos. Matemática Discreta. Teoria dos Conjuntos - Parte I. Profa. Sheila Morais de Almeida DAINF-UTFPR-PG.

n. 28 RELAÇÕES BINÁRIAS ENTRE CONJUNTOS

Problema A Codificação Símbolos Dado um inteiro n, n é N representação de inteiros 0,1,...,b - 1 numa base b Dado um grafo G, G é conexo?

Linguagens de Programação Aula 3

Compiladores. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 38

Linguagens Regulares. Prof. Daniel Oliveira

SCC-5832 Teoria da Computação

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

Transcrição:

Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 04 Linguagens Formais humberto@bcc.unifal-mg.edu.br

Última aula... Relação da teoria dos conjuntos com LFA; Relação dos grafos com LFA.

Última aula... Relação da teoria dos conjuntos com LFA; Relação dos grafos com LFA. Aula de hoje Linguagens Formais

Uma linguagem formal, ao contrário de uma linguagem natural possui:

Uma linguagem formal, ao contrário de uma linguagem natural possui: Sintaxe bem definida Dada uma sentença, é possível sempre saber se ela pertence ou não a uma linguagem;

Uma linguagem formal, ao contrário de uma linguagem natural possui: Sintaxe bem definida Dada uma sentença, é possível sempre saber se ela pertence ou não a uma linguagem; Semântica precisa: De modo que não contenha sentenças sem significado ou ambíguas;

As linguagens formais são especialmente úteis na matemática, e nas áreas que utilizam a matemática como ferramenta: Engenharias; Física; Química; Computação. Na computação, a importância é direta e facilmente identificada.

Exemplos de linguagens formais:

Exemplos de linguagens formais: Java C Pascal HTML; Basic; C# VB.net;

Ao projetar um sistema o programador precisa estabelecer uma linguagem formal de comunicação com o usuário final;

Ao projetar um sistema o programador precisa estabelecer uma linguagem formal de comunicação com o usuário final; Se a sua linguagem de comunicação com o usuário final no sistema estiver complexa, é um sinal do sistema estar mal projetado...

Muitos livros de LF para a computação focam em linguagens sem uma definição da semântica da linguagem;

Muitos livros de LF para a computação focam em linguagens sem uma definição da semântica da linguagem; Pode parecer uma limitação;

Muitos livros de LF para a computação focam em linguagens sem uma definição da semântica da linguagem; Pode parecer uma limitação; Em muitos casos é possível estabelecer uma linguagem formal utilizando uma estrutura sintática rica o suficiente para capturar os aspectos relevantes da linguagem.

Toda linguagem possui um ALFABETO associado;

Toda linguagem possui um ALFABETO associado; Um alfabeto é um conjunto finito não vazio de elementos que serão definidos como símbolos;

Toda linguagem possui um ALFABETO associado; Um alfabeto é um conjunto finito não vazio de elementos que serão definidos como símbolos; Uma palavra sobre um alfabeto é uma seqüência finita de símbolos de.

Toda linguagem possui um ALFABETO associado; Um alfabeto é um conjunto finito não vazio de elementos que serão definidos como símbolos; Uma palavra sobre um alfabeto é uma seqüência finita de símbolos de. O tamanho da palavra w é definido como w. O tamanho da palavra define a quantidade de símbolos de w.

Toda linguagem possui um ALFABETO associado; Um alfabeto é um conjunto finito não vazio de elementos que serão definidos como símbolos; Uma palavra sobre um alfabeto é uma seqüência finita de símbolos de. O tamanho da palavra w é definido como w. O tamanho da palavra define a quantidade de símbolos de w. Existe o conceito de palavra vazia:. A palavra vazia é constituída de zero símbolos.

Exemplo de alfabetos importantes: 1 = {1} 2 = {0, 1}

Exemplo de alfabetos importantes: 1 = {1} 2 = {0, 1} Com qualquer um destes alfabetos é possível representar qualquer número natural;

Seja a um símbolo qualquer. A notação a n será utilizada para representar a palavra constituída de n a s.

Seja a um símbolo qualquer. A notação a n será utilizada para representar a palavra constituída de n a s. Exemplos: 4 9 = 444444444 1 3 01 2 = 111011

Uma linguagem sobre um alfabeto é um conjunto de palavras sobre.

Uma linguagem sobre um alfabeto é um conjunto de palavras sobre. Denotamos o conjunto de todas as palavras sobre como *.

Uma linguagem sobre um alfabeto é um conjunto de palavras sobre. Denotamos o conjunto de todas as palavras sobre como *. Assim, dizemos que uma linguagem sobre é um subconjunto de *.

Considere o alfabeto = {0,1}

Considere o alfabeto = {0,1} O conjunto de todas a palavras sobre é: * = {, 0, 1, 00, 11, 01, 10, 000, 111, 001, 010, 100, 011, 101,...}

Considere o alfabeto = {0,1} O conjunto de todas a palavras sobre é: * = {, 0, 1, 00, 11, 01, 10, 000, 111, 001, 010, 100, 011, 101,...} São exemplos de linguagens sobre : { } {0} {, 0} {0 n 1 n n }

Uma linguagem descreve um conjunto de palavras;

Uma linguagem descreve um conjunto de palavras; Assim, podemos utilizar operações sobre conjuntos para descrever linguagens. Exemplos: L1 L2: uma linguagem sobre 1 2 ;

Uma linguagem descreve um conjunto de palavras; Assim, podemos utilizar operações sobre conjuntos para descrever linguagens. Exemplos: L1 L2: uma linguagem sobre 1 2 ; L1 L2: uma linguagem sobre 1 2 ;

Uma linguagem descreve um conjunto de palavras; Assim, podemos utilizar operações sobre conjuntos para descrever linguagens. Exemplos: L1 L2: uma linguagem sobre 1 2 ; L1 L2: uma linguagem sobre 1 2 ; L1 - L2: uma linguagem sobre 1 ;

Utilizaremos outras operações, sobre palavras e linguagens, ao longo da disciplina: Concatenação sobre palavras: w 1 =aabbcc w 2 =bbddaa w 1 w 2 =aabbccbbddaa w 1 =aabbcc w 2 = w 1 w 2 =aabbcc

Reverso sobre palavras: w 1 =aabbcc w 1R =ccbbaa

Concatenação sobre Linguagens: L 1 L 2 ={ xy x L 1 e y L 2 } Exemplos: L 1 = L 1 { }=L 1 = { } L 1

A notação L n será utilizada para designar LLL...L (n vezes) Descrição recursiva: L 0 ={ } L n =L (n-1) L, para n 1

Operação fecho de Kleene: É definido o fecho de Kleene L * da linguagem L como: L * se (x L * ) e (y L) então xy L *. L * n n L Ou seja: L * = L 0 L 1 L 2 L 3...

Definimos também o fecho positivo de Kleene: L n L n {0} L + =LL * L * =L + { }

Leitura para próxima aula VIEIRA, Newton José. Introdução aos Fundamentos da Computação: Linguagens e Máquinas. 1a ed.: Rio de Janeiro: Thomson, 2006. 1.11 Gramáticas livro

Bibliografia VIEIRA, Newton José. Introdução aos Fundamentos da Computação: Linguagens e Máquinas. 1a ed.: Rio de Janeiro: Thomson, 2006.