Вы находитесь на странице: 1из 25

Teoria da Computao

Aula 1 - Introduo

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

TEORIA DA COMPUTAO

O que Teoria da Computao?

Estudos tericos acerca da capacidade de

resoluo de problemas das mquinas;


Estudo de modelos formais que:

Caracterizam em nvel conceitual: programas,

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

mquinas e enfim a computao;


Especificam o que computvel ou no;
Ajudam na especificao de linguagens artificiais
entre outras aplicaes;

TEORIA DA COMPUTAO
Cincia da Computao
nfase terica: idias fundamentais e

modelos computacionais;
nfase prtica: projeto de sistemas
computacionais;

As tecnologias computacionais so construdas


a partir de fundamentos da computao.
Aquelas so passageiras, enquanto estes
esto por trs da tecnologia em qualquer
tempo.

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

TEORIA DA COMPUTAO

Os fundamentos esto por trs da tecnologia em


qualquer tempo.

Tecnologias Computacionais
Fundamentos Tericos da Computao
Anos 40

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

Anos 50

Anos 60

Anos 70

Tempos
atuais

TEORIA DA COMPUTAO

Dentro da Teoria da Computao encontram-se


duas linhas de estudo:

Teoria da Computao
Mquinas Universais e
Computabilidade

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

Linguagens Formais e
Autmatos

TEORIA DA COMPUTAO

Representao clara:

humanos x computador

Representao Formal Computador;


Um objetivo de LFA estudar uma
maneira precisa e formal de descrever
sequncias de smbolos pertencentes
um determinado conjunto;

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

TEORIA DA COMPUTAO

Em especial conjuntos que no podem ser

trivialmente enumerados;
Os estudos iniciais foram em torno de
Linguagens Naturais (LN);
Algumas caractersticas de LN
introduziram dificuldades no tratamento
computacional das mesmas:

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

LN extensa, complexa, no tem sintaxe rgida e


semntica bem determinada (rica em ambiguidade);

TEORIA DA COMPUTAO

Conceitos iniciais

Alfabeto

Conjunto finito de smbolos;


Normalmente descrito por ;
Exemplos:
={a, b}
={1, 2, 3}
O alfabeto de uma linguagem computacional: {program,
begin, end, var, integer, char, real, for, if, then, else, ..., :, <,
>, =, +, *, ...}

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

TEORIA DA COMPUTAO

Smbolo ou Letra

todo elemento pertencente um alfabeto;

Exemplo: dado o alfabeto ={0, 1, 23}

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

0 um smbolo de ;
1 um smbolo de ;
23 um smbolo de ;

TEORIA DA COMPUTAO

Essas duas primeiras definies so


bastante livres. Embora os smbolos
tambm possam ser chamados de letras,
eles no precisam ter necessariamente
um nico caractere. E alm disso, os
smbolos de um alfabeto no precisam
todos ter o mesmo nmero de caracteres.
A nica restrio que o tamanho do
smbolo seja finito.

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

10

TEORIA DA COMPUTAO

Conceitos iniciais

Cadeia ou palavra

uma concatenao de smbolos de um mesmo

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

alfabeto;
Exemplos:
Dado o alfabeto ={a, b} tem-se que a, aa, b, bb, ab, ba,
bbb so cadeias que podem ser formadas a partir deste
alfabeto.
Dado o alfabeto da linguagem Pascal, tem-se que
Program teste; Var i: integer; Begin i:=1; End. uma
cadeia forma a partir deste alfabeto.

11

TEORIA DA COMPUTAO

Comprimento de cadeia ou tamanho da palavra

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

o nmero de smbolos que compem uma dada


cadeia (ou palavra);
O comprimento de uma cadeia x denotado por |x|;
Ento, a cadeia x=a1a2a3...an, tem seu comprimento |x|
= n;
Cadeia nula ou palavra vazia: um caso especial, ela
denotada por (ou ) e tem tamanho igual a zero.

12

TEORIA DA COMPUTAO

Exerccio: dado o alfabeto ={a, b, c, de},


verifique se as cadeias a seguir so formadas
sobre este alfabeto, e se for, verifique qual o
comprimento das mesmas:

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

x = ababac
y = abdec
z = abedc
w = abdceaba
s=d
t=a

13

TEORIA DA COMPUTAO

Exponenciao de Alfabetos: k o conjunto de


todas as cadeias com tamanho k, formadas
sobre o alfabeto .

Exemplo: considere = {0, 1}


0 = {}
1 = {0, 1} =
2 = {00, 01, 10, 11}
...

Exerccio: encontre o 3 para o exemplo


anterior.

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

14

TEORIA DA COMPUTAO

Fechamento de um Alfabeto: seja um


alfabeto, ento o fechamento de , descrito por
* definido como
* = 0 1 2 ... n ...
* o conjunto de todas as cadeias possveis
de se formar sobre o alfabeto .
Fechamento positivo + = * - {}

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

15

TEORIA DA COMPUTAO

Concatenao de cadeias: dado o alfabeto e


as cadeias x, y *, a concatenao de x e y,
indicada por xy, produz uma cadeia formada
pelos smbolos de x seguidos pelos smbolos
de y.
Se x = a1a2...an * e y = b1b2...bm *, ento
xy = a1a2...anb1b2...bm

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

16

TEORIA DA COMPUTAO

Exemplos:

= {a, b}
x = abaa, y = ba, z=
xy = abaaba
yx = baabaa
yz = ba = zy = y
A cadeia nula () o elemento neutro da concatenao.

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

17

TEORIA DA COMPUTAO

Concatenao sucessiva: concatenao de uma


palavra com ela mesma;

Representada atravs de um expoente: wn

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

Onde w uma palavra e n indica o nmero de


concatenaes sucessivas;

18

TEORIA DA COMPUTAO

Dado um alfabeto e x, y *, diz-se que:

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

x um prefixo de y sse w * tal que y= xw;


x um sufixo de y sse w * tal que y= wx;
x um subpalavra de y sse w,u * tal que y=
wxu;

19

TEORIA DA COMPUTAO

Conceitos iniciais

Linguagem

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

Conjunto de palavras formadas a partir de um mesmo


alfabeto;
Exemplos:
Dado o alfabeto ={a, b}, L={a, b, aa, ab, ba, bb} uma
linguagem formada sobre este alfabeto;
A linguagem de programao Pascal formalmente uma
linguagem, na medida em que ela o conjunto de todos
os programas que se pode escrever respeitando suas
regras. Observe que os programas so cadeias de
smbolos.

20

TEORIA DA COMPUTAO
Alfabeto da linguagem Pascal
{program, var, integer, real, char, begin, end, if, then, else, for,..., ; , ,, : , := , . , ...}

O cdigo fonte de um programa corresponde uma


cadeia formada a partir de smbolos do alfabeto.
Program Teste;
Var
i: integer;
Begin
i:=0;
End.

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

LINGUAGEM
Conjunto de todas as cadeias
descritas a partir do alfabeto que
respeitam um conjunto de regras
sintticas.

21

TEORIA DA COMPUTAO

Operaes sobre linguagens;


Considere L1 e L2 linguagens definidas sobre :
Unio: L1 U L2;
Interseco: L1 L2;
Diferena: L1 - L2;
Concatenao: L1.L2;
Complemento: L1 (Todos os elementos do
alfabeto que no esto em L1 ).

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

22

TEORIA DA COMPUTAO

Exemplos de operaes:
Sejam L1 e L2 definidas sobre {0,1}:

L1 = {0,11}
L2 = {0, 1, 00}

L1 U L2 = {0, 1, 00, 11}


L1 L2 = {0}
L1 - L2 = {11}
L1.L2 = {00, 01, 000, 110, 111, 1100}

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

23

TEORIA DA COMPUTAO

Comparando as definies:
Linguagem Natural:
Uma palavra em portugus equivale um smbolo;
Uma sentena da lngua portuguesa uma cadeia
composta por vrios smbolos;
Linguagem Computacional:
Cada programa escrito numa linguagem computacional
corresponde a uma cadeia de smbolos que podem ser:
identificadores;
palavras reservadas;
smbolos especiais e operadores;
constantes numricas.

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

24

Bibliografia

MENEZES, Paulo Blauth. Linguagens Formais e


Autmatos. Porto Alegre: Editora Sagra-Luzzatto,
1998.

Prof. Fabiano Utiyama


Mestre em Cincia da Computao

25

Вам также может понравиться