Computabilidade e Linguagens Formais - PowerPoint PPT Presentation

About This Presentation
Title:

Computabilidade e Linguagens Formais

Description:

Title: CLF Subject: Introducao Author: Gabriel David Last modified by: Gabriel David Created Date: 6/2/1995 10:16:36 PM Document presentation format – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 11
Provided by: Gabrie137
Category:

less

Transcript and Presenter's Notes

Title: Computabilidade e Linguagens Formais


1
Computabilidade e Linguagens Formais
  • Introdução à teoria dos autómatos
  • Notas baseadas em John E. Hopcroft, Rajeev
    Motwani, Jeffrey D. Ullman. Introduction to
    automata theory, languages and computation. 2nd
    ed, Addison-Wesley, 2001.

Gabriel David / Cristina Ribeiro
2
História
  • Teoria dos autómatos estudo dos dispositivos
    computacionais abstractos máquinas
  • Alan Turing (1930s)
  • Estudou os limites de uma máquina abstracta
    equivalente às máquinas actuais
  • Antes de haver computadores!
  • 1940s, 1950s
  • Estudos em autómatos finitos para modelar o
    cérebro
  • Noam Chomsky (1950s)
  • Gramáticas formais - relacionadas com autómatos
    abstractos úteis em compilação
  • S. Cook (1969)
  • Teoria da complexidade o que é possível ou não
    computar

3
Interesse da teoria dos autómatos
  • Útil na modelação de hardware e software
  • Projecto e teste de circuitos digitais
  • Análise lexical em compilação
  • Processamento de texto, pesquisa na Web
  • Máquinas de estados, protocolos de comunicação,
    criptografia
  • Autómato finito
  • Sistema que em cada momento está num de um nº
    finito de estados
  • Estado memoriza a porção relevante da história do
    sistema
  • Sendo finito tem que esquecer o que não for
    relevante
  • Pode ser implementado com recursos fixos

4
Interruptor on/off
Press
Start
on
off
Press
  • Autómato finito mais simples modela interruptor
  • Dois estados círculos on e off
  • Uma só entrada etiquetas nos arcos Press
  • Representa influência externa no sistema
    transição de estado
  • Carregar no botão tem um efeito dependente do
    estado
  • Estado inicial indicado por uma seta com a
    etiqueta Start
  • Pode existir um (ou mais) estados finais ou de
    aceitação, indicados por círculo de linha dupla
  • Chegar a um desses estados significa que a
    sequência de entradas é boa

5
Reconhecedor
t
h
e
n
Start
t
th
the
then
  • Se a entrada for a cadeia t-h-e-n o autómato
    evolui do estado inicial para o final
  • Acumula a história das entradas
  • O seu objectivo é reconhecer a palavra then

6
Representações estruturais
  • Gramáticas
  • Processar dados com estrutura recursiva
    expressões
  • Exemplo de regra gramatical E ? E E
  • Uma expressão pode ser constituída por duas
    expressões ligadas por
  • Usadas em analisadores parsers de compiladores
  • Expressões regulares
  • Descreve a estrutura de cadeias de caracteres
  • Exemplo 1-90-90-90-9-0-90-90-9
    A-Za-z
  • Descreve 4200-465 Porto mas falha 5505-032
    Vila Real
  • Correcção 1-90-90-90-9-0-90-90-9(
    A-Za-z)

7
Conceitos centrais
  • Alfabeto é um conjunto finito e não vazio de
    símbolos
  • ? 0, 1 , alfabeto binário
  • ? a, b, , z , conjunto das minúsculas
  • Conjunto dos caracteres ASCII
  • Cadeia (ou palavra) é uma sequência finita de
    símbolos escolhidos de um alfabeto
  • 01101 é uma cadeia do alfabeto ? 0, 1
  • Cadeia vazia (?) tem zero ocorrências de símbolos
  • Comprimento de uma cadeia é o número de
    ocorrências de símbolos 01101 5, ? 0
  • Potência de um alfabeto ?k é o conjunto de
    cadeias de comprimento k, formadas por símbolos
    do alfabeto ? (produto cartesiano)
  • ?0 ?
  • Se ? 0, 1 então ?1 0, 1 , ?2 00, 01,
    10, 11, ?3 000, 001, , 111
  • Distinção entre ? 0, 1 conjunto de símbolos e
    ?1 0, 1 conjunto de cadeias

8
Linguagem
  • O conjunto de todas as cadeias sobre um alfabeto
    ? é denotada por ?
  • ? ?0 ? ?1 ? ?2 ?
  • ? ?1 ? ?2 ?
  • ? ?0 ? ?
  • Linguagem L sobre um alfabeto ? é um subconjunto
    de ? (L ? ?)
  • Linguagem das cadeias com n 0s seguidos de n 1s
  • ?, 01, 0011, 000111,
  • Conjunto dos números binários que são primos
  • 10, 11, 101, 111, 1011,
  • Linguagem vazia
  • ?
  • Linguagem só com a cadeia vazia
  • ?

9
Problema
  • Problema é a questão de decidir se, dada uma
    cadeia, ela é membro de uma determinada linguagem
  • Dados w ? ? e L ? ?, w ? L ?
  • É comum descrever uma linguagem através de um
    construtor de conjuntos
  • w w consiste de um número igual de 0s e 1s
  • Conjunto dos w tal que w
  • w w é um programa em C sintacticamente
    correcto
  • Problema de testar a primalidade
  • w ? Lp ? em que w é uma cadeia com a
    representação binária de um número e Lp é a
    linguagem que contém todas as cadeias que são
    representações binárias de números primos

10
Linguagem ou problema?
  • Problema em sentido comum
  • Pedido para calcular ou transformar uma entrada
    (ex compilador)
  • Não uma questão de decisão (sim/não)
  • Para efeitos de estudos de complexidade, definir
    um problema em termos de uma linguagem é adequado
  • É tão difícil resolver a questão da decisão como
    a do problema
  • Se for difícil decidir se uma cadeia pertence à
    linguagem LX das cadeias válidas na linguagem de
    programação X então não é mais fácil traduzir
    programas na linguagem X para código objecto
  • Se fosse, executava-se o tradutor e decidia-se da
    pertença a LX conforme o sucesso do tradutor em
    produzir código objecto. O problema da decisão
    ficava fácil, o que contradiz a suposição (prova
    por contradição)
  • Exemplo de redução de um problema a outro
  • Linguagens e problemas são a mesma coisa
  • Cadeias enquanto tal linguagem objectos
    representados problema
Write a Comment
User Comments (0)
About PowerShow.com