Linguagens Formais e Autômatos

Documentos relacionados
Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos

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

PLANO DE ENSINO. CURSO: Bacharelado em Sistemas de Informação MODALIDADE: PRESENCIAL ( X ) OBRIGATÓRIA ( ) OPTATIVA DEPARTAMENTO: DEINFO

SCC-5832 Teoria da Computação

SCC Introdução à Teoria da Computação

Linguagem de Programação e Compiladores

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

SCC Teoria da Computação e Linguagens Formais

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

Máquinas de Turing - Computabilidade

Linguagens Formais e Autômatos. Tiago Alves de Oliveira

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

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP

IBM1088 Linguagens Formais e Teoria da Computação

Teoria da Computação (BBC244)

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

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

Linguagens Formais e Autômatos Apresentação da Disciplina

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

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos P. Blauth Menezes

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

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

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo.

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

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

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

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

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

Linguagens Formais e Autômatos P. Blauth Menezes

UNIVERSIDADE ESTADUAL DO SUDOESTE DA BAHIA - UESB DEPARTAMENTO DE CIÊNCIAS EXATAS - DCE PLANO DE CURSO DISCIPLINA

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

Universidade Federal do ABC Rua Santa Adélia, Bairro Bangu - Santo André - SP - Brasil CEP Telefone/Fax:

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30

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

Gramática. Gramática. Gramática

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

Teoria da Computação. Aula 01

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

SEMÂNTICA 02/09/2013. Conceitos de LPs - Semântica

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

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

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL Instituto de Informática Departamento de Informática Teórica

LINGUAGENS FORMAIS E AUTÔMATOS

ECO026 TEORIA DA COMPUTAÇÃO. Prof: Rafael Santos Site:

Universidade Federal de Alfenas

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

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

Compiladores II. Fabio Mascarenhas

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...

Análise Sintática Introdução

Universidade Federal de Alfenas

Introdução à Programação

Linguagens de Programação

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular TEORIA DA COMPUTAÇÃO Ano Lectivo 2013/2014

FOLHA DE PROVA. Descreva e ilustre, com um exemplo, o algoritmo de minimização de um autômato.

Teoria da Computação. Computabilidade e complexidade computacional

Compiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 32. Instituto de C

Linguagens Formais e Autômatos

Gramáticas Livres de Contexto

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

Turma A - Segundas e Quartas das 8h30min - 10h10min Turma B - Segundas e Quartas das 10h30min - 12h10min

Modelos de Computação

Linguagens Formais e Autômatos P. Blauth Menezes

Universidade Federal de Alfenas

Linguagens de Programação Aula 3

Linguagens Formais e Autômatos (LFA)

Compiladores Ambiente de Execução

Compiladores - Análise Recursiva

Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

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

Compiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 30. Instituto de C

INE5622 INTRODUÇÃO A COMPILADORES

Revisão: linguagens de programação

Apresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais.

Universidade Federal de Alfenas

15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação

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

Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 2. Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 2 / 12

CT-200 Fundamentos de Linguagens Formais e Automata - Aula 01 - In...

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

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular TEORIA DA COMPUTAÇÃO Ano Lectivo 2017/2018

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?

Compiladores - Especificando Sintaxe

Compiladores Análise Semântica

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

Paradigmas de Linguagens de Programação. Descrevendo a Sintaxe e a Semântica

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

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

PLANO DE APRENDIZAGEM

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular COMPILADORES Ano Lectivo 2011/2012

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

Revisão. Fases da dacompilação

Transcrição:

Linguagens Formais e Autômatos Hisham Muhammad h@hisham.hm PUC-Rio

Sobre o professor Hisham H. Muhammad MSc. em Informática pela PUC-Rio Doutorando na área de Linguagens de Programação Grupo do LabLua, Prof. Roberto Ierusalimschy http://www.lua.inf.puc-rio.br

O que é esta disciplina? Linguagens Formais e Autômatos

O que é esta disciplina? Linguagens Formais e Autômatos O que são linguagens? O que quer dizer "formal"? O que são autômatos?

Teoria das linguagens formais Nasceu nos anos 1950 para tratar linguagens naturais Análise léxica, análise sintática... Oração Sujeito Predicado verbal Adjunto adverbial Objeto indireto Predicativo do objeto Nós acreditamos sempre em dias melhores

Teoria de linguagens formais Adotada no estudo de linguagens artificiais Aplicações Análise léxica e sintática de linguagens de programação Parsers, compiladores Circuitos lógicos Animação Bioinformática etc...

"Formal" Linguagens formais informais?

"Formal" Linguagens formais informais? Forma função Forma: sintaxe Função: semântica

"Formal" Linguagens formais informais? Forma função Forma: sintaxe Função: semântica Linguagens formais são linguagens que têm uma forma bem-definida ("fórmula bem formada", matematicamente falando) Ou seja, vamos tratar de sintaxe

"Formal" Linguagens formais informais? Forma função Forma: sintaxe Função: semântica Linguagens formais são linguagens que têm uma forma bem-definida ("fórmula bem formada", matematicamente falando) Ou seja, vamos tratar de sintaxe... mas linguagens formais também são menos "informais"

Linguagens formais Alfabetos Palavras Gramáticas Linguagens block ::= {stat} [retstat] stat ::= ; varlist = explist functioncall break do block end while exp do block end repeat block until exp if exp then block {elseif exp then block} [else block] end for Name = exp, exp [, exp] do block end for namelist in explist do block end function funcname funcbody local function Name funcbody local namelist [ = explist] retstat ::= return [explist] [ ; ] funcname ::= Name {. Name} [ : Name] varlist ::= var {, var} var ::= Name prefixexp [ exp ] prefixexp. Name namelist ::= Name {, Name} explist ::= exp {, exp} exp ::= nil false true Number String... functiondef prefixexp tableconstructor exp binop exp unop exp binop ::= + - * / ^ %.. < <= > >= == ~= and or unop ::= - not #

Hierarquia de Linguagens Formais Noam Chomsky, 1956

Hierarquia de Chomsky Tipo 0: Gramáticas irrestritas Tipo 1: Gramáticas sensíveis ao contexto Tipo 2: Gramáticas livres de contexto Tipo 3: Gramáticas regulares

Hierarquia de Chomsky Tipo 0: Linguagens recursivamente enumeráveis Tipo 1: Linguagens sensíveis ao contexto Tipo 2: Linguagens livres de contexto Tipo 3: Linguagens regulares

...e Autômatos Estudo dos dispositivos de computação abstratos, ou "máquinas" Década de 1930, precede os computadores Da axiomatização da matemática (Russell, Whitehead)... Prove que 1+1=2... 362 páginas...surgiu a necessidade de definir o que é possível ou não de se fazer...matematicamente?...mecanicamente?

Autômatos Antes de nos perguntarmos sobre os limites fundamentais da computação, precisamos de modelos Modelo abstrato de máquina: diagrama de estados Liga Início off on Desliga

Relação com linguagens

...e de fato: Tipo 0: Máquina de Turing Tipo 1: Autômato linearmente limitado Tipo 2: Autômato de pilha Tipo 3: Autômato de estados finitos

e mais: Máquina de Turing D/ND Autômato linearmente limitado ND Autômato linearmente limitado D (=?...) Autômato de pilha ND Autômato de pilha D Autômato finito D/ND

Diferença de abordagens Autômatos Abordagem operacional Máquinas abstratas com estados, instruções primitivas Permitem a análise de uma entrada para verificar se é "reconhecida" pela máquina Gramáticas Abordagem axiomática Associam-se regras aos componentes da linguagem Permitem verificar se uma cadeia pode ser "gerada" a partir dos axiomas

LFA: Convergência de disciplinas Matemática discreta Linguística formal Computação teórica

Objetivos do curso Formativos Projetar gramáticas para especificar linguagens Projetar autômatos para reconhecer linguagens Classificar linguagens formais em função dos seus reconhecedores e gramáticas Entender o papel do não-determinismo na computação Informativos História da Computação Limitações do processo computacional Hierarquia de Chomsky Hierarquia de complexidade

Programa da disciplina Alfabetos, cadeias e linguagens Gramáticas, derivação, linguagem definida por gramática Linguagens regulares e autômatos finitos Linguagens livres de contexto e autâmatos de pilha Linguagens sensíveis ao contexto e autômatos linearmente limitados Linguagens recursivamente enumeráveis e Máquinas de Turing Decidibilidade e computabilidade

Ferramental da disciplina JFLAP (http://www.jflap.org)

Bibliografia Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência: Hopcroft, Ullman & Motwani "Introdução à Teoria de Autômatos, Linguagens e Computação", 2.ed, Campus 2002 Complementar: Apostila do Prof. José Lucas Rangel http://www.tecmf.inf.puc-rio.br/lfa Complementar: Notas complementares e material suplementar http://www.tecmf.inf.puc-rio.br/lfa Site desta turma, slides das aulas: http://hisham.hm/puc-rio/lfa/

Créditos e referências Slides do Prof. Hermann http://www.tecmf.inf.puc-rio.br/lfa?action=attachfil e&do=view&target=aulas-lfa-1.pdf Slides da Profª. Clarisse http://www.inf.puc-rio.br/~inf1626/docs/aula01-introdu cao.pdf