Linguagens, Gramáticas e Máquinas

Tamanho: px
Começar a partir da página:

Download "Linguagens, Gramáticas e Máquinas"

Transcrição

1 Linguagens, Gramáticas e Máquinas 1 INTRODUÇÃO Pode-se olhar um computador como uma máquina M que tem as propriedades descritas a seguir. A cada instante, M tem um "estado interno", M lê alguma "entrada", M "imprime" alguma saída que depende apenas do estado interno e da entrada e, então, possivelmente, M muda o estado interno. Existem várias maneiras de formalizar a noção de uma máquina M bem como uma hierarquia de tais máquinas. Pode-se também definir uma função "computável" em termos de um tipo especial de máquina M (máquina de Turing) que produz uma saída inteira não negativa M(n) para qualquer entrada inteira não negativa n. Como a maioria dos dados pode ser codificada por tais inteiros, a máquina M pode tratar a maior parte dos dados. Este texto é dedicado a essas questões e a tópicos a elas relacionados. 2 ALFABETOS, PALAVRAS E SEMIGRUPOS LIVRES Considere um conjunto não vazio A de símbolos. Uma palavra ou string w no conjunto A é uma seqüência finita de elementos do alfabeto. Por exemplo, as seqüências: u = ababb e v = accbaaa são palavras em A = {a, b, c}. Quando tratamos de palavras em A, freqüentemente denominamos A como o alfabeto, e seus elementos são chamados de letras. Também usaremos notação abreviada escrevendo a 2 para aa, a 3 para aaa e assim por diante. Logo, para as palavras acima, u = abab 2 e v = ac 2 ba 3. A seqüência vazia, denotada por λ, (letra grega lambda), ε (letra grega épsilon) ou 1, também é considerada uma palavra em A, chamada de palavra vazia. O conjunto de todas as palavras em A é denotado por A*. O comprimento de uma palavra u (escreve-se u ou l(u)) é o número de elementos na sua seqüência de letras. Para as palavras u e v acima, temos l(u) = 5 e l(v) = 7. Além disso, l(λ) = 0, onde λ é a palavra vazia. Observação: A menos que afirmação em contrário seja feita, o alfabeto A será finito, os símbolos u, v e w estarão reservados para palavras em A e os elementos de A usarão as letras a, b e c. Concatenação Considere duas palavras u e v em um alfabeto A. A concatenação de u e v, denotada por uv, é a palavra obtida quando se escrevem as letras de u seguidas das letra de v. Por exemplo, para as palavra w e v acima, temos uv = ababbaccbaaa = abab 2 ac 2 ba 3 A exemplo das letras, definimos u 2 = uu, u 3 = uuu e, em geral, u n+l = uu n onde u é uma palavra. Claramente, para quaisquer palavras u, v e w, as palavras (uv)w e u(vw) são idênticas, consistindo, simplesmente, nas letras u, v e w escritas uma após a outra. Também, o acoplamento da palavra vazia antes ou depois de qualquer palavra u não altera a palavra u. Em outros termos: Teorema 1: a operação de concatenação de palavras em um alfabeto A é associativa. A palavra vazia λ é o elemento identidade da operação. (Falando em termos gerais, a operação não é comutativa, por exemplo, uv vu para as palavras u e v acima.)

2 Subpalavras e Segmentos Iniciais Considere qualquer palavra u = a l a 2...a n em um alfabeto A. Qualquer seqüência w = a j a j a k é chamada subpalavra de w. Em particular, a subpalavra w = a 1 a 2...a k, começando com as primeiras letras de w, é dita um segmento inicial de u. Em outros termos, w é uma subpalavra de u se u = v 1 wv 2, e w é um segmento inicial de u se u = v 1 wv 2. Observe que λ. e u são subpalavras de u, já que u = λ.u. Considere a palavra u = abca. As subpalavras e segmentos iniciais de u são: 1 Subpalavras: λ, a, b, c, ab, bc, ca, abc, bca, abca. 2 Segmentos iniciais: λ, a, ab, abc, abca. Observe que a subpalavra w = a aparece em dois lugares de u. A palavra ac não é uma subpalavra de u mesmo que todas as letras pertençam a u. Semigrupos Livres e Monóides Livres Seja F o conjunto de palavras não vazias de um alfabeto A com a operação de concatenação. Como observado acima, a operação é associativa. Assim F é um semigrupo, chamado semigrupo livre sobre A ou semigrupo livre gerado por A. Pode-se mostrar facilmente que F satisfaz as leis de cancelamento à direita e à esquerda. Entretanto, F não é comutativo quando A tem mais de um elemento. Escreveremos F A para o semigrupo livre sobre A quando quisermos especificar o conjunto A. Considere agora M = A* o conjunto de todas as palavras de A, incluindo a palavra vazia λ. Como λ é um elemento identidade para a operação de concatenação, M é um monóide, chamado monóide livre sobre A. 3 LINGUAGENS Uma linguagem L sobre um conjunto A é uma coleção de palavras em A. Lembre que A * denota o conjunto de todas as palavras em A. Portanto, a linguagem L é, simplesmente, um subconjunto de A*. Exemplo 1 Os seguintes conjuntos são linguagens sobre A. 1. L l ={a,ab,ab 2,...} 2. L 2 = { a m b n : m > 0, n > 0}. 3. L 3 = {a m b m : m > 0}. 4. L 4 = {b m ab n :m > 0, n > 0}. Pode-se, verbalmente, descrever essas linguagens como a seguir. (a) L, consiste em todas as palavras começando por a e seguidas de zero ou mais bs. (b) L 2 consiste em todas as palavras começando por um ou mais a e seguidas por um ou mais bs. (c) L 3 consiste em todas as palavras começando por um ou mais a e seguidas pelo mesmo número de bs. (d) L 4 consiste em todas as palavras com exatamente um a. Operações em Linguagens Suponha que Lê M são linguagens sobre um alfabeto A. A "concatenação" de L e M, denotada por LM, é a linguagem definida como a seguir: LM = {uv: u L, v M} isto é, LM denota o conjunto de todas as palavras que vêm da concatenação de uma palavra de L com uma palavra de M. Por exemplo, suponha L 1 ={a,b 2 } L 2 = {a 2,ab,b 3 }, L, = {a 2, a 4, a 6,...} Então, L 1 L 2 = {a 3,a 2 b,ab 3,b 2 a 2,b 2 ab,b 5 } L 1 L 3 = {a 3,a 5,a 7,...,b 2 a 2,b 2 a 4,b 5 a 6,...} L 1 L 1 ={a 2,ab 2,b 2 a,b 4 } Claramente, a concatenação de linguagens é associativa, já que a concatenação de palavras é associativa. As potências de uma linguagem L são definidas como a seguir. L 0 = {λ}, L 1 =L, L 2 = LL, L m+l =L m L para m > 1. A operação unária L* (lê-se "L estrela") de uma linguagem L, conhecida como o fecho de Kleene de L, porque Kleene provou o Teorema 2.

3 Teorema 2: Fecho de Kleene = U k L * = L L L... L k = 0 A definição de L* é coerente com a notação A* que consiste em todas as palavras sobre A. Alguns textos definem L* como sendo a união de L 1, L 2,..., isto é, L + é a mesma coisa que L*, mas sem a palavra vazia λ. 4 EXPRESSÕES REGULARES E LINGUAGENS REGULARES Seja A um alfabeto (não vazio). Esta seção define uma expressão regular r sobre A e uma linguagem L(r) sobre A associada à expressão regular r. A expressão r e sua linguagem correspondente L(r) são indutivamente definidas a seguir. Definição: Cada uma das expressões seguintes é uma expressão regular sobre um alfabeto A. 1. O símbolo "λ" (palavra vazia) e o par"( )" (expressão vazia) são expressões regulares. 2. Cada letra a em A é uma expressão regular. 3. Se r é uma expressão regular, então (r*) é uma expressão regular. 4. Se r 1 e r 2 são expressões regulares, (r 1 r 2 ) é uma expressão regular. 5. Se r 1 e r 2 são expressões regulares, então (r 1 r 2 ) é uma expressão regular. Todas as expressões regulares são formadas dessa maneira. Observe que uma expressão regular r é um tipo especial de palavra (stríng) que usa as letras de A e os cinco símbolos ( ) * λ Enfatizamos que nenhum outro símbolo é usado em expressões regulares. Definição: Uma linguagem L(r) sobre A, definida por uma expressão regular r sobre A, é definida como: (1) L(λ) = (λ} e L(( )) =, o conjunto vazio. (2) L(a) = {a}, onde a é uma letra em A (3) L(r*) = (L(r))*, o fecho de Kleene L(r) (4).L(r 1 r 2 ) = L ( r 1 ) L(r 2 ) (a união das linguagens). (5) L(r 1 r 2 ] = L(r 1) L(r 2 ) (a concatenação das linguagens). Observação: Serão omitidos os parênteses das expressões regulares quando possível. Como a concatenação e a união de linguagens são associativas, muitos dos parênteses podem ser omitidos. Além disso, adotando a convenção de que * tem precedência sobre a concatenação e que concatenação tem precedência sobre " ", outros parênteses podem ser omitidos. Definição: Seja L uma linguagem sobre A. Então L é dita uma linguagem regular sobre A se existe uma expressão regular r sobre A tal que L = L(r). Exemplo 2: Seja A=[a, b}. Cada um dos itens a seguir tem uma expressão r e sua linguagem correspondente L(r): (a) Seja r = a*. Então, L(r) consiste em todas as potências de a, i.e., todas as palavras em a (incluindo a palavra vazia λ). (b) Seja r = aa*. Então, L(r) consiste em todas as potências positivas de a, i. e., todas as palavras em a excluindo a palavra vazia. (c) Seja r = a b*. Então, L(r) consiste em a ou qualquer palavra em b, isto é, L(r) = {a, λ,b,b 2,...} (d) Seja r = (a b)*. Note que L(a b) = {a} {b} = A; logo, L(r) = A*, todas as palavras sobre A. (e) Seja r = (a b)*bb. Então, L(r) consiste na concatenação de qualquer palavra em A com bb, isto é, todas as palavras terminando em b. (f) Seja r = a b*. L(r) não existe, pois r não é uma expressão regular. (Note que A não é um dos símbolos usados para expressões regulares)

4 Exemplo 3: Considere as seguintes linguagens sobre A = {a, b}: (a) L 1 = {a m b n : m > 0, n > 0}, (b) L 2 = {b m ab n : m > 0, n > 0}, (c) L 3 = {a m b m : m > 0}. Ache uma expressão regular r sobre A = {a, b} tal que L i = L(r) para i = l, 2, 3. (a) L 1 consiste nas palavras começando com um ou mais as seguidos por um ou mais bs. Por exemplo, podemos fazer r = a*abb*. Note que r não é única; por exemplo, r = a*abb* é outra solução. (b) L 2 consiste em todas as palavras que começam com um ou mais bs seguidos por um único a posteriormente seguido por um ou mais b, isto é, todas as palavras com exatamente um a que não pode ser nem a primeira nem a última letra. Portanto, r = bb*abb* é uma solução. (c) L 3 consiste em todas as palavras começando com um ou mais as seguidos pelo mesmo número de bs. Não existe expressão regular r tal que L 3 = L(r); isto é, L 3 não é uma linguagem regular. Este fato é demonstrado no Exemplo 7. 5 AUTÓMATOS DE ESTADO FINITO Um autômato de estado finito (AEF) ou, simplesmente, um autômato M consiste em cinco partes: 1. um conjunto finito (alfabeto) A de entradas; 2. um conjunto finito S de estados (internos); 3. um subconjunto Y de S cujos elementos são chamados de aceitáveisou estados "sim"; 4. um estado inicial S Q em S; 5. uma função de próximo estado F de S x A em S. Um autômato M é denotado por M = ( A, S, Y, s 0, F) quando se quer indicar suas cinco partes. (O plural de autômato é automata). Alguns textos definem a função de próximo-estado F: S x A S em (S) por uma coleção de funções f a : S S, uma para cada a. A; isto é, cada entrada a pode ser vista como causadora de uma mudança no estado do autômato M. A associação F(s, a) =f a (s) mostra que ambas as definições são equivalentes. Exemplo 4: A seguir, define-se um autômato M com dois símbolos de entrada e três estados. 1. A = [a, b ], símbolos de entrada. 2. S= {S 0,S 1,S 2 },estados internos. 3. Y = { S 0,S 1 }, estados "sim". 4. S 0 estado inicial 5. Função de próximo-estado F: S x A S definida por F(S 0,a)= S 0, F(S 1,a)= S 0, F(S 2,a)= S 2, F(S 0,b)= S 1, F(S 1,b)= S 2, F(S 2,b)= S 2, A função de próximo-estado é freqüentemente dada por uma tabela, como na Figura 1. Diagrama de Estados de um Autômato M Um autômato M é definido mais freqüentemente por seu diagrama de estados D = D(M) do que pela listagem das suas cinco partes. O diagrama de estados D = D(M) é um grafo orientado rotulado como descrito a seguir.

5 1. Os vértices de D(M) são os estados de S e um estado aceitável é denotado por um círculo duplo. 2. Existe uma seta (aresta orientada) em D(M) do estado s j para o estado s k rotulada por uma entrada a se F(s j,a) = s k ou, equivalentemente, se f a (s j ) = s k. 3. O estado inicial s 0 é indicado por uma seta especial que termina em s 0, mas que não tem vértice inicial. Para cada vértice S, e cada letra a do alfabeto A, existirá uma seta saindo de s j rotulada por a; logo, o grau de saída de cada vértice é igual ao número de elementos em A. Por conveniência de notação, rotulamos uma única seta com todas as entradas que causam a mesma mudança de estado em vez de usar uma seta para cada mudança. O diagrama de estados D = D(M) do autômato M no Exemplo 1 aparece na Figura 2. Note que a e, b são rótulos para a seta de s 2 para s 2, pois F(s 2,a) = s 2 e F(s 2,b) = s 2. Note também que o grau de saída de cada vértice é 2. A Linguagem L(M) Determinada por um Autômato M Cada autômato M com um alfabeto de entrada A define uma linguagem sobre A, denotada por L(M), como a seguir. Seja w = a 1 a 2...a m uma palavra em A. Então w determina uma seqüência de estados S 0 S 1 S 2... S M onde S 0 é o estado inicial e F(s i-1, a i ) = s i para i 1. Em outras palavras, w determina o caminho P = (S 0, a 0, S 1, a 1, S 2,...,a m, s m ) no grafo do diagrama de estados D(M). Dizemos que M reconhece a palavra w se o estado final s m for um estado aceitável em Y. A linguagem de M, L(M), é a coleção de todas as palavras de A que são aceitáveis por M. Exemplo 5: a Determine se o autômato M na Figura 2 aceita ou não a palavra w onde: (1) w = ababba; (2) w = baab; (3) w = λ (1) Use a Figura 2 e a palavra w = ababba para obter o caminho a b a b b a s s s s s s s2 (2) A palavra w = baab determina o caminho b a P = s s s a b s0 s1 O estado final s 1 está em Y; portanto, w é aceitável por M. (3) Aqui o estado final é igual ao estado inicial s 0 já que w é a palavra vazia. Como s 0 está em Y, λ. é aceitável por M. b Descreva a linguagem L(M) do autômato M na Figura 2. L(M) consistirá em todas as palavras w de A que não têm dois bs sucessivos. Isso decorre dos fatos seguintes: (1) Podemos entrar com o estado S 2 apenas após dois bs sucessivos. (2) Nunca podemos sair de s 2. (3) O estado S 2 é o único estado rejeitado (não aceitável). A relação fundamental entre linguagens regulares e automata está contida no teorema seguinte (cuja prova está além dos objetivos deste texto). Teorema 2: (Kleene) uma linguagem L sobre um alfabeto A é regular se e somente se existe um autômato de estado finito M tal que L = L(M). A operação estrela L * em uma linguagem L é chamada, às vezes, de fecho de Kleene de L, já que Kleene foi quem primeiramente provou este resultado básico. Exemplo 6: Seja A = {a, b}. Construa um autômato M que aceitará precisamente as palavras de A que terminam com dois b.

6 Como b 2 é aceitável, mas λ e b não o são, precisamos de três estados, s 0, o estado inicial e S 1 e S 2 com uma seta rotulada com b indo de s 0 para S 1, e outra de S 1 para s 2. Além disso, s 2 é um estado aceitável, mas não S 0 e S 1. Isto nos dá o grafo da Figura 3(a). Por outro lado, se existe um a, então queremos voltar a s 0, e se estivermos em s 2 e existir um b, então queremos ficar em s 2. Essas condições adicionais permitem determinar o autômato desejado M que aparece na Figura 13(b). Lema de Pumping Suponha que um autômato M sobre A tem k estados, e suponha que w = a 1 a 2...a n é uma palavra sobre A, aceitável por M, tal que w = n > k, o número de estados. Seja P= (S 0, S 1,..., s n ) a seqüência correspondente de estados determinados pela palavra w. Como n > k, dois dos estados em P devem ser iguais, digamos, S I = S J onde i < j. Seja x = a { a 2...a i y = a í+1...a j, z = a j+1... a n Como mostrado na Figura 4, xy termina em S I = S J, logo, xy m também termina em S I;. Portanto, para todo w, m, w m = xy m z termina em s n, que é um estado aceitável. A discussão acima demonstra o seguinte importante resultado. Teorema 3: (Lema de pumping) suponha que M é um autômato sobre A tal que: i. M tem k estados. ii. M aceita uma palavra w de a onde w > k. Então w = xyz onde, para todo m positivo, m, w m = xy'": é aceitável por M. O próximo exemplo mostra uma aplicação do lema de pumping. Exemplo 7: Mostre que a linguagem L = { a m b m : m positivo} não é regular. Suponha que L é regular. Então, pelo Teorema 2, existe um autômato de estado finito M que aceita L. Suponha que M tem b estados. Seja w = a k b k. Então, w > k. Pelo lema de pumping (Teorema 3), w = xyz, onde y não é vazio e w 2 = xy 2 z: também é aceitável por M. Se y consistir apenas em as e bs, então w, não tem o mesmo número de as e bs. Em qualquer caso, w 2 não pertence a L, o que é uma contradição. Logo, L não é regular. 6 GRAMÁTICAS A Figura 5 mostra a construção gramatical de uma sentença específica. Observe que existem: (1) várias variáveis, por exemplo, (sentenças), (orações nominais),...; (2) várias palavras terminais, por exemplo, "O", "menino",... (3) uma variável inicial (sentença); e (4) várias substituições ou produções, por exemplo, (sentença) (oração nominal) (oração verbal) (oração objetiva) (artigo) (substantivo) (substantivo) maçã A sentença final contém apenas terminais, embora tanto variáveis quanto terminais apareçam na construção. A descrição intuitiva é apresentada para motivar a definição seguinte de gramática e da linguagem por ela gerada.

7 Uma gramática de estrutura de frases ou, simplesmente, uma gramática G consiste em quatro partes: (1) um conjunto finito (vocabulário) V; (2) um subconjunto T de V cujos elementos são chamados terminais (os elementos de N =V\T são denominados não terminais ou variáveis); (3) um símbolo não terminal S chamado símbolo de start; (4) um conjunto finito P de produções. Uma produção é um par ordenado (α,β), normalmente denotado por α β, onde α e β são palavras em V. Cada produção em V deve conter pelo menos uma variável no seu lado esquerdo. Uma tal gramática G é denotada por G = G(V, T, S, P) quando queremos indicar suas quatro partes. As seguintes notações, a menos que declaração em contrário seja feita ou esteja implícita, serão usadas para a nossa gramática. Terminais serão denotados por letras minúsculas latinas em itálico, a, b, c,..., e variáveis serão denotadas por letras latinas em itálico maiúsculas A, B, C,... usando S para o símbolo de start. Letras gregas, α, β,... denotarão palavras em V, isto é, palavras envolvendo terminais e nãoterminais. Além disto, escreveremos: α (β 1,β 2,...,β k ) em vez de α β 1, α β 2... α β k Observação: Freqüentemente, definiremos uma palavra G apresentando apenas suas produções, assumindo implicitamente que S é o símbolo de start e que os terminais e não-terminais de G são apenas aqueles que aparecem em suas produções. Exemplo 8: Definimos a seguir uma gramática G: V = {A,B,S,a,b}, T={a,b], P = ( S AB Aa, B Bb, A a, B b) com S como símbolo de start. As produções podem ser abreviadas como a seguir. S AB, A (Aa,a), B (Bb,b) Linguagem L(G) de uma Gramática G Suponha que w e w' são palavras sobre um conjunto vocabulário V de uma gramática G. Escrevemos: w w' Se w' pode ser obtida de w usando uma das produções, isto é, se existem palavras u e v tais que w = uαv e w' = uβv e existe uma produção α β. Escrevemos w w' ou w w se w' pode ser obtida a partir de w usando um número finito de produções. Seja G uma gramática com conjunto terminal T. A linguagem de G, denotada por L(G), consiste em todas as palavras em T que podem ser obtidas do símbolo de start S pelo processo descrito anteriormente; isto é, L(G) = { w T*:S w} Exemplo 9: Considere a gramática C no Exemplo 8. Observe que w = a 2 b 4 pode ser obtida do símbolo de start S como a seguir: S AB AaB aab aabb aabbb aabbbb aabbbb a 2 b 4 ' Aqui, usamos as produções 1, 2, 4, 3, 3, 3, 5, respectivamente. Logo, podemos escrever S a 2 b 4. Portanto, w = a 2 b 4 pertence a L(G). Mais geralmente, a seqüência e produções 1, 2 (r vezes), 4, 3 (s vezes), 5 produzirá a palavra w = a r ab s b, onde r e s são inteiros não negativos. Por outro lado, nenhuma *

8 seqüência de produções pode produzir o depois de um b. Conseqüentemente, L(G) = {a m b n me n inteiros positivos} Isto é, a linguagem L(G) da gramática G consiste em todas as palavras que começam com um ou mais as seguidos por um ou mais b. Exemplo 10: Ache a linguagem L(G) sobre {a, b, c] gerada pela gramática G com produções S asb, as Aa, Aab c Primeiramente, precisamos aplicar a primeira produção uma ou mais vezes para obter a palavra w = a n Sb n, onde n > 0. Para eliminar S, aplicamos a segunda produção para obter a palavra w' = a m Aabb m, onde m = n - 1 > 0. Finalmente, só nos resta aplicar a terceira produção para obter a palavra w n = a n cb m onde m 0. Conseqüentemente, L(G) = {a m cb m :m não negativo} Isto é, L(G) consiste em todas as palavras com o mesmo número não negativo de a e b separados por um c. Tipos de Gramáticas As gramáticas são classificadas de acordo com os tipos de produção possíveis. A seguinte classificação de gramáticas é devida a Noam Chomsky. Uma gramática de Tipo 0 não tem restrições nas suas produções. Os Tipos 1, 2 e 3 são definidos como a seguir: (1) Uma gramática G é dita ser de Tipo 1 se toda produção é da forma α β, onde α β, ou da forma α λ. (2) Uma gramática G é dita ser de Tipo 2 se toda produção é da forma A β, i. é., onde o lado esquerdo é um não terminal. (3) Uma gramática G é dita ser de Tipo 3 se toda produção é da forma A a, ou A ab, i. e., onde o lado esquerdo é uma única variável, e o lado direito é um terminal simples ou um terminal seguido de uma variável, ou da forma S λ. Observe que as gramáticas formam uma hierarquia; isto é, toda gramática do Tipo 3 é uma gramática do Tipo 2, toda gramática do Tipo 2 é uma gramática do Tipo 1 e toda gramática do Tipo 1 é uma gramática do Tipo 0. As gramáticas também são classificadas como sensíveis a contexto, livres de contexto ou regulares. a. Uma gramática é dita sensível a contexto se as produções são da forma αaα αβα ' A denominação "sensível a contexto" vem do fato de que podemos substituir a variável A por β em uma palavra apenas quando A estiver entre α e α'. b. Uma gramática G é dita livre de contexto se as suas produções são da forma A β A denominação "livre de contexto" vem do fato de que agora podemos substituir a variável A por β a despeito do local onde A aparece. c Uma gramática é dita regular se as suas produções são da forma: A a, A ab, S λ Observe que gramática livre de contexto tem o mesmo sentido que gramática do Tipo 2, e uma gramática regular é igual a uma gramática do Tipo 3. Uma relação fundamental entre gramáticas regulares e autômatos finitos é enunciada a seguir. Teorema 4: uma linguagem L pode ser gerada por uma gramática G do Tipo 3 (regular) se e somente se existe um autômato finito M que aceita L. Portanto, a linguagem L é regular sse L = L(r), onde r é uma expressão regular sse L = L(M) onde M é um autômato finito sse L = L(G), onde G é uma gramática regular. (Lembre que sse é a abreviatura de "se e somente se"). Exemplo 11: Considere a linguagem L = {a n b n ; n > 0}. (a) Ache uma gramática G, livre de contexto, que gera L. Claramente, a gramática G com as seguintes produções vai gerar L: S ab, S asb Note que G é uma linguagem livre de contexto, pois cada lado esquerdo é um não

9 terminal. (b) Ache uma gramática regular G que gera L. Pelo Exemplo 7, L não é uma linguagem regular. Portanto, L não pode ser gerada por uma gramática regular. Árvores de Derivação de Gramáticas Livres de Contexto Considere uma gramática livre de contexto G (Tipo 2). Qualquer derivação de uma palavra w em L(G) pode ser representada graficamente por uma árvore com raízes ordenada T, denominada árvore de derivação ou parse tree. Por exemplo, seja G a gramática livre de contexto com as seguintes produções: S aab, A Bba, B bb, B c A palavra w = acbabc pode ser derivada de S como a seguir: S aab a(bba}b acbab acba(bb) acbabc Pode-se desenhar uma árvore de derivação T, a partir da palavra w, como indicado na Figura 6. Especificamente, iniciamos com S como raiz e depois adicionamos ramos à árvore de acordo com a produção usada na derivação de w. Esse procedimento leva à árvore completa mostrada na Figura 6(e). A seqüência de folhas, da esquerda para a direita, em T é a palavra derivada w. Além disso, qualquer nó que não seja uma folha em T é uma variável, digamos A, e os sucessores imediatos (filhos) de A formam uma palavra α onde A β é a produção de G usada na derivação de w. Forma de Bakus-Naur Existe uma outra notação, chamada de forma de Bakus-Naur, que é geralmente usada para descrever as produções de uma gramática livre de contexto (Tipo 2). Especificamente, (i) :: = é usado em vez de (ii) Todo não-terminal aparece dentro de delimitadores. (iii) Todas as produções com os mesmos não-terminais do lado esquerdo são combinadas em uma declaração com todos os lados direitos listados à direita de :: =, separados por barras verticais. Por exemplo, as produções A ab, A b, A BC são combinadas em uma única sentença A ::=a B b B C Máquinas e Gramáticas O Teorema 4 nos conta que linguagens regulares correspondem a autômatos (AEF). Também existem máquinas, mais funcionais do que AEF, que correspondem a outras gramáticas. (a) Autômatos de pilha: um autômato de pilha P é similar a um AEF exceto pelo fato de que P tem uma pilha auxiliar que torna disponível uma quantidade infinita de memória para P. Uma linguagem L é reconhecida por um autômato de pilha P se e somente se L é livre de contexto. (b) Autómatos linearmente limitados: um autômato linearmente limitado B dispõe de mais recursos do que um autômato de pilha. Um tal autômato B usa uma fita que é linearmente limitada pelo comprimento da palavra de entrada w. Uma linguagem L é reconhecida por um autômato linearmente limitado se e somente se L é sensível ao contexto. (c) Máquinas de Turing: uma máquina de Turing M, assim denominada em homenagem ao matemático britânico Alan Turing, usa uma fita infinita. Ela é capaz de reconhecer qualquer linguagem L que pode

10 ser gerada por qualquer gramática de estrutura de frases G. Na verdade, uma máquina de Turing M é uma das muitas maneiras equivalentes de definir uma função "computável".f. A discussão acerca de autômatos de pilha e autômatos linearmente limitados está além dos objetivos deste texto. Discutiremos máquinas de Turing na Seção 8. 7 MÁQUINAS DE ESTADO FINITO Uma máquina de estado finito (MEF) é similar a um autômato de estado finito exceto pelo fato de que uma máquina de estado finito "imprime" uma saída usando um alfabeto de saída distinto do alfabeto de entrada. Apresentamos a seguir a definição formal. Uma máquina de estado finito (ou máquina seqüencial completa) M consiste em seis partes: (1) um conjunto finito A de símbolos de entrada; (2) um conjunto finito S de "estados internos"; (3) um conjunto finito Z de símbolos de saída; (4) um estado inicial s 0 em S; (5) uma função de próximo estado f de S x A em S', (6) uma função de saída g de S x A em Z. Uma máquina como esta é denotada por M = M (A, S, Z, s Q, f, g) quando se quer indicar suas seis partes. Exemplo12: As informações seguintes definem uma máquina de estado finito M com dois símbolos de entrada, três estados internos e três símbolos de saída: (1) A = (a,b}; (2) S={s 0,s 1,s 2 }; (3) Z =[x,y,z}; (4) Estado inicial s 0 ; (5) Função de próximo estado f: S x A S definida por f(s 0,a)=s 1, f(s 1,a)=s 2, f(s 2,a)=s 0 f(s 0,b)=s 2, f( s 1,b)= s,, f(s 2,b)=s 1 (6) Função de saída g: S x A Z definida por g(s 0,a)=x, g(s 1,a)=x, g(s 2,a) = z g(s 0,b)=y, g(s 1,b)=z, f(s 2,b)=y Tabela de Estados e Diagrama de Estados de uma Máquina de Estado Finito Existem duas maneiras de representar uma máquina de estado finito de forma compacta. Uma maneira é por uma tabela conhecida como tabela de estados da máquina M; a outra é por um grafo orientado rotulado conhecido como diagrama de estados da máquina M. A tabela de estados combina a função de próximo estado f e a função de saída g em uma única tabela que representa a função F:SxA S x Z definida por F(s i,a j ) = (f(s i,a j ),g(s i,a j )) Por exemplo, a tabela de estados da máquina M do Exemplo 12 está desenhada na Figura 7(a). Os estados estão listados no lado esquerdo da tabela, com o estado inicial aparecendo em primeiro lugar, e os símbolos de entrada estão listados no topo da tabela. Cada elemento da tabela é um par (s k, z r ) onde s k = f(s i,a j ),é o próximo estado, e z r = g(s i,a j ) é o símbolo de saída. Admite-se que os únicos símbolos de saída são os que aparecem na tabela. O diagrama de estados D = D(M) de uma máquina de estado finito M = M ( A, S, Z, s 0,f,g) é um grafo

11 orientado rotulado. Os vértices de D são os estados de M. Ademais, se F(s i,a j ) = (s k,z r ), isto é, f(s i,a j )= s k e g(s i,a j )=z r ' então existe um arco (seta) de s : para s k que é rotulado com um par a j, z r. Normalmente, colocamos o símbolo de entrada a j próximo à base da seta (perto de s i ) e o símbolo de saída z r próximo ao centro da seta. Também rotulamos o estado inicial s 0 desenhando uma seta extra para s 0. Por exemplo, o diagrama de estados da máquina M do Exemplo 12 aparece na Figura 7(b). Fitas de Entrada e de Saída A discussão acima sobre uma máquina de estado finito M não mostra as propriedades dinâmicas de M. Suponha que M recebe um string (palavra) de símbolos de entrada, digamos, u = a 1 a 2...a m Visualizamos esses símbolos em uma "fita de entrada"; a máquina M "lê" esses símbolos de entrada, v = s 0 s 1 s 2...s m um por um e, simultaneamente, passa por uma seqüência de estados s = z 1 z 2...z m onde s 0 é o estado inicial, enquanto imprime um string (palavra) de símbolos de saída em uma "fita de saída". Formalmente, o estado inicial s 0 e a cadeia de entrada u determinam as cadeias v e w por s i = f(s i-1,a j ) e z i = g(s i-1,a j ) onde i = l, 2,..., m. Exemplo 13: Considere a máquina M da Figura 7, isto é, o Exemplo 12. Suponha que a entrada é a palavra U = abaab Calculamos a seqüência v de estados e a palavra de saída m a partir do diagrama de estados como segue. Começando no estado inicial s 0, seguimos as setas rotuladas pelos símbolos de entrada como a seguir. a, x b, z a, x b, y s s s s s2 Isso produz a seguinte seqüência de estados v e a palavra de saída w: v = s 0 s 1 s 1 s 2 s 0 s 2 e w = xzx:zy Adição Binária Esta subseção descreve uma máquina de estado finito M capaz de executar adição binária. Adicionando O no início dos nossos números, podemos assumir que eles têm o mesmo número de dígitos. Se à máquina for informada a entrada: queremos, então, que a saída seja a soma binária Especificamente, a entrada é a cadeia de pares de dígitos a ser somada: 11, 11, 00, 11, 01, 11, 10, b onde b denota espaço, e a saída deve ser a cadeia 0, 1, 1, 0, 0, 1, 0, 1 Também queremos que a máquina assuma o estado chamado de "parada" quando terminar a adição. Os símbolos de entrada são A = {00,01,10,11,b} e os símbolos de saída são Z = {0,1,b} A máquina que "construímos" terá três estados: S= {vai-um (c), não vai-um (ri), parada (s)} neste caso, néo estado inicial. A máquina está mostrada na Figura 8. Enunciamos o teorema seguinte a fim de ilustrar as limitações das nossas máquinas.

12 Teorema 5: não existe máquina de estado finito M que possa fazer operações binárias. Se limitarmos o tamanho dos números que multiplicamos, tais máquinas existem. Computadores são importantes exemplos de máquinas finitas que multiplicam números, mas os números são limitados em seu tamanho. 8 NÚMEROS DE GÕDEL Lembre que um inteiro positivo p > 1 é dito um número primo se seus únicos divisores positivos forem 1 e p. Denote por p 1,p 2,... os números primos sucessivos. Logo, p 1 =2, p 2 = 3, p 3 = 5, p 4 = 7, p 5 =11, Sabemos existe um número infinito de primos e o teorema fundamental da aritmética afirma que qualquer inteiro positivo n > 1 pode ser escrito de maneira única (exceto pela ordem) como um produto de números primos. O lógico alemão Kurt Gödel usou esse resultado para codificar seqüências finitas de números e também para codificar palavras sobre um alfabeto finito ou enumerável. A cada seqüência ou palavra é atribuído um inteiro positivo denominado número de Gõdel como a seguir. O número de Gõdel da seqüência s = (n 1, n 2..., n k ) de inteiros não negativos é o inteiro positivo c(s) onde n i é o expoente de p i na decomposição em primos de c(s), isto é, c(s) = p 1 n1 p 2 n2...p k nk Por exemplo, c = (3, 1, 2, 0, 2) é codificado por c(s) = = O número de Gõdel de uma palavra w em um alfabeto {a 0, a 1,a 2,a 3,...,} é o inteiro positivo c(w) onde o índice da i-ésima letra de w é o expoente de p 1, na decomposição prima de c(w). Por exemplo, w = a 4 a 3 a 2 a 2 é codificado por c(w) = = (Observe que ambos os códigos são essencialmente o mesmo, pois podemos considerar uma palavra w como a seqüência dos índices de suas letras). A codificação acima é fundamentalmente a demonstração do principal resultado desta seção. Teorema 6: suponha que um alfabeto A é enumerável. Então, qualquer linguagem L sobre A também é enumerável. Demonstração: O código de Gõdel define uma função bijetora c: L N. Logo, L é enumerável. 9 MÁQUINAS DE TURING Existem diversas maneiras equivalentes de definir formalmente uma função "computável". Nós o fazemos através de uma máquina de Turing M. Esta seção define formalmente uma máquina de Turing M, e a próxima define uma função computável. Nossa definição de uma máquina de Turing usa uma fita infinita extensível para os dois lados quíntuplas e três estados de parada. Outras definições usam uma fita extensível para apenas um dos lados e/ou quádruplas e um estado de parada. Entretanto, todas as definições são equivalentes. Definições Básicas Uma máquina de Turing envolve três conjuntos não vazios disjuntos: 1. Um conjunto finito fita A = { a l,a 2,...,a m } {B} Neste caso, B = a 0 é o símbolo "branco".

13 2. Um conjunto finito de estados S = { s 1,s 2,,s n } {s 0 } {s H,s Y,s N } Aqui, s 0 é o estado inicial. Ademais, S H (PARADA) é o estado de parada, s Y (SIM) é o estado de aceite (reconhecimento) e S N (NÃO) é o estado de não aceite (ou não reconhecimento). 3. Um conjunto direção d = (L,R,N} Aqui, L denota esquerda, R denota direita e N denota nenhum movimento ou fique parada. Definição 1.1: uma expressão é uma seqüência finita (possivelmente vazia) de elementos de. A S d. Em outras palavras, uma expressão é uma palavra cujas letras (símbolos) vêm dos conjuntos A, S e d. Definição 1.2: uma expressão de fita é uma expressão envolvendo apenas elementos do conjunto fita A. A máquina de Turing M pode ser vista como um cabeçote de leitura/gravação de fita que se move para frente e para trás ao longo de uma fita infinita. A fita é dividida, no sentido do comprimento, em quadrados (células), e cada quadrado pode ser branco ou guardar um símbolo. A cada tempo, a máquina de Turing M está em um determinado estado interno s : lendo um dos símbolos na fita a j. Supomos que apenas um número finito de símbolos não brancos aparece na fita. A Figura 9(a) é uma representação gráfica de uma configuração de uma máquina de Turing M no estado s 2 lendo o segundo símbolo onde a 1 a 3 Ba 1 a 1 é escrito na fita. (Note, novamente, que B é o símbolo branco.) Este desenho pode ser representado pela expressão α = a í s 2 a 3 Ba 1 a 1, onde escrevemos o estado s 2 de M antes do símbolo de fita a 3 que M está lendo. Observe que a é uma expressão que usa apenas o alfabeto de fita A, exceto pelo símbolo de estado s 2 que não está no final da expressão, já que este aparece antes do símbolo de fita «3 que M está lendo. A Figura 9 mostra duas outras representações gráficas de configurações e suas expressões correspondentes. Apresentaremos as definições formais. Definição 1.3: uma configuração a é uma expressão da forma α = Ps i a K Q onde P e Q são expressões de fita (possivelmente vazias). Definição 1.4: seja a = Ps j a k Q uma configuração. Dizemos que uma máquina de Turing M está no estado s i lendo a letra a k, e que a expressão na fita é a expressão Pa k Q, isto é, α sem o símbolo de estado s i. Como mencionado acima, a cada instante, a máquina de Turing M está em um certo estado s. e lendo um símbolo de fita a k. A máquina de Turing M é capaz de fazer as três tarefas seguintes simultaneamente: i. M apaga o símbolo lido a k e escreve no seu lugar o símbolo de fita a l (onde admitimos a l =a k ). ii. M muda seu estado interno s i para o estado s j (onde admitimos s j = s i ). iii. M move um quadrado para a direita, move um quadrado para a esquerda ou não se move. As ações de M mencionadas acima podem ser descritas por uma expressão com cinco letras, denominada quíntupla, que definimos abaixo. Definição 1.5: uma quíntupla q é uma expressão de cinco letras da forma: L q = (s i,a k,a e,s j R } N Isto é, a primeira letra de q é um símbolo de estado, a segunda é um símbolo de fita, a terceira é um

14 símbolo de fita, a quarta é um símbolo de estado e a última é um símbolo de direção, L, R ou N. Apresentamos a seguir a definição formal de uma máquina de Turing. Definição 1.6: uma máquina de Turing M é um conjunto finito de quíntuplas tal que: (i) Duas quíntuplas distintas não podem iniciar com as mesmas duas letras, (ii) Nenhuma quíntupla começa com s H,s Y ou s N. A condição (i) da definição garante que a máquina M não pode executar mais de uma tarefa a cada tempo, e a condição (ii) garante que M pára nos estados s H,s Y ou s N. A definição seguinte é uma maneira equivalente de definir uma máquina de Turing. Definição 1.6': uma máquina de Turing é uma função parcial de S \{ s H,s Y,s N } x A em A x S x d O termo "função parcial" significa que o domínio de M é um subconjunto de S\{ s H,s Y,s N } x A. A ação da máquina de Turing descrita acima pode ser agora formalmente definida. Definição 1.7: sejam a e p configurações. Escrevemos α β se uma das seguintes condições ocorre, onde a, b e c são letras de fita e P e Q são expressões de fita (possivelmente vazias): (i) α = Psi j aq, β = Ps j bq e M contém a quíntupla q = s i abs j N. (ii) α = Ps i acq, β = Pbs j cq e M contém a quíntupla q = s i abs j R. (iii) α = Pcs i CiQ, β = PsjcbQ e M contém a quíntupla q = s i dbs j L. (iv) α = Ps i a,β = PbsjB e M contém a quíntupla q = s i abs j R. (v) α = s i aq, β = s j BbQ e M contém a quíntupla q = s i abs j L. Observe que, em todos os cinco casos, M substitui a por b na fita (onde é permitido b = a), e M troca seu estado de s i para s j. Além disso: (i) Neste caso, M não se move. (ii) Neste caso, M se move para a direita, (iii) Neste caso, M se move para a esquerda. (iv) Neste caso, M se move para a direita; entretanto, como M está lendo a letra da extrema direita, é necessário acrescentar o símbolo de branco, B, à direita. (v) Neste caso, M se move para a esquerda; entretanto, como M está lendo a letra da extrema esquerda, é necessário acrescentar o símbolo de branco, B, à esquerda. Definição 1.8: uma configuração a é chamada de terminal se não existe configuração β tal que α β. Em particular, qualquer configuração a em algum dos três estados de parada deve ser terminal, já que nenhuma quíntupla começa com s H,s Y ou s N. Computação com uma Máquina de Turing A descrição anterior é de uma máquina de Turing M estática. Discutiremos agora sua dinâmica. Definição 1.9: uma computação com uma máquina de Turing M é uma seqüência de configurações α 0, α 1,.., α m tal que α i 1 + α i para i= 1,..., m e α im é uma configuração terminal. Em outras palavras, uma computação é uma seqüência. α 0 α 1 α 2... α M que não pode ser estendida, uma vez que a m é um estado terminal. Usaremos a nomenclatura term(a) para denotar a configuração final de uma configuração iniciando com a. Logo, (α 0 ) = a m na computação acima. Máquinas deturing com Entrada Usaremos a definição a seguir. Definição 1.10: uma entrada para uma máquina de Turing M é uma expressão de fita W. A configuração inicial para uma entrada W é a (W) onde a(w) = s 0 W. Observe que a configuração inicial a(w) da entrada W é obtida pela colocação do estado inicial na frente da

15 expressão de fita W. Em outras palavras, a máquina de Turing M começa com seu estado inicial s 0 lendo a primeira letra de W. Definição 1.11: sejam M uma máquina de Turing e W uma entrada. Dizemos que M pára em W se existe uma computação começando com a configuração inicial a(w). Isto é, dada uma entrada W, podemos formar a configuração inicial α(w) = s 0 W e aplicar M para obter a seqüência. α(w) α 1 α 2... Duas coisas podem ocorrer: (1) M pára em W. Isto é, a seqüência finda em alguma configuração terminal α r. (2) M não pára em W. Isto é, a seqüência não termina nunca. Gramáticas e Máquinas deturing Máquinas de Turing podem ser usadas para reconhecer linguagens. Especificamente, suponha que M é uma máquina de Turing com conjunto fita A. Seja L o conjunto de palavras W em A tal que M pára no estado de aceite S Y quando W é a entrada. Escreveremos então L = L(M) e diremos que M reconhece a linguagem L. Logo, uma entrada W não pertence a L(M) se M não pára em W ou, se M pára em W, mas não no estado de aceite S Y. O teorema a seguir é o principal resultado desta subseção; sua prova está além do escopo deste texto. Teorema 7: uma linguagem L é reconhecível por uma máquina de Turing M se e somente se L é uma linguagem do Tipo 0. Observação: A razão para a existência de três estados de parada é que S Y e s v são usados para reconhecimento de linguagens enquanto S H é usado para as computações discutidas na próxima seção. Exemplo 14: Suponha que uma máquina de Turing M com conjunto fita A = [a, b, c] contenha as quatro quíntuplas seguintes: q 1 = s 0 aas o R, q 2 = s 0 bbs 0 R, q 3 = s 0 BBs N R, q 4 = s 0 ccs Y N. (a) Suponha que W = W(a, b,c) é uma entrada que não contém c. Pelas quíntuplas q 1 e q 2 M fica no estado s 0 e se move para a direita até encontrar um símbolo branco B. Depois M muda seu estado para o estado de não aceite e pára. (b) Suponha que W = W(a, b, c) seja uma entrada com pelo menos um símbolo c. Pela quíntupla q 4 quando M encontra o primeiro c em W, muda seu estado para o estado de aceite e pára. Portanto, M reconhece a linguagem L de todas as palavras W em a, b, c com pelo menos uma letra c. Isto é, L = L(M). 10 FUNÇÕES COMPUTÁVEIS Funções computáveis são definidas no conjunto dos inteiros não negativos. Alguns textos usam N para denotar este conjunto. Nós usamos N para denotar o conjunto dos inteiros positivos e, assim, usaremos a notação. N 0 = {0, 1, 2, 3,...} Em toda esta seção, os termos "número", "inteiro" e "inteiro não negativo" serão usados como sinônimos. A seção anterior descreve a maneira pela qual uma máquina de Turing manipula e reconhece dados compostos por caracteres. Aqui mostramos como M manipula dados de caracteres numéricos. Primeiramente, entretanto, precisamos ser capazes de representar nossos números usando nosso conjunto fita A. Vamos escrever 1 para o símbolo de fita a 1 e 1 n para , onde 1 aparece n vezes. Definição 2.1: cada número n será representado pela expressão de fita (n) onde (n) = 1 n+1. Portanto, (4) = = 1 5, (0) = 1, (2) = 111 =1 3

16 Definição 2.2: seja E uma expressão. Então, [E] denota o número de vezes que 1 ocorre na expressão. Logo, [11Bs 2 a 3 111Ba 4 ] = 5, [a 4 s 2 Ba 2 ] = 0 e [ n ]=n+1. Definição 2.3: uma expressão f: N 0 N 0 é computável se existe uma máquina de Turing M tal que, para todo inteiro n, M pára. em n e f(n) = [term(α( n ))] Neste caso, diremos que M computa f. Isto é, dados: uma função f e um inteiro n, informamos como entrada n e usamos M. Se M sempre pára em n e se o número de 1s na configuração final for igual a.f(n), então f é uma função computável, e M computação. Exemplo 15: A função f(n) = n + 3 é computável. A entrada é W = 1 n+1. Logo, precisamos apenas adicionar dois 1 à entrada. Descrevemos a seguir uma máquina de Turing M que computa f. M = {q 1,q 2,q 3 } = {s 0 11s 0 L, s 0 B1s t L, s 1 B1s H N} Observe que: (1) q 1 move a máquina M para a esquerda. (2) q 2 escreve1 no quadrado branco B e move M para a esquerda. (3) q 3 escreve 1 no quadrado branco B e pára M. Conseqüentemente, para qualquer inteiro positivo n, s 0 1 n+1 s 0 B1 n+1 s 1 B1 n+2 s H 1 n+3 Logo, M computa f(n) = n + 3. É claro que, para todo inteiro positivo k, a função f[n) = n + k é computável. Teorema 8: suponha que f: N 0 N 0 e g: N 0 N 0 são computáveis. A função composta h = g o f é computável. Indicamos aqui a prova do teorema. Suponha que M f e M g são as máquinas de Turing que computam f e g, respectivamente. Dada uma entrada n, aplicamos M f a n para obter ao final uma expressão E com [E]=f(n). Então escrevemos que E = s 0 1 fn Depois acrescentamos 1 a E para obter E = s 0 11 fn e aplicamos M s a E'. Isso produzirá E onde E = g (f ( n ) ) = (g o f)(n), como desejado. Funções de Várias Variáveis Esta subseção define uma função computável f(n 1,n 2,...,n k ) de k variáveis. Primeiramente precisamos representar a lista m = ( n 1,n 2,...,n k ) no nosso alfabeto A. Definição 2.4: cada lista m = m = ( n 1,n 2,...,n k ) de k inteiros é representada pela expressão de fita (m) onde m = n 1 B n 2 B...B n k Logo, (2, 0, 4) = 111B1B11111 = 1 3 B1 1 B1 5. Definição 2.5: uma função f(n 1,n 2,...,n k ) de k variáveis é computável se existe uma máquina de Turing M tal que, para toda lista m = ( n 1,n 2,...,n k ), M pára em m e f(m) = [term(α( m ))] Neste caso, dizemos que M computa f. A definição é análoga à Definição 2.3 para uma variável. Exemplo 16: A função de adição f(m, n) = m + n é computável. A entrada é W = 1 m+1 B1 n+1. Portanto, precisamos apenas apagar dois dos 1. Uma máquina de Turing M que computa f está descrita a seguir. M = {q 1,q 2,q 3,q 4 } = {s 0 1Bs 1 R, s 1 1Bs H N, s 1 BBs 2, s 2 1Bs H N} Observe que: (1) q 1 apaga o primeiro 1 e move M para a direita. (2) Se m 0, q 2 apaga o segundo 1 e pára M. (3) Se m = 0, q 3 move M para a direita depois do espaço branco B. (4) q 4 apaga o 1 e pára M. Conseqüentemente, se m 0, temos s 0 1 m+1 B1 n+1 s 1 1 m B1 n+1 s H 1 m-1 1 n+1

17 mas se m = 0 e m + n = n, temos s 0 1B1 n+1 s 1 B1 n+1 s 2 B1 n+1 s H 1 n Portanto, M computa f(m, n) = m + n. 11 EXERCÍCIOS Palavras 1. Considere as palavras u = a 2 ba 3 b 2 e v = bab 2. Ache: (a) uv; (b) vu; (c) v Ache u, v, uv, vu, v 2 para as palavras u e f do Problema Suponha w = a 2 b e v = b 3 ab. Ache: (a) uvu; (b) λu, uλ, uλv. 4. Seja w = abcd. (a) Ache todas as subpalavras de w. (b) Quais delas são segmentos iniciais? 5. Para quaisquer palavras u e, v, mostre que: (a) uv = u + v ; (b) uv = vu 6 Suponha que u = n. Ache o número de segmentos iniciais de u. 7 Qual é a diferença, se existir, entre o semigrupo livre em um alfabeto A e o monóide livre em A? Linguagens 8 Seja A = {a, b}. Descreva verbalmente as seguintes linguagens sobre A (que são subconjuntos de A*): (a) L l = {(ab} m :m>0}. (b) L 2 = {a r ba s ba t :r,s,t > 0}. (c) L 3 = {a 2 b m a 3 :m>0}. 9 Sejam K = {a, ab, a 2 } e L = {b 2, aba} linguagens sobre A = {a, b}. Ache: (a) KL; (b) LL. 10 Considere a linguagem L = {ab, c} sobre A = {a, b, c}. Ache: (a) L 0 ; (b) L 3 ; ( c ) L Seja A = [a, b, c}. Ache L* onde: (a) L = {b 2 }; ( b ) L = { a, b } ; (c) L = {a,b,c 3 }. 12 Considere um alfabeto enumerável A = { a 1,a 2,....}. Seja L k a linguagem sobre A consistindo nas palavras w tais que a soma dos índices das letras em w é igual a k. Por exemplo, w = a 2 a 3 a 3 a 6 a 4 pertence a L 18. (a) Ache L 4. (b) Mostre que L k é finita, (c) Mostre que A* é enumerável. (d) Mostre que toda linguagem em A é enumerável. Expressões Regulares, Linguagens Regulares 13 Seja A = [a, b, c}. Descreva a linguagem L(r) para cada expressão regular. (a)r = ab*c*; (b) r = a" b* c*. 14 Seja A = {a, b}. Descreva a linguagem L(r) onde: (a)r = abb*a; (b) r = b*ab*ab*; (c) r = ab* a*. 15 Seja A = {a, b, c] e w = ac. Verifique se w pertence ou não a L(r) onde: (a) r = ab*c*; (b) r = ( a * b c)*. 16 Seja A = {a, b, c] e seja w = abc. Verifique se w pertence ou não a L(r) onde: (a) r = a* (b c)*; (b) r = a*(b c)*. 17 Seja A = [a, b). Ache uma expressão regular r tal que L(r) consista em todas as palavras w onde: (a) w começa com a 2 e termina com b 2, (b) w contém um número par de letras as. Autômatos Finitos, Máquinas de Estado Finito 18 Seja M um autômato com conjunto de entrada A, conjunto de estados S e conjunto de estados de aceite ("sim") Y descritos a seguir: A = {a,b}, S = {s 0,s 1,s 2 }, Y = { s 1 } Suponha que s 0 é o estado inicial de M, e que a função de próximo estado, F, de M é dada pela tabela da Figura 10. (a) Desenhe o diagrama de estados D = D(M) de M. (b) Descreva a linguagem L = L(M) aceita por M.

18 Fig Seja A = {a, b}. Construa um autômato M que aceitará precisamente as palavras de A que têm um número par de as. Por exemplo, aababbab, aa, bbb, ababaa serão aceitas por M, mas ababa, aaa, bbabb serão rejeitadas. 20 Seja A = {a, b}. Construa um autômato M que aceitará as palavras de A que comecem com a seguido de um ou mais bs. 21 Descreva as palavras w na linguagem L aceitas pelo autômato M da Figura Descreva as palavras w na linguagem L aceitas pelo autômato M da Figura Suponha que L é uma linguagem sobre A que é aceita pelo autômato M = {A, S, Y, s 0, F). Ache um autômato N que aceita L c, isto é, as palavras de A que não pertencem a L. 24 Sejam M = (A, S, Y, S 0, F} e M' = A, S, Y, S 0, F ) autômatos sobre o mesmo alfabeto A que aceitam as linguagens L(M) e L(M ), respectivamente. Construa um autômato N sobre A que aceita precisamente L(M) L(M'). 25 Repita o Problema 24 fazendo, agora, N aceitar as palavras de L(M) L(M ). 26 Seja M a máquina de estado finito cuja tabela de estados aparece na Figura 15. (a) Ache o conjunto de entrada A, o conjunto de estados S, o conjunto de saída Z e o estado inicial. (b) Desenhe o diagrama de estados D = D(M) de M. (c) Suponha que w = aababaabbab é uma palavra de entrada (stríng). Ache a palavra de saída correspondente v. Gramáticas Fig Defina: (a) gramática livre de contexto; (b) gramática regular. 28 Ache a linguagem L(G) gerada pela gramática G com variáveis S, A, B, terminais a, b e produções:

19 S ab, B b, B ba, A ab. 29 Seja L o conjunto de todas as palavras em a e b com um número par de as. Ache as produções da gramática G que irá gerar L. 30 Determine o tipo de gramática G que consiste nas produções: (a) S aa, A aab, B b, A a. (b) S aab, AB bb, B b, A ab. (c) S aab, A B a, A b, B AB. (d) S ab, B ba, B b, B a, A ab, A a. 31 Seja L a linguagem em A que consiste em todas as palavras w com exatamente um b, isto é, L = {b, a r b, ba s, a r ba s : r > 0, j > 0}. (a) Ache uma expressão regular r tal que L = L(r). (b) Ache uma gramática regular G que gera a linguagem L. 32 Seja L a linguagem em A = {a, b, c} que consiste em todas as palavras da forma w = a r b s c t onde r, s, t > 0, isto é as seguidos por bs seguidos por cs. (a) Ache uma expressão regular r tal que L = L(r). (b) Ache uma gramática regular G que gera a linguagem L. 33 Considere a gramática regular G com as produções. S aa, A ab, B bb, B a (a) Ache a árvore de derivação da palavra w = aaba. (b) Descreva todas as palavras w na linguagem L gerada por G. 34 A Figura 17 é a árvore de derivação de uma palavra w em uma linguagem L de uma gramática livre de contexto G. (a) Ache w. (b) Quais terminais, variáveis e produções devem estar em G? 35 Existe uma árvore de derivação para qualquer palavra w derivada do símbolo de start S em uma gramática G? 36 Reescreva cada gramática G do Problema 30 na forma de Backus-Naur. Máquinas de Turing 37 Seja M uma máquina de Turing. Determine a configuração a correspondente a cada situação. (a) M está no estado s 3 e lendo a terceira letra da expressão de fita w = aabca. (b) M está no estado s 2 e lendo a última letra da expressão de fita w = abca. (c) A entrada é a expressão de fita w = 1 4 B Suponha que a = aas 2 ba é uma configuração. Ache β tal que α β se a máquina de Turing M tem a quíntupla q onde: (a) q = s 2 bas 1 L (b) q = s 2 bbs 3 R; (c) q = s 2 bas 2 N; (d) q = s 3 abs 1 L. 39 Seja A = [a, b] e seja L = {a r b s : r>0, s > 0 }, isto é, L consiste em todas as palavras W começando com uma ou mais letras as e seguidas por um ou mais bs. Ache uma máquina de Turing M que reconhece L. 40 Ache uma máquina de Turing M que reconhece a linguagem L = a*b* = {a n b n :n 0}. Funções Computáveis 41 Ache(m)se:(i) m = 5;(ii) m = (4, 0, 3);(iii) m = (3,-2,5). 42 Ache [E] para as expressões: (a) E = a11s 2 Bb111. (b) E = aas 3 bb. (c) E = (m) onde m =(4,1,2).

20 (d) E = (m) onde m = ( n 1,n 2,...,n r ). 43 Seja/a função/(n) = n - 1 se n > 0 e f(0)= 0. Mostre que f é computável. 44 Seja f(x,y) = y. Mostre que f é computável. Exercícios Complementares Palavras 45 Considere as palavras u = ab 1 a 3 e v = aba 2 b 2. Ache: (a) w, (b) vu; (c) u 2 ; (d) λu; (e) vλv. 46 Para as palavras u = ab 2 a 3 e v = aba 2 b 2, ache: u, v, uv, vu e v 2 47 Seja w = abcde. (a) Ache todas as subpalavras de w. (b) Quais delas são segmentos iniciais? 48 Suponha que u = a 1 a 2...a r, com a k distintos. Ache o número n de subpalavras de u. Linguagens 49 Sejam L = {a 2, ab} e K = (a, ab, b 2 }. Ache: (a) LK, (b) KL; (c) L K; (d) K L. 50 Seja L = {a 2, ab}. Ache: (a) L 0 ; (b) L 2 ; (c) L Seja A = [a, b, c}. Descreva L* se: (a) L = {a 2 }; (ò) L = {a,b 2 }; (c) L = {a, b 2, c 3 }. 52 Será que (L 2 )* = (í.*) 2? Se não, como eles se relacionam? 53 Considere um alfabeto enumerável A = {a t, a 2,...}. Seja L k a linguagem sobre A consistindo nas palavras w tais que a soma dos índices das letras em w é igual a k. (Veja o Problema 12). Ache: (a) L 3 ; (b) L 5. Expressões Regulares, Linguagens Regulares 54 Seja A = {a, b, c}. Descreva a linguagem L(r) para cada expressão regular: (a) r = ab*c; (b) r = (ab c)*; (c) r = ab c 55 Seja A = {a, b}. Ache uma expressão regular r tal que L(r) consiste em todas as palavras w tais que: (a) w contém exatamente três letras a. (b) O número de letras a é divisível por 3. (c) w começa e termina em b e bab nunca é subpalavra de w; isto é, a cada ocorrência de a em w, seu expoente é maior ou igual a Seja A = [a, b, c] e seja w = ac. Decida se w pertence ou não a L(r) onde: ( a ) r = a * b * ' ; (b) r = a*b*c; (c) r = (ab c)*. 57 Seja A = [a, b, c] e seja w = ac. Decida se w pertence ou não a L(r) onde: (a) r = a b *( b c )", (b) r = a* (b c)*; (c) a*b(bc c 2 )*. Autômatos Finitos 58 Seja A = {a, b). Construa um autômato M tal que L(M) consistirá nas palavras w tais que o número de letras b seja divisível por 3. (Sugestão: são necessários três estados.) 59 Seja A = (a, b}. Construa um autômato M tal que L(M) consistirá nas palavras w que começam com a e terminam com b. 60 Seja A = {a, b}. Construa um autômato M que aceite a linguagem L(M) = {a r b s :r>0, s>0}. 61 Seja A = {a, b}. Construa um autômato M que aceite a linguagem L(M) = {b r ab s : r>0, s>0}. 62 Seja A = [a, b}. Construa um autômato M tal que L(M) consistirá em todas as palavras nas quais o número de os seja divisível por 2, e o número de letras b seja divisível por 3. (Sugestão: use os Problemas 19, 58 e 24.) 63 Ache a linguagem L(M) aceita pelo autômato M da Figura 18.

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Capítulo 6. Autômatos com Pilha 6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Nos exemplos da seção anterior, vimos que os autômatos com pilha existem para

Leia mais

Autômatos a pilha. UFRN/DIMAp/DIM0330 Linguagens formais. David Déharbe. http://www.consiste.dimap.ufrn.br/ david/enseignement/2003.

Autômatos a pilha. UFRN/DIMAp/DIM0330 Linguagens formais. David Déharbe. http://www.consiste.dimap.ufrn.br/ david/enseignement/2003. UFRN/DIMAp/DIM0330 Linguagens formais http://www.consiste.dimap.ufrn.br/ david/enseignement/2003.1/dim0330 1/36 Autômatos a pilha David Déharbe UFRN/DIMAp Campus Universitário, Lagoa Nova, 59072-970 Natal,

Leia mais

Gramáticas Livres de Contexto

Gramáticas Livres de Contexto Gramáticas Livres de Contexto 25 de novembro de 2011 Definição 1 Uma Regra (ou produção) é um elemento do conjunto V (V Σ). Sendo que V é um conjunto finito de elementos chamados de variáveis e Σ um conjunto

Leia mais

Alfabeto e palavras. Alfabeto conjunto finito de símbolos (Σ).

Alfabeto e palavras. Alfabeto conjunto finito de símbolos (Σ). Alfabeto e palavras Alfabeto conjunto finito de símbolos (Σ). {A,...,Z}, {α, β,... }, {a,b}, {0,1}, ASCII Palavra de Σ sequência finita de símbolos do alfabeto Σ Σ = {a, b} aabba a aaaaaaaa Comprimento

Leia mais

Linguagens Livres de Contexto e Autômatos a Pilha (Push- Down) Um Modelo de Computação de Força Intermediária. Gramática Livre de Contexto

Linguagens Livres de Contexto e Autômatos a Pilha (Push- Down) Um Modelo de Computação de Força Intermediária. Gramática Livre de Contexto LFA - PARTE 2 Linguagens Livres de Contexto e Autômatos a Pilha (Push- Down) Um Modelo de Computação de Força Intermediária João Luís Garcia Rosa LFA-FEC-PUC-Campinas 2002 R. Gregory Taylor: http://starbase.cs.trincoll.edu/~rtaylor/thcomp/

Leia mais

Teoria da Computação Linguagens e Expressões Regulares, Autómatos de Estados Finitos

Teoria da Computação Linguagens e Expressões Regulares, Autómatos de Estados Finitos Teoria da Computação Linguagens e Expressões Regulares, Autómatos de Estados Finitos Simão Melo de Sousa 12 de Outubro de 2011 Conteúdo 1 Linguagens e Expressões Regulares 2 2 Autómatos de Estados Finitos

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Aplicações de Combinatória e Geometria na Teoria dos Números

Aplicações de Combinatória e Geometria na Teoria dos Números Aplicações de Combinatória e Geometria na Teoria dos Números Nesse artigo vamos discutir algumas abordagens diferentes na Teoria dos Números, no sentido de envolverem também outras grandes áreas, como

Leia mais

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR Assuntos: Matrizes; Matrizes Especiais; Operações com Matrizes; Operações Elementares

Leia mais

Faculdade de Computação

Faculdade de Computação UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação Professora : Sandra Aparecida de Amo Lista de Exercícios n o 2 Exercícios sobre Modelos de Máquinas de Turing

Leia mais

Lista n 0 1 de Exercícios de Teoria da Computação

Lista n 0 1 de Exercícios de Teoria da Computação Lista n 0 1 de Exercícios de Teoria da Computação UFU-Curso de Bacharelado em Ciência da Computação - 7 0 período Profa. Sandra de Amo Exercícios de Revisão : Autômatos e Gramáticas 1. Mostre que a linguagem

Leia mais

AULA 6 LÓGICA DOS CONJUNTOS

AULA 6 LÓGICA DOS CONJUNTOS Disciplina: Matemática Computacional Crédito do material: profa. Diana de Barros Teles Prof. Fernando Zaidan AULA 6 LÓGICA DOS CONJUNTOS Intuitivamente, conjunto é a coleção de objetos, que em geral, tem

Leia mais

Máquinas de Turing. Juliana Kaizer Vizzotto. Disciplina de Teoria da Computação. Universidade Federal de Santa Maria

Máquinas de Turing. Juliana Kaizer Vizzotto. Disciplina de Teoria da Computação. Universidade Federal de Santa Maria Universidade Federal de Santa Maria Disciplina de Teoria da Computação Roteiro Definição Formal de Máquina de Turing Mais exemplos Definição Formal de Máquina de Turing Uma máquina de Turing é uma 7-upla,

Leia mais

Capítulo 1. x > y ou x < y ou x = y

Capítulo 1. x > y ou x < y ou x = y Capítulo Funções, Plano Cartesiano e Gráfico de Função Ao iniciar o estudo de qualquer tipo de matemática não podemos provar tudo. Cada vez que introduzimos um novo conceito precisamos defini-lo em termos

Leia mais

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas? Recorrências Muitas vezes não é possível resolver problemas de contagem diretamente combinando os princípios aditivo e multiplicativo. Para resolver esses problemas recorremos a outros recursos: as recursões

Leia mais

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3

Leia mais

Apostila 03 Linguagens Livres de Contexto

Apostila 03 Linguagens Livres de Contexto Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

Definição 2.2 (Palavra) As sequências finitas de letras são designadas por palavras sobre o alfabeto V.

Definição 2.2 (Palavra) As sequências finitas de letras são designadas por palavras sobre o alfabeto V. Capítulo 2 Definição de Linguagens 2.1 Linguagens Formais Definição 2.1 (Alfabeto) Um conjunto finito e não vazio de símbolos arbitrários é designado por um alfabeto, e é denotado por V. Os elementos de

Leia mais

Linguagens Formais e Autômatos. Alfabetos, Palavras, Linguagens e Gramáticas

Linguagens Formais e Autômatos. Alfabetos, Palavras, Linguagens e Gramáticas Linguagens Formais e Autômatos Alfabetos, Palavras, Linguagens e Gramáticas Cristiano Lehrer, M.Sc. Introdução (1/3) A Teoria das Linguagens Formais foi originariamente desenvolvida na década de 1950 com

Leia mais

Universidade Estadual de Santa Cruz. Departamento de Ciências Exatas e Tecnológicas. Especialização em Matemática. Disciplina: Estruturas Algébricas

Universidade Estadual de Santa Cruz. Departamento de Ciências Exatas e Tecnológicas. Especialização em Matemática. Disciplina: Estruturas Algébricas 1 Universidade Estadual de Santa Cruz Departamento de Ciências Exatas e Tecnológicas Especialização em Matemática Disciplina: Estruturas Algébricas Profs.: Elisangela S. Farias e Sérgio Motta Operações

Leia mais

Material Teórico - Módulo de Divisibilidade. MDC e MMC - Parte 1. Sexto Ano. Prof. Angelo Papa Neto

Material Teórico - Módulo de Divisibilidade. MDC e MMC - Parte 1. Sexto Ano. Prof. Angelo Papa Neto Material Teórico - Módulo de Divisibilidade MDC e MMC - Parte 1 Sexto Ano Prof. Angelo Papa Neto 1 Máximo divisor comum Nesta aula, definiremos e estudaremos métodos para calcular o máximo divisor comum

Leia mais

Exercícios Teóricos Resolvidos

Exercícios Teóricos Resolvidos Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar

Leia mais

Árvores Binárias Balanceadas

Árvores Binárias Balanceadas Árvores Binárias Balanceadas Elisa Maria Pivetta Cantarelli Árvores Balanceadas Uma árvore é dita balanceada quando as suas subárvores à esquerda e à direita possuem a mesma altura. Todos os links vazios

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 3.2 O Espaço Nulo de A: Resolvendo Ax = 0 11 O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 Esta seção trata do espaço de soluções para Ax = 0. A matriz A pode ser quadrada ou retangular. Uma solução imediata

Leia mais

UM TEOREMA QUE PODE SER USADO NA

UM TEOREMA QUE PODE SER USADO NA UM TEOREMA QUE PODE SER USADO NA PERCOLAÇÃO Hemílio Fernandes Campos Coêlho Andrei Toom PIBIC-UFPE-CNPq A percolação é uma parte importante da teoria da probabilidade moderna que tem atraído muita atenção

Leia mais

Teoria dos Números. A Teoria dos Números é a área da matemática que lida com os números inteiros, isto é, com o conjunto

Teoria dos Números. A Teoria dos Números é a área da matemática que lida com os números inteiros, isto é, com o conjunto Teoria dos Números 1 Noções Básicas A Teoria dos Números é a área da matemática que lida com os números inteiros, isto é, com o conjunto Z = {..., 4, 3, 2, 1, 0, 1, 2, 3, 4...}. Ela permite resolver de

Leia mais

Matemática - UEL - 2010 - Compilada em 18 de Março de 2010. Prof. Ulysses Sodré Matemática Essencial: http://www.mat.uel.

Matemática - UEL - 2010 - Compilada em 18 de Março de 2010. Prof. Ulysses Sodré Matemática Essencial: http://www.mat.uel. Matemática Essencial Equações do Segundo grau Conteúdo Matemática - UEL - 2010 - Compilada em 18 de Março de 2010. Prof. Ulysses Sodré Matemática Essencial: http://www.mat.uel.br/matessencial/ 1 Introdução

Leia mais

4.2 Produto Vetorial. Orientação sobre uma reta r

4.2 Produto Vetorial. Orientação sobre uma reta r 94 4. Produto Vetorial Dados dois vetores u e v no espaço, vamos definir um novo vetor, ortogonal a u e v, denotado por u v (ou u v, em outros textos) e denominado produto vetorial de u e v. Mas antes,

Leia mais

Autómatos Finitos Determinísticos

Autómatos Finitos Determinísticos Ficha 2 Autómatos Finitos Determinísticos 2.1 Introdução Se olharmos, de forma simplificada, para um computador encontramos três componentes principais: a) A unidade de processamento central b) As unidades

Leia mais

Somatórias e produtórias

Somatórias e produtórias Capítulo 8 Somatórias e produtórias 8. Introdução Muitas quantidades importantes em matemática são definidas como a soma de uma quantidade variável de parcelas também variáveis, por exemplo a soma + +

Leia mais

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,... Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,... 0) O que veremos na aula de hoje? Um fato interessante Produtos notáveis Equação do 2º grau Como fazer a questão 5 da 3ª

Leia mais

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48 Conteúdo 1 Princípios de Contagem e Enumeração Computacional Permutações com Repetições Combinações com Repetições O Problema do Troco Principio da Casa dos Pombos > Princípios de Contagem e Enumeração

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Grafos Cliques Maximais Para determinar os cliques maximais de um grafo G podemos usar o método de Maghout em Dado o grafo abaixo, calcule Determine os conjuntos independentes maximais em

Leia mais

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

Compiladores. Análise léxica. Plano da aula. Vocabulário básico. Motivação para análise léxica. Estrutura de um compilador Estrutura de um compilador Compiladores Análise lexical (1) Expressões Regulares 1 2 Plano da aula 1. Motivação do uso de E.R. e definições Linguagens, tokens, lexemas... 2. Regras de formação e exemplos

Leia mais

Programa de Formação Contínua em Matemática para Professores do 1.º e 2.º Ciclos do Ensino Básico. I. Conjuntos

Programa de Formação Contínua em Matemática para Professores do 1.º e 2.º Ciclos do Ensino Básico. I. Conjuntos I. Conjuntos 1. Introdução e notações 1.1. Relação de pertença 1.2. Modos de representar um conjunto 1.3. Classificação de conjuntos quanto ao número de elementos 1.4. Noção de correspondência 2. Relações

Leia mais

TEORIA DOS CONJUNTOS Símbolos

TEORIA DOS CONJUNTOS Símbolos 1 MATERIAL DE APOIO MATEMÁTICA Turmas 1º AS e 1º PD Profº Carlos Roberto da Silva A Matemática apresenta invenções tão sutis que poderão servir não só para satisfazer os curiosos como, também para auxiliar

Leia mais

FUNÇÃO REAL DE UMA VARIÁVEL REAL

FUNÇÃO REAL DE UMA VARIÁVEL REAL Hewlett-Packard FUNÇÃO REAL DE UMA VARIÁVEL REAL Aulas 01 a 04 Elson Rodrigues, Gabriel Carvalho e Paulo Luís Ano: 2015 Sumário INTRODUÇÃO AO PLANO CARTESIANO... 2 PRODUTO CARTESIANO... 2 Número de elementos

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Dicas para a 6 a Lista de Álgebra 1 (Conteúdo: Homomorfismos de Grupos e Teorema do Isomorfismo para grupos) Professor: Igor Lima.

Dicas para a 6 a Lista de Álgebra 1 (Conteúdo: Homomorfismos de Grupos e Teorema do Isomorfismo para grupos) Professor: Igor Lima. Dicas para a 6 a Lista de Álgebra 1 (Conteúdo: Homomorfismos de Grupos e Teorema do Isomorfismo para grupos) Professor: Igor Lima. 1 /2013 Para calcular Hom(G 1,G 2 ) ou Aut(G) vocês vão precisar ter em

Leia mais

Outras Máquinas de Turing

Outras Máquinas de Turing Capítulo 10 Outras Máquinas de Turing 10.1. Pequenas variações da TM padrão 10.2. MT s com dispositivos de armazenamento mais complexos 10.3. MT s não-determinísticas 10.4. A Máquina de Turing Universal

Leia mais

Introdução às Máquinas de Turing (TM)

Introdução às Máquinas de Turing (TM) Comparação com computadores: Introdução às Máquinas de Turing (TM) um modelo matemático simples de um computador Semelhanças: lê e escreve em posições arbitrarias de memoria Diferenças: sem limite no tamanho

Leia mais

a 1 x 1 +... + a n x n = b,

a 1 x 1 +... + a n x n = b, Sistemas Lineares Equações Lineares Vários problemas nas áreas científica, tecnológica e econômica são modelados por sistemas de equações lineares e requerem a solução destes no menor tempo possível Definição

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v. 2013-7-31 1/15

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v. 2013-7-31 1/15 Bases Matemáticas Aula 2 Métodos de Demonstração Rodrigo Hausen v. 2013-7-31 1/15 Como o Conhecimento Matemático é Organizado Definições Definição: um enunciado que descreve o significado de um termo.

Leia mais

Capítulo 2. Álgebra e imagens binárias. 2.1 Subconjuntos versus funções binárias

Capítulo 2. Álgebra e imagens binárias. 2.1 Subconjuntos versus funções binárias Capítulo 2 Álgebra e imagens binárias Em Análise de Imagens, os objetos mais simples que manipulamos são as imagens binárias. Estas imagens são representadas matematicamente por subconjuntos ou, de maneira

Leia mais

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE MÓDULO 6 INTRODUÇÃO À PROBBILIDDE Quando estudamos algum fenômeno através do método estatístico, na maior parte das vezes é preciso estabelecer uma distinção entre o modelo matemático que construímos para

Leia mais

Algoritmos e Estrutura de Dados III. Árvores

Algoritmos e Estrutura de Dados III. Árvores Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas

Leia mais

Lema do Bombeamento Linguagens Livres de Contexto

Lema do Bombeamento Linguagens Livres de Contexto Lema do Bombeamento Linguagens Livres de Contexto Bombeando FA s 0 0 x y z 1 1 1 0 Strings de comprimento 3 ou mais no DFA acima podem ser bombeados, pois tais strings correspondem a caminhos de comprimento

Leia mais

Polos Olímpicos de Treinamento. Aula 2. Curso de Teoria dos Números - Nível 2. Divisibilidade II. Prof. Samuel Feitosa

Polos Olímpicos de Treinamento. Aula 2. Curso de Teoria dos Números - Nível 2. Divisibilidade II. Prof. Samuel Feitosa Polos Olímpicos de Treinamento Curso de Teoria dos Números - Nível Prof. Samuel Feitosa Aula Divisibilidade II Definição 1. Dados dois inteiros a e b, com a 0, dizemos que a divide b ou que a é um divisor

Leia mais

Breve referência à Teoria de Anéis. Álgebra (Curso de CC) Ano lectivo 2005/2006 191 / 204

Breve referência à Teoria de Anéis. Álgebra (Curso de CC) Ano lectivo 2005/2006 191 / 204 Breve referência à Teoria de Anéis Álgebra (Curso de CC) Ano lectivo 2005/2006 191 / 204 Anéis Há muitos conjuntos, como é o caso dos inteiros, dos inteiros módulo n ou dos números reais, que consideramos

Leia mais

Probabilidade - aula I

Probabilidade - aula I e 27 de Fevereiro de 2015 e e Experimentos Aleatórios e Objetivos Ao final deste capítulo você deve ser capaz de: Entender e descrever espaços amostrais e eventos para experimentos aleatórios. Interpretar

Leia mais

Funções Lógicas e Portas Lógicas

Funções Lógicas e Portas Lógicas Funções Lógicas e Portas Lógicas Nesta apresentação será fornecida uma introdução ao sistema matemático de análise de circuitos lógicos, conhecido como Álgebra de oole Serão vistos os blocos básicos e

Leia mais

Portas Lógicas Básicas Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h

Portas Lógicas Básicas Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h Portas Lógicas Básicas Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h Colegiado de Engenharia da Computação CECOMP Introdução à Algebra de Boole Em lógica tradicional, uma decisão é tomada

Leia mais

13 Números Reais - Tipo float

13 Números Reais - Tipo float 13 Números Reais - Tipo float Ronaldo F. Hashimoto e Carlos H. Morimoto Até omomentonoslimitamosaouso do tipo inteiro para variáveis e expressões aritméticas. Vamos introduzir agora o tipo real. Ao final

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

Modelagem no Domínio do Tempo. Carlos Alexandre Mello. Carlos Alexandre Mello cabm@cin.ufpe.br 1

Modelagem no Domínio do Tempo. Carlos Alexandre Mello. Carlos Alexandre Mello cabm@cin.ufpe.br 1 Carlos Alexandre Mello 1 Modelagem no Domínio da Frequência A equação diferencial de um sistema é convertida em função de transferência, gerando um modelo matemático de um sistema que algebricamente relaciona

Leia mais

3. Tipos de Dados, Constantes e Variáveis.

3. Tipos de Dados, Constantes e Variáveis. 3. Tipos de Dados, Constantes e Variáveis. O computador realiza a sua tarefa trabalhando as informações contidas em sua memória, essas podem ser classificadas em dois tipos básicos: as instruções e os

Leia mais

1. Extremos de uma função

1. Extremos de uma função Máximo e Mínimo de Funções de Várias Variáveis 1. Extremos de uma função Def: Máximo Absoluto, mínimo absoluto Seja f : D R R função (i) Dizemos que f assume um máximo absoluto (ou simplesmente um máximo)

Leia mais

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/59 2 - FUNDAMENTOS 2.1) Teoria dos Conjuntos 2.2) Números

Leia mais

Análise semântica. Análise Semântica. Estrutura de um compilador. Anotação da árvore sintática. Tipos de comunicação de atributos?

Análise semântica. Análise Semântica. Estrutura de um compilador. Anotação da árvore sintática. Tipos de comunicação de atributos? Estrutura de um compilador Análise semântica Tradução orientada pela sintaxe 1 2 Análise Semântica Anotação da árvore sintática Análise semântica: Tipos (& Declarações) Escopo Checagens estáticas: Idéia:

Leia mais

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Seção 5.1 Problemas indecidíveis. Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Seção 5.1 Problemas indecidíveis. Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Seção 5.1 Problemas indecidíveis Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima 1 Na aula passada... A MT é indecidível (usando diagonalização)

Leia mais

Elementos de Matemática Discreta

Elementos de Matemática Discreta Elementos de Matemática Discreta Prof. Marcus Vinícius Midena Ramos Universidade Federal do Vale do São Francisco 9 de junho de 2013 marcus.ramos@univasf.edu.br www.univasf.edu.br/~marcus.ramos Marcus

Leia mais

IBM1018 Física Básica II FFCLRP USP Prof. Antônio Roque Aula 6. O trabalho feito pela força para deslocar o corpo de a para b é dado por: = =

IBM1018 Física Básica II FFCLRP USP Prof. Antônio Roque Aula 6. O trabalho feito pela força para deslocar o corpo de a para b é dado por: = = Energia Potencial Elétrica Física I revisitada 1 Seja um corpo de massa m que se move em linha reta sob ação de uma força F que atua ao longo da linha. O trabalho feito pela força para deslocar o corpo

Leia mais

MD Teoria dos Conjuntos 1

MD Teoria dos Conjuntos 1 Teoria dos Conjuntos Renato Martins Assunção assuncao@dcc.ufmg.br Antonio Alfredo Ferreira Loureiro loureiro@dcc.ufmg.br MD Teoria dos Conjuntos 1 Introdução O que os seguintes objetos têm em comum? um

Leia mais

Iniciação à Informática

Iniciação à Informática Meu computador e Windows Explorer Justificativa Toda informação ou dado trabalhado no computador, quando armazenado em uma unidade de disco, transforma-se em um arquivo. Saber manipular os arquivos através

Leia mais

APLICAÇÕES DA DERIVADA

APLICAÇÕES DA DERIVADA Notas de Aula: Aplicações das Derivadas APLICAÇÕES DA DERIVADA Vimos, na seção anterior, que a derivada de uma função pode ser interpretada como o coeficiente angular da reta tangente ao seu gráfico. Nesta,

Leia mais

¹CPTL/UFMS, Três Lagoas, MS,Brasil, oliveiralimarafael@hotmail.com. ²CPTL/UFMS, Três Lagoas, MS, Brasil.

¹CPTL/UFMS, Três Lagoas, MS,Brasil, oliveiralimarafael@hotmail.com. ²CPTL/UFMS, Três Lagoas, MS, Brasil. Encontro de Ensino, Pesquisa e Extensão, Presidente Prudente, 22 a 25 de outubro, 2012 36 INTRODUÇÃO A CRIPTOGRAFIA RSA Rafael Lima Oliveira¹, Prof. Dr. Fernando Pereira de Souza². ¹CPTL/UFMS, Três Lagoas,

Leia mais

Contagem (2) Anjolina Grisi de Oliveira. 2007.1 / CIn-UFPE. Centro de Informática Universidade Federal de Pernambuco

Contagem (2) Anjolina Grisi de Oliveira. 2007.1 / CIn-UFPE. Centro de Informática Universidade Federal de Pernambuco 1 / 24 Contagem (2) Anjolina Grisi de Oliveira Centro de Informática Universidade Federal de Pernambuco 2007.1 / CIn-UFPE 2 / 24 O princípio da multiplicação de outra forma O princípio da multiplicação

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

Sistemas de Numerações.

Sistemas de Numerações. Matemática Profº: Carlos Roberto da Silva; Lourival Pereira Martins. Sistema de numeração: Binário, Octal, Decimal, Hexadecimal; Sistema de numeração: Conversões; Sistemas de Numerações. Nosso sistema

Leia mais

RELAÇÕES BINÁRIAS Produto Cartesiano A X B

RELAÇÕES BINÁRIAS Produto Cartesiano A X B RELAÇÕES BINÁRIAS PARES ORDENADOS Um PAR ORDENADO, denotado por (x,y), é um par de elementos onde x é o Primeiro elemento e y é o Segundo elemento do par A ordem é relevante em um par ordenado Logo, os

Leia mais

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo INF01040 Introdução à Programação Introdução à Lógica de Programação s Seqüenciais Sumário Elaboração de um programa/algoritmo Formas de representação de um algoritmo Elementos manipulados em um programa/algoritmo

Leia mais

1. Sistemas de numeração

1. Sistemas de numeração 1. Sistemas de numeração Quando mencionamos sistemas de numeração estamos nos referindo à utilização de um sistema para representar uma numeração, ou seja, uma quantidade. Sistematizar algo seria organizar,

Leia mais

FUNÇÃO COMO CONJUNTO R 1. (*)= ou, seja, * possui duas imagens. b) não é uma função de A em B, pois não satisfaz a segunda condição da

FUNÇÃO COMO CONJUNTO R 1. (*)= ou, seja, * possui duas imagens. b) não é uma função de A em B, pois não satisfaz a segunda condição da FUNÇÃO COMO CONJUNTO Definição 4.4 Seja f uma relação de A em B, dizemos que f é uma função de A em B se as duas condições a seguir forem satisfeitas: i) D(f) = A, ou seja, o domínio de f é o conjunto

Leia mais

QUESTÃO 1 ALTERNATIVA B

QUESTÃO 1 ALTERNATIVA B 1 QUESTÃO 1 Marcos tem 10 0,25 = 2,50 reais em moedas de 25 centavos. Logo ele tem 4,30 2,50 = 1,80 reais em moedas de 10 centavos, ou seja, ele tem 1,80 0,10 = 18 moedas de 10 centavos. Outra maneira

Leia mais

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia

Leia mais

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.

Leia mais

Compiladores Aula 5. Celso Olivete Júnior. olivete@fct.unesp.br

Compiladores Aula 5. Celso Olivete Júnior. olivete@fct.unesp.br Aula 5 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Conjuntos Primeiro(First) e Seguidor(Follow) 2 Na aula de hoje Análise Sintática Análise Sintática Descendente Recursividade Fatoração 3

Leia mais

Contagem. Prof. Dr. Leandro Balby Marinho. Matemática Discreta. Fundamentos Inclusão/Exclusão Princípio da Casa dos Pombos Permutações Combinações

Contagem. Prof. Dr. Leandro Balby Marinho. Matemática Discreta. Fundamentos Inclusão/Exclusão Princípio da Casa dos Pombos Permutações Combinações Contagem Prof. Dr. Leandro Balby Marinho Matemática Discreta Prof. Dr. Leandro Balby Marinho 1 / 39 UFCG CEEI Motivação Contagem e combinatória são partes importantes da matemática discreta. Se resumem

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Aritmética Binária e. Bernardo Nunes Gonçalves

Aritmética Binária e. Bernardo Nunes Gonçalves Aritmética Binária e Complemento a Base Bernardo Nunes Gonçalves Sumário Soma e multiplicação binária Subtração e divisão binária Representação com sinal Sinal e magnitude Complemento a base. Adição binária

Leia mais

Ivan Guilhon Mitoso Rocha. As grandezas fundamentais que serão adotadas por nós daqui em frente:

Ivan Guilhon Mitoso Rocha. As grandezas fundamentais que serão adotadas por nós daqui em frente: Rumo ao ITA Física Análise Dimensional Ivan Guilhon Mitoso Rocha A análise dimensional é um assunto básico que estuda as grandezas físicas em geral, com respeito a suas unidades de medida. Como as grandezas

Leia mais

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

Matemática Discreta para Ciência da Computação Matemática Discreta para Ciência da Computação P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação

Leia mais

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Cálculo Numérico Aula : Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Computação Numérica - O que é Cálculo Numérico? Cálculo numérico é uma metodologia para resolver problemas matemáticos

Leia mais

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Computabilidade 2012/2013 Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Capítulo 1 Computabilidade 1.1 A noção de computabilidade Um processo de computação

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

Def. 1: Seja a quádrupla (V, K, +, ) onde V é um conjunto, K = IR ou K = IC,

Def. 1: Seja a quádrupla (V, K, +, ) onde V é um conjunto, K = IR ou K = IC, ESPAÇO VETORIAL Def. 1: Seja a quádrupla (V, K, +, ) onde V é um conjunto, K = IR ou K = IC, + é a operação (função) soma + : V V V, que a cada par (u, v) V V, associa um único elemento de V, denotado

Leia mais

MÉTODOS DISCRETOS EM TELEMÁTICA

MÉTODOS DISCRETOS EM TELEMÁTICA 1 MÉTODOS DISCRETOS EM TELEMÁTICA MATEMÁTICA DISCRETA Profa. Marcia Mahon Grupo de Pesquisas em Comunicações - CODEC Departamento de Eletrônica e Sistemas - UFPE Outubro 2003 2 CONTEÚDO 1 - Introdução

Leia mais

Monografia sobre R ser um Domínio de Fatoração Única implicar que R[x] é um Domínio de Fatoração Única.

Monografia sobre R ser um Domínio de Fatoração Única implicar que R[x] é um Domínio de Fatoração Única. Universidade Estadual de Campinas Instituto de Matemática, Estatística e Computação Científica Departamento de Matemática Monografia sobre R ser um Domínio de Fatoração Única implicar que R[x] é um Domínio

Leia mais

Só Matemática O seu portal matemático http://www.somatematica.com.br FUNÇÕES

Só Matemática O seu portal matemático http://www.somatematica.com.br FUNÇÕES FUNÇÕES O conceito de função é um dos mais importantes em toda a matemática. O conceito básico de função é o seguinte: toda vez que temos dois conjuntos e algum tipo de associação entre eles, que faça

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números

Leia mais

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. 1 Diagrama de Classes Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. Um dos objetivos do diagrama de classes é definir a base para

Leia mais

Conceitos e fórmulas

Conceitos e fórmulas 1 Conceitos e fórmulas 1).- Triângulo: definição e elementos principais Definição - Denominamos triângulo (ou trilátero) a toda figura do plano euclidiano formada por três segmentos AB, BC e CA, tais que

Leia mais

Uma lei que associa mais de um valor y a um valor x é uma relação, mas não uma função. O contrário é verdadeiro (isto é, toda função é uma relação).

Uma lei que associa mais de um valor y a um valor x é uma relação, mas não uma função. O contrário é verdadeiro (isto é, toda função é uma relação). 5. FUNÇÕES DE UMA VARIÁVEL 5.1. INTRODUÇÃO Devemos compreender função como uma lei que associa um valor x pertencente a um conjunto A a um único valor y pertencente a um conjunto B, ao que denotamos por

Leia mais

Microsoft Excel 2007

Microsoft Excel 2007 Microsoft Excel 2007 O Microsoft Excel é um aplicativo para a construção e edição de planilhas eletrônicas, que permite o trabalho com: formulários, tabelas, gráficos e outros. 2.1 CONCEITOS INICIAIS:

Leia mais

INE5403 - Fundamentos de Matemática Discreta para a Computação

INE5403 - Fundamentos de Matemática Discreta para a Computação INE5403 - Fundamentos de Matemática Discreta para a Computação 2) Fundamentos 2.1) Conjuntos e Sub-conjuntos 2.2) Números Inteiros 2.3) Funções 2.4) Seqüências e Somas 2.5) Crescimento de Funções Divisão

Leia mais

Aula 2 Modelo Simplificado de Computador

Aula 2 Modelo Simplificado de Computador Aula 2 Modelo Simplificado de Computador Um computador pode ser esquematizado de maneira bastante simplificada da seguinte forma: Modelo Simplificado de Computador: Memória Dispositivo de Entrada Processador

Leia mais