Teoria da Computação. Unidade 2 Programas, máquinas e computação: Equivalência de programas. Referência Teoria da Computação (Divério, 2000)
|
|
- Filipe Barateiro Lisboa
- 7 Há anos
- Visualizações:
Transcrição
1 Unidade 2 Programas, máquinas e computação: Equialência de programas Reerência (Diério, 2000)
2 Programas, Máquinas e Computações a
3 Programas, Máquinas e Computações Exercício - Fazer a computação e eriicar se a computação é inita ou ininita programa Recursio duplica duplica é R onde R de (se zero então senão sub; R; ad; ad)
4 Programas, Máquinas e Computações duplica é R onde R de (se zeroentão senão sub; R; ad; ad) Computação de duplica (R,, 2) (se zero então senão (sub; R; ad; ad); ; 2) (sub; R; ad; ad); ; 2) (R; ad; ad); ; 1) (se zero então senão (sub; R; ad; ad); ad; ad ; 1) (sub; R; ad; ad; ad; ad ; 1) (R; ad; ad; ad; ad ; 0)...
5 Programas, Máquinas e Computações (R; ad; ad; ad; ad ; 0) (se zero então senão (sub; R; ad; ad); ad; ad; ad; ad ; 0) ( ; ad; ad; ad; ad ; 0) (ad; ad; ad ; 1) (ad; ad ; 2) (ad ; 3) ( ; 4) A computação é inita
6 Conclusão A partir do conceito de unção computada são apresentadas noções de equialências de programas e máquinas: programas equialentes ortemente e programas equialentes em uma máquina; É apresentado um algoritmo para eriicar se programas monolíticos (ou iteratios) são equialentes ortemente. Até o momento não existe um algoritmo para programas recursios; Posteriormente, será apresentado o conceito de máquina uniersal.
7 Programas, Máquinas e Computações a
8 Equialência de Programas e Máquinas 1. Relação Equialência Forte de Programas: Um par de programas pertence a relação se as correspondentes unções computadas coincidem para qualquer máquina 2. Relação Equialência de Programas em uma Máquina: Um par de programas pertence a relação se as correspondentes unções computadas coincidem para uma dada máquina 3. Relação Equialência de Máquinas: Um par de máquinas pertence a relação se as máquinas podem se simular mutuamente. A simulação de uma máquina por outra pode ser eita usando programas dierentes.
9 Equialência Forte de Programas 1. Relação Equialência Forte de Programas, Programas Equialentes Fortemente Sejam P e Q dois programas. Então o par (P, Q) está na Relação Equialência Forte de Programas, denotadopor:p Q Se, e somente se, para qualquer máquina M as correspondentes unções computadas são iguais, ou seja: <P,M> = <Q,M> Neste caso, P e Q são ditos Programas Equialentes Fortemente
10 Equialência Forte de Programas 1. Programas Equialentes Fortemente: partida PM 1 partida PM 2 parada PI 3 enquanto aça (F) F PR 4 parada F parada P 4 é R onde R de (se então F;R senão )
11 Equialência Forte de Programas É importante considerar a relação Equialência Forte de Programas por árias razões, como: Permite identiicar dierentes programas em uma mesma classe de equialência, ou seja, identiicar dierentes programas cujas unções computadas coincidem, para qualquer máquina; As unções computadas por programas equialentes ortemente têm a propriedade de que os mesmos testes e as mesmas operações são eetuados na mesma ordem, independentemente do signiicado dos mesmos Fornece subsídios para analisar a complexidade estrutural de programas. Por exemplo, analisando os programas monolíticos equialentes ortemente PM 1 e PM 2, pode-se concluir quepm 1 é estruturalmente mais otimizado que PM 2, pois contém um teste a menos.
12 Equialência Forte de Programas Veriica-se que: Para todo iteratio, existe um monolítico equialente ortemente Para todo monolítico, existe um recursio equialente ortemente Para todo iteratio, existe um recursio equialente ortemente Programas Recursios Programas Monolíticos Programas Iteratios
13 Equialência Forte de Programas Equialência Forte de Programas Iteratio Monolítico Monolítico Recursio Iteratio Recursio Recursio Monolítico Monolítico Iteratio
14 Equialência Forte de Programas Equialência Forte de Programas Iteratio Monolítico Monolítico Recursio Iteratio Recursio Recursio Monolítico Monolítico Iteratio
15 Equialência Forte de Programas Iteratio Monolítico Justiicatia: a obtenção de um programa monolítico a partir de um iteratio é direta, a partir do mapeamento das construções elementares de um programa iteratio em sequências de construções equialentes em um programa monolítico. Como as mesmas operações são executadas na mesma ordem em ambos os programas, as unções computadas são idênticas
16 Equialência Forte de Programas Iteratio Monolítico Para qualquer programa iteratio P i, existe um programa monolítico P m,tal quep i P m a) Para a operação azia corresponde ao luxograma elementar: b) Para cada identiicador de operação F de P i F
17 Equialência Forte de Programas Iteratio Monolítico c) Suponha que é um identiicador de teste e que V, W são programas iteratios usados na construção de P i. Então, para cada um dos seguintes tipos de composição é apresentadoocorrespondenteluxogramade P m. c.1) Composição sequencial. V;W V W
18 Equialência Forte de Programas Iteratio Monolítico c.2) Composição condicional. (Se então V senão W) V W
19 Equialência Forte de Programas Iteratio Monolítico c.3) Composição enquanto. ( Enquanto aça (V)) V
20 Equialência Forte de Programas Iteratio Monolítico c.4) Composição até. ( Até aça (V)) V
21 Equialência Forte de Programas Iteratio Monolítico Exemplo: aça o mapeamento do programa iteratio para um programa monolítico até a_zero aça (subtrai_a; adiciona_b)
22 Iteratio até a_zero aça (subtrai_a; adiciona_b) Equialência Forte de Programas Iteratio Monolítico 1: se a_zero então á_para 4 senão á_para 2 2: aça subtrai_a á_para 3 3: aça adiciona_b á_para 1 Partida Instruções rotuladas Fluxograma adiciona_b subtrai_a a_zero Parada
23 Equialência Forte de Programas Equialência Forte de Programas Iteratio Monolítico Monolítico Recursio Iteratio Recursio Recursio Monolítico Monolítico Iteratio
24 Equialência Forte de Programas Monolítico Recursio Para qualquer programa monolítico P m, existe um programa recursiop r,talquep m P r Seja P m um programa monolítico qualquer onde L = {r 1, r 2,, r n } é o correspondente conjunto de rótulos. Suponha que de P m, r n é o único rótulo inal. Então P r é um programa recursio construídoapartir dep m eétalque: P r é R 1 onde R 1 de E 1, R 2 de E 2,, R n de onde,parak {1,2,...,n-1},E k é deinidocomo:
25 Equialência Forte de Programas Monolítico Recursio a)operação.se r k éda orma: r k : aça F á_para r k ' entãoe k éaseguinteexpressãode sub-rotinas: F;R k ' b)este.se r k éda orma: r k : se então á_para r k ' senão á_para r k " entãoe k éaseguinteexpressãode sub-rotinas: (se então R k ' senão R k ")
26 Equialência Forte de Programas Monolítico Recursio Exemplo: aça o mapeamento do programa monolítico (instruções rotuladas) para recursio 1: se a_zero então á_para 4 senão á_para 2 2: aça subtrai_a á_para 3 3: aça adiciona_b á_para 1
27 Equialência Forte de Programas Monolítico Recursio Exemplo: aça o mapeamento do programa monolítico para recursio R é R 1 onde 1 R 1 de (se a_zero então R 4 senão R 2 ) R 2 de (aça subtrai_a; R 3 ) R 3 de (aça adiciona_b; R 1 ) R 4 de Monolítico 1: se a_zero entãoá_para 4 senãoá_para 2 2: aça subtrai_a á_para 3 3: aça adiciona_b á_para 1
28 Equialência Forte de Programas Equialência Forte de Programas Iteratio Monolítico Monolítico Recursio Iteratio Recursio Recursio Monolítico Monolítico Iteratio
29 Programas, Máquinas e Computações Exercícios: 2.12 ao 2.14 Eniar por (oliete@ct.unesp.br) até o dia 22/03
30 Equialência Forte de Programas Recursio Monolítico Dado um programa recursio qualquer, não necessariamente existe um programa monolítico Um programa de qualquer tipo não pode ser modiicado dinamicamente, durante uma computação; Um programa, para ser ortemente equialente a outro, não pode conter ou usar acilidades adicionais como memória auxiliar ou operações ou testes extras; para que um programa monolítico possa simular uma recursão sem um número inito e predeinido de quantas ezes a recursão pode ocorrer, seriam necessárias ininitas opções de ocorrências das diersas operações ou testes enolidos na recursão em questão;
31 Veriicação de Equialência Forte de Programas A eriicação de que dois programas monolíticos são equialentes ortemente usa os seguintes conceitos: Máquina de raços: Produz um rastro ou histórico (denominado traço) da ocorrência das operações do programa. Neste contexto, dois programas são equialente ortemente se são equialentes em qualquer máquina de traços. Programa Monolítico com Instruções Rotuladas Compostas: Instruções rotuladas compostas constituem uma orma alternatia de deinir programas monolíticos. Ex.: r 1 :se então aça F á_parar 2 senão aça Gá_para r 3
32 Instruções Rotuladas Compostas A eriicação da equialência orte de dois programas monolíticos pode ser realizada usando uma representação baseada em conjuntos de instruções rotuladas compostas. Instruções rotuladas compostas possuem somente uma única orma, ao contrário das instruções rotuladas, as quais podem ser de duas ormas: operação ou teste. De ato, uma instrução rotulada composta combina ambas em uma única orma.
33 Instrução Rotulada Composta É uma sequência de símbolos da seguinte orma: r 1 :se entãoaça F á_para r 2 senão aça G á_para r 3 Adicionalmente: r 2 e r 3 são ditosrótulossucessores de r 1 r 1 é ditorótuloantecessor der 2 er 3
34 Programa Monolítico com Instruções Rotuladas Compostas Um Programa Monolítico com Instruções Rotuladas Compostas Péumparordenado onde: P=(I, r) I Conjunto de Instruções Rotuladas Compostas o qual é inito; r Rótulo Inicial o qual distingue a instrução rotulada inicial em I Adicionalmente, relatiamente ao conjunto I tem-se que: não existem duas instruções dierentes com um mesmo rótulo; um rótulo reerenciado por alguma instrução o qual não é associado a qualquer instrução rotulada é dito Rótulo Final.
35 Programa Monolítico com Instruções Rotuladas Compostas Considerando um único identiicador de teste, uma instrução rotulada composta da orma: r 1 :se entãoaça F á_para r 2 senão aça Gá_para r 3 pode ser abreiada simplesmente por: r 1 :(F, r 2 ), (G,r 3 )
36 Algoritmo: FluxogramaRotuladas Compostas Rotulação de Nós. Rotula-se cada nó do luxograma. Existe uma parada associada ao identiicador ε (palara azia). PartidaéoRótuloInicial doprogramap. Instruções Rotuladas Compostas. este: r 1 : (F, r 2 ), (G, r 3 ) Operação: r 1 : (F, r 2 ), (F, r 2 ) Parada: r: (parada,ε), (parada,ε) estes Encadeados: r 1 : (F, r 2 ), (G, r 3 ) estes Encadeados em Ciclo Ininito. r 1 : (F, r 2 ), (ciclo, ω)
37 Algoritmo: FluxogramaRotuladas Compostas este r 1 r 2 F G r 3 este: r 1 : (F, r 2 ), (G, r 3 )
38 Algoritmo: FluxogramaRotuladas Compostas r 1 r 2 F Operação Operação: r 1 : (F, r 2 ), (F, r 2 )
39 Algoritmo: FluxogramaRotuladas Compostas r ε parada Parada Parada: r: (parada,ε), (parada,ε)
40 Algoritmo: FluxogramaRotuladas Compostas r 1 estes Encadeados r 2 F r 4 H G r 3 estes Encadeados: r 1 : (F, r 2 ), (G, r 3 )
41 Algoritmo: FluxogramaRotuladas Compostas r 2 F r 1 estes Encadeados em Ciclos Ininitos estes Encadeados em Ciclo Ininito. r 1 : (F, r 2 ), (ciclo, ω)
42 Algoritmo de Equialência Forte de Programas Monolíticos Passos para eriicação: a) Especiicação do programa usando instruções rotuladas compostas; b) Conjunto de instruções rotuladas compostas; c) Identiicação dos ciclos ininitos; d) Simpliicação dos ciclos ininitos; e) União disjunta dos conjuntos I Q e I R, excetuando-se a instrução rotulada ω; )Veriicar se Q R
43 Equialência Forte de Programas Monolíticos a) Especiicação do programa utilizando instruções rotuladas compostas 1. Representar o programa monolítico na orma de luxograma 2. Atribuir rótulos numéricos para todas as operações 3. Atribuir o rótulo ε paraainstrução parada dee ser único 4. Considerar que os rótulos seguem os nós 5. Acadarótulo numérico i, criari: (F,i ) (G, i ) se: A condição erdadeira para o teste implica na execução de F Após a execuçãode Fopróximo rótulo atingidoéi Acondiçãoalsaparaoteste implica na execuçãode G Após a execuçãode G o próximo rótulo atingido é i Se a execução de uma operação lear a um loop ininito, dee-se usar (ciclo, w) e acrescentar a instrução rotulada composta w: (ciclo, w), (ciclo, w) ao programa
44 Equialência Forte de Programas Monolíticos a) Especiicação do programa utilizando instruções rotuladas compostas 1. Representar o programa monolítico na orma de luxograma 2. Atribuir rótulos numéricos para todas as operações 3. Atribuir o rótulo ε para a instrução parada dee ser único 4. Considerar que os rótulos seguem os nós 5. Acadarótulo numérico i, criari: (F,i ) (G, i ) se: A condição erdadeira para o teste implica na execução de F Após a execuçãode Fopróximo rótulo atingidoéi Acondiçãoalsaparaoteste implica na execuçãode G Após a execuçãode G o próximo rótulo atingido é i Se a execução de uma operação lear a um loop ininito, dee-se usar (ciclo, w) e acrescentar a instrução rotulada composta w: (ciclo, w), (ciclo, w) ao programa
45 Equialência Forte de Programas Monolíticos Exemplo: luxograma rotulado e instruções rotuladas compostas 1 partida Programa P 2 G F 3 4 F G 5 6 F 7 G ε parada
46 Algoritmo de Equialência Forte de Programas Monolíticos Passos para eriicação: a) Especiicação do programa usando instruções rotuladas compostas; b) Conjunto de instruções rotuladas compostas; c) Identiicação dos ciclos ininitos; d) Simpliicação dos ciclos ininitos; e) União disjunta dos conjuntos I Q e I R, excetuando-se a instrução rotulada ω; )Veriicar se Q R
47 Equialência Forte de Programas Monolíticos a) Especiicação do programa utilizando instruções rotuladas compostas 1. Representar o programa monolítico na orma de luxograma 2. Atribuir rótulos numéricos para todas as operações 3. Atribuir o rótulo ε paraainstrução parada dee ser único 4. Considerar que os rótulos seguem os nós 5. Acadarótulo numérico i, criari: (F,i ) (G, i ) se: A condição erdadeira para o teste implica na execução de F Após a execuçãode Fopróximo rótulo atingidoéi Acondiçãoalsaparaoteste implica na execuçãode G Após a execuçãode G o próximo rótulo atingido é i Se a execução de uma operação lear a um loop ininito, dee-se usar (ciclo, w) e acrescentar a instrução rotulada composta w: (ciclo, w), (ciclo, w) ao programa
48 Equialência Forte de Programas Monolíticos Exemplo: luxograma rotulado e instruções rotuladas compostas 1 partida Programa P b) Instruções rotuladas compostas 2 G F 3 4 F G 5 6 F 1: (G, 2), (F, 3) 2: (G, 2), (F, 3) 3: (F, 4), (G, 5) 4: (F, 4), (G, 5) 5: (F, 6), (ciclo, ω) 6: (parada, ε), (G, 7) 7: (G, 7), (G, 7) ω: (ciclo, ω), (ciclo, ω) 7 G ε parada
49 Algoritmo de Equialência Forte de Programas Monolíticos Passos para eriicação: a) Especiicação do programa usando instruções rotuladas compostas; b) Conjunto de instruções rotuladas compostas; c) Identiicação dos ciclos ininitos; d) Simpliicação dos ciclos ininitos; e) União disjunta dos conjuntos I Q e I R, excetuando-se a instrução rotulada ω; )Veriicar se Q R
50 Equialência Forte de Programas Monolíticos c) Identiicação dos ciclos ininitos; A união disjunta de conjuntos garante que todos os elementos dos conjuntos componentes constituem o conjunto resultante, mesmo que possuam a mesma identiicação. Neste caso, considera-se que os elementos são distintos, mesmo que possuam a mesma identiicação. Por exemplo, para os conjuntos A={a, x} e B={b,x}, o conjunto resultante da união disjunta é: {a A,x A,b B, x B } Quando a identiicação or única, o índice pode ser omitido {a,x A,b,x B }
51 Equialência Forte de Programas Monolíticos Equialência Forte: União Disjunta. Sejam: Q = (I Q, q) e R = (I R, r) dois programas monolíticos especiicados usando instruções rotuladas compostas P q = (I, q) e P r = (I, r) programas monolíticos onde I é o conjunto resultante da união disjunta de I Q e I R. Então: P q P r se, e somente se, Q R
52 Equialência Forte de Programas Monolíticos O algoritmo para eriicação da equialência orte de Q e R resume-se à eriicaçãose P q e P r sãoequialentes ortemente. cadeia de conjuntos: sequência de conjuntos ordenada pela relação de inclusão; programa monolítico simpliicado: instruções rotuladas compostas que determinam ciclos ininitos a serem excluídos (excetuando-se a instrução rotulada por ω, se existir). A simpliicação baseia-se em cadeia de conjuntos; rótulos equialentes ortemente: o algoritmo de eriicação se P q e P r são equialentes ortemente baseia-se em rótulos equialentes ortemente de programas simpliicados.
53 Cadeia de conjuntos, Cadeia inita de Conjuntos, Limite de uma Cadeia Finita de Conjuntos. Umacadeia deconjuntosa 0 A 1...édita: UmaCadeiadeConjuntosse, paraqualquerk 0, A k A k+1 Uma Cadeia Finita de Conjuntos é uma cadeia de conjuntos onde existe n, para todo k 0, tal que: A n = A n+k Neste caso, deine-se o Limite da Cadeia Finita de Conjuntos como segue: lima k = A n
54 Identiicação de Ciclos Ininitos em Programa Monolítico Identiicação de Ciclos Ininitos em Programa Monolítico. ornece um algoritmo para determinar se existem ciclos ininitos em um conjunto de instruções rotuladas compostas. A ideia básica é partir da instrução parada, rotulada por ε, determinando os seus antecessores. Por exclusão, uma instrução que não é antecessor da parada determina um ciclo ininito.
55 Identiicação de Ciclos Ininitos em Programa Monolítico Se I é um conjunto de n instruções rotuladas compostas. Seja A 0 A 1...uma sequência de conjuntos de rótulos deinida como segue A 0 ={ε} 0 A 1 = A k {r r é rótulo de instrução antecessora de alguma instrução rotulada A k } Então A 0 A 1... é uma cadeia inita de conjuntos e, para qualquer rótulo r de instrução I, tem-se que (I,r) (I, ω) se, e somentese, r lim A k Proporciona uma maneira ácil de determinar se algum rótulo caracteriza ciclos ininitos
56 Exemplo: Identiicação de Ciclos Ininitos em Programa Monolítico 1 partida 2 G F 3 Programa P Instruções rotuladas compostas 1: (G,2),(F,3) 2: (G,2),(F,3) 3: (F,4),(G, 5) 4: (F,4),(G, 5) 5: (F,6),(ciclo, ω) 6: (parada, ε), (G,7) 7: (G,7),(G, 7) ω: (ciclo, ω), (ciclo, ω) 4 F G F G ε parada
57 1 partida Programa P 2 G F 3 4 F G 5 6 F A correspondente cadeia inita de conjuntos é: A 0 = {ε} A 1 = {6, ε} A 2 = {5, 6, ε} A 3 = {3, 4, 5, 6, ε} A 4 = {1, 2, 3, 4, 5, 6, ε} A 5 = {1, 2, 3, 4, 5, 6, ε} Logo:limA k = {1, 2, 3, 4, 5, 6, ε} 7 G Simpliicação de ciclos ininitos: (I,7) (I, ω), pois7 lima k. A ideia básica é partir da instrução parada, rotulada por ε, determinando os seus antecessores. ε parada Portanto, pode-se simpliicar um conjunto de instruções rotuladas compostas eliminando-se qualquer instrução de rótulo r ω que determine um ciclo ininito.
58 Algoritmo de Equialência Forte de Programas Monolíticos Passos para eriicação: a) Especiicação do programa usando instruções rotuladas compostas; b) Conjunto de instruções rotuladas compostas; c) Identiicação dos ciclos ininitos; d) Simpliicação dos ciclos ininitos; e) União disjunta dos conjuntos I Q e I R, excetuando-se a instrução rotulada ω; )Veriicar se Q R
59 Algoritmo de Equialência Forte de Programas Monolíticos Passos para eriicação: d) Simpliicação de ciclos ininitos Seja I um conjunto inito de instruções rotuladas compostas. Algoritmo: Identiicação de ciclos ininitos Paraqualquer rótulorde instruçãoital que r lim A k A instrução rotulada por r é excluída odareerência a paresda orma (F, r) é substituída por (ciclo, ω)
60 Programa P Algoritmo de Equialência Forte de Programas Monolíticos Instruções rotuladas compostas A correspondente cadeia inita de conjuntos é: A 0 = {ε} A 1 = {6, ε} A 2 = {5, 6, ε} A 3 = {3, 4, 5, 6, ε} A 4 = {1, 2, 3, 4, 5, 6, ε} A 5 = {1, 2, 3, 4, 5, 6, ε} Logo:limA k = {1, 2, 3, 4, 5, 6, ε} Simpliicação de ciclos ininitos: (I,7) (I, ω), pois7 lima k. Portanto, pode-se simpliicar um conjunto de instruções rotuladas compostas eliminando-se qualquer instrução de rótulo r ω que determine um ciclo ininito. 1: (G,2), (F, 3) 2: (G,2), (F, 3) 3: (F, 4), (G, 5) 4: (F, 4), (G, 5) 5: (F, 6), (ciclo, ω) 6: (parada, ε), (G, 7) 7: (G,7), (G, 7) ω: (ciclo, ω), (ciclo, ω) Instruções rotuladas compostas e simpliicadas 1: (G, 2), (F, 3) 2: (G, 2), (F, 3) 3: (F, 4), (G, 5) 4: (F, 4), (G, 5) 5: (F, 6), (ciclo, ω) 6: (parada, ε), (ciclo, ω) ω: (ciclo, ω), (ciclo, ω)
61 8 Programa Q Algoritmo de Equialência Forte de Programas Monolíticos partida a) Especiicação do programa usando instruções rotuladas compostas; 9 G F 10 G 11 8: (G, 9), (F, 10) 9: (G, 9), (F, 10) 10:(F, 10), (G, 11) 11:(F, 12), (F, 13) 12:(parada, ε), (F, 13) 13:(F, 13), (F, 13) 12 F F 13 parada ε
62 Programa Q Algoritmo de Equialência Forte de Programas 8 partida Monolíticos b.2) Identiicação de ciclos ininitos A 0 = {ε} A 1 = {12, ε} A 2 = {11, 12, ε} A 3 = {10, 11, 12, ε} A 4 = {8, 9, 10, 11, 12, ε} A 5 = {8, 9, 10, 11, 12, ε} Portanto: lim A k = {8, 9, 10, 11, 12, ε} 9 G F 10 G F F 13 parada ε (I r, 13) (I, ω), pois lim A k
63 Algoritmo de Equialência Forte de Programas Monolíticos Instruções rotuladas compostas 8: (G, 9), (F, 10) 9: (G, 9), (F, 10) 10:(F, 10), (G, 11) 11:(F, 12), (F, 13) 12:(parada, ε), (F, 13) 13:(F, 13), (F, 13) Instruções rotuladas compostas simpliicadas 8:(G, 9), (F, 10) 9:(G, 9), (F, 10) 10:(F, 10), (G, 11) 11:(F, 12), (ciclo, ω) 12:(parada, ε), (ciclo, ω) ω: (ciclo, ω), (ciclo, ω) lim A k = {8, 9, 10, 11, 12, ε} (I r, 13) (I, ω), pois lim A k
64 Algoritmo de Equialência Forte de Programas Monolíticos Relatiamente à aplicação do algoritmo, tem-se que: Passo 1: Seja I a união disjunta dos conjuntos I Q e I R, executando-se a instrução rotulada ω, como segue: Seja I um conjunto de n instruções 1:(G, 2), (F, 3) compostas e simpliicadas. 2:(G, 2), (F, 3) Sejam r e s dois rótulos de instruções de 3:(F, 4), (G, 5) I. 4:(F, 4), (G, 5) Deine-se, indutiamente, a sequência de 5:(F, 6), (ciclo, ω) conjuntos B 0 B 1...por: 6: (parada, ε), (ciclo, ω) B 0 = {(r, s)} 8: (G, 9), (F, 10) B k+1 = {(r", s") r" e s" são rótulos 9: (G, 9), (F, 10) sucessores de r e s, respectiamente, 10: (F, 10), (G, 11) (r, s ) B k e (r", s") B i, (0 i k)} 11: (F, 12), (ciclo, ω) Então B 0 B 1... é uma sequência que 12: (parada, ε), (ciclo, ω) conerge para o conjunto azio, e r, s ω: (ciclo, ω), (ciclo, ω) são rótulos equialentes ortemente se, e somente se, qualquer par de B k é constituído por rótulos consistentes.
65 Sejam r e s dois rótulos deinstruções de I. B 0 = {(r, s)} B k+1 = {(r", s") r" e s"são rótulos sucessores de r e s, respectiamente, (r, s ) B k e (r", s") B i, (0 i k)} Então B 0 B 1 Algoritmo... é uma sequência de que Equialência conerge para oforte conjunto azio, de Programas e r, s são rótulos equialentesmonolíticos ortemente se, e somente se, qualquer par de B k é constituído por rótulos consistentes. Paraeriicar se Q Résuiciente eriicar se (I, 1) (I, 8) Passo 2: como 1 e 8 são rótulos equialentes ortemente, então: B 0 = {(1, 8)}. Caso contrário, não são equialentes e o algoritmo para. Passos 3 e 4. Para k >=0, a construção de B k+1 é como segue: B 1 = {(2, 9), (3,10)} pares de rótulos equialentes ortemente B 2 = {(4, 10), (5, 11)} pares de rótulos equialentes ortemente B 3 = {(6, 12), (ω, ω)} pares de rótulos equialentes ortemente B 4 = {(ε, ε)} pares de rótulos equialentes ortemente B 5 = ø conerge para o conjunto azio - Q e R são equialentes Logo (I, 1) (I, 8) e, portanto, Q R a relação equialência orte ornece subsídios para analisar a complexidade estrutural de programas. No caso, Qé estruturalmente mais otimizado que P contem um teste a menos 1:(G, 2), (F, 3) 2:(G, 2), (F, 3) 3:(F, 4), (G, 5) 4:(F, 4), (G, 5) 5:(F, 6), (ciclo, ω) 6: (parada, ε), (ciclo, ω) 8: (G, 9), (F, 10) 9: (G, 9), (F, 10) 10: (F, 10), (G, 11) 11: (F, 12), (ciclo, ω) 12: (parada, ε), (ciclo, ω) ω: (ciclo, ω), (ciclo, ω)
66 1 Algoritmo de Equialência Forte de Programas Monolíticos partida Programa P 8 partida Programa Q 2 G F 3 9 G F 10 4 F G 5 G 11 6 F 12 F F 13 7 G parada ε ε parada a relação equialência orte ornece subsídios para analisar a complexidade estrutural de programas. No caso, Qé estruturalmente mais otimizado que P contem um teste a menos
67 Passos do Algoritmo de Equialência Forte de Programas Monolíticos Passo 1. Sejam P q = (I, q) e P r = (I, r) programas monolíticos onde I é o conjunto resultante da união disjunta de I Q e I R, excetuando-se a instrução rotulada ω, se existir, a qual ocorre, no máximo, uma ez em I. Passo 2. Se q e rsão rótulos equialentes ortemente, então B 0 ={(q, r)}. Caso contrário, Q e R não são equialentes ortemente, e o algoritmo termina. Passo 3. Para k 0, deine-se o conjunto B k+1, contendo somente os pares (q", r") de rótulos sucessores de cada(q', r') B k, tais que: q' r'; q'er' são ambos dierentes de ε; os pares sucessores (q", r")não são elementos de B 0, B 1,..., B k. Passo 4. Dependendo deb k+1, tem-se que: a) B k+1 = : Q ersão equialentes ortemente, eoalgoritmo termina; b) B k+1 : se todos os pares de rótulos de B k+1 são equialentes ortemente, então á para o Passo 3; caso contrário, Q e R não são equialentes ortemente, e o algoritmo termina.
68 Conclusão A partir do conceito de unção computada são apresentadas noções de equialências de programas e máquinas: programas equialentes ortemente e programas equialentes em uma máquina; É apresentado um algoritmo para eriicar se programas monolíticos (ou iteratios) são equialentes ortemente. Até o momento não existe um algoritmo para programas recursios; Posteriormente, será apresentado o conceito de máquina uniersal.
69 Programas, Máquinas e Computações Aplique o Algoritmo de Veriicação da Equialência Forte de Programas Monolíticos para os programas abaixo partida 1 partida 3 2 F F 4 parada ε Programa Monolítico P 1 parada ε Programa Monolítico P 2 parada ε
70 Programas, Máquinas e Computações Exercícios: 2.12 ao ao 2.25 Eniar por (oliete@ct.unesp.br) até o dia 22/03
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUAÇÃO EORIA DA COMPUAÇÃO Aula 09 Equialência Forte de Programas Monolíticos Pro.ª Danielle Casillo Equialência orte de programas monolíticos
Leia maisUNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 08 Equivalência de programas Parte 2 Prof.ª Danielle Casillo Poder computacional dos diversos tipos de programas
Leia maisUNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Os teoremas citados na aula anterior, podem dar a falsa impressão de que o poder computacional da classe dos
Leia maisUNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 03 Programas (Monolítico e Iterativo) Prof.ª Danielle Casillo Programas, Máquinas e Computações Diferentes
Leia maisUNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferentes computadores podem ter diferentes arquiteturas e os diversos tipos de linguagem de programação.
Leia maisUNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 05 Computações Prof.ª Danielle Casillo Computação Será visto como as definições de programas e máquinas caminham
Leia maisTeoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000)
Unidade 1 Conceitos Básicos Referência (Divério, 2000) Conceitos Básicos Linguagem Conceito fundamental Forma precisa de expressar problemas Permite um desenvolvimento formal adequado ao estudo da computabilidade
Leia maisAlgoritmia. "Conta-me e eu esqueço-me Mostra-me e eu lembro-me Deixa-me fazer e eu aprendo" Confúcio
Algoritmia "Conta-me e eu esqueço-me Mostra-me e eu lembro-me Deixa-me azer e eu aprendo" Conúcio ISPGaya 2005/2006 Inormática de Gestão 2.º ano Programação 1 Algoritmo Um algoritmo é uma sequência inita
Leia maisEQUIVALÊNCIA DE PROGRAMAS E MÁQUINAS
EQUIVALÊNCIA DE PROGRAMAS E MÁQUINAS Édson Wenning¹, Elias Lampert², Gustavo Claudy³, Pedro E. Camera 4. ¹Discente do Curso Ciência da Computação - Universidade de Cruz Alta ²Discente do Curso Ciência
Leia maisUNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Interpreta os programas de acordo com os dados fornecidos. É capaz de interpretar um programa desde que possua
Leia maisCurso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 6. Programas, Máquinas e Computações
Curso: Ciência da Computação Turma: 6ª Série Aula 6 Programas, Máquinas e Computações Avisos Hoje tem dúvidas sobre a segunda etapa da ATPS. Somente 28 alunos/alunas entregaram a ATPS etapa 1. Ainda dá
Leia maisTeoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)
Teoria da Computação Referência Teoria da Computação (Divério, 2000) 1 L={(0,1)*00} de forma que você pode usar uma Máquina de Turing que não altera os símbolos da fita e sempre move a direita. MT_(0,1)*00=({0,1},{q
Leia maisResolução Exe 2.12 Monolítico Recursivo
Resolução Exe 2.12 Monolítico Recursivo Recursivo P R é R 1 onde R 1 def (se T1 então R 2 senão R 3 ) R 2 def F; R 3 R 3 def (se T2 então R 4 senão R 7 ) R 4 def G; R 5 R 5 def (se T1 então R 7 senão R
Leia maisLinguagens Regulares. Prof. Daniel Oliveira
Linguagens Regulares Prof. Daniel Oliveira Linguagens Regulares Linguagens Regulares ou Tipo 3 Hierarquia de Chomsky Linguagens Regulares Aborda-se os seguintes formalismos: Autômatos Finitos Expressões
Leia maisUNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 04 Programa Recursivo e Máquinas Prof.ª Danielle Casillo Funções recursivas Alguma função é recursiva quando
Leia maisTeoria da Computação. Máquinas Universais Máquina com Pilhas
Máquinas Universais Máquina com Pilhas Cristiano Lehrer Introdução A Máquina com Pilhas diferencia-se das Máquinas de Turing e de Post principalmente pelo fato de possuir uma memória de entrada separada
Leia maisTeoria da Computação. Máquinas, Computações e Funções Computadas
Cristiano Lehrer Introdução (1/2) O objetivo de uma máquina é suprir todas as informações necessárias para que a computação de um programa possa ser descrita. Portanto, cabe à máquina suprir o significado
Leia maisRaiz, filho, pai, irmão, ancestral, descendente, folha.
17.1 Aula 17: Conceitos de Árvores e Árvores Binárias Raiz, ilho, pai, irmão, ancestral, descendente, olha. Nível, altura, subárvore, subárvore parcial. Árvores binárias completas, binárias cheias, estritamente
Leia maisCapítulo III. Limite de Funções. 3.1 Noção de Limite. Dada uma função f, o que é que significa lim f ( x) = 5
Capítulo III Limite de Funções. Noção de Limite Dada uma unção, o que é que signiica ( 5? A ideia intuitiva do que queremos dizer com isto é: quando toma valores cada vez mais próimos de, a respectiva
Leia maisCapítulo III. Limite de Funções. 3.1 Noção de Limite. Dada uma função f, o que é que significa lim f ( x) = 5
Capítulo III Limite de Funções. Noção de Limite Dada uma unção, o que é que signiica ( 5? A ideia intuitiva do que queremos dizer com isto é: quando toma valores cada vez mais próimos de, a respectiva
Leia maisUNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferencia-se das máquinas de Turing e Post principalmente pelo fato de possuir a memória de entrada separada
Leia maisÁrvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral
SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas
Leia maisLinguagens Formais e Autômatos. Simplificação de Gramáticas Livre do Contexto (GLC)
Linguagens Formais e Autômatos Simplificação de Gramáticas Livre do Contexto (GLC) Cristiano Lehrer, M.Sc. Gramática Simplificada Gramática simplificada é uma gramática livre do contexto que não apresenta
Leia maisMétodo da Secante Para Resolução de equações do tipo f(x)=0
Método da Secante Para Resolução de equações do tipo 0 Narã Vieira Vetter Guilherme Paiva Silva Santos Raael Pereira Marques naranvetter@walla.com guilherme.pss@terra.com.br rp_marques5@yahoo.com.br Associação
Leia maisTeoria da Computação. Computabilidade
Cristiano Lehrer Introdução O objetivo do estudo da solucionabilidade de problemas é investigar a existência ou não de algoritmos que solucionem determinada classe de problemas. Ou seja, investigar os
Leia maisCapítulo 2: Procedimentos e algoritmos
Capítulo 2: Procedimentos e algoritmos Para estudar o processo de computação de um ponto de vista teórico, com a finalidade de caracterizar o que é ou não é computável, é necessário introduzir um modelo
Leia mais5.1 Noção de derivada. Interpretação geométrica de derivada.
Capítulo V Derivação 5 Noção de derivada Interpretação geométrica de derivada Seja uma unção real de variável real Deinição: Chama-se taa de variação média de uma unção entre os pontos a e b ao quociente:
Leia maisUNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo NORMA (NumberTheOreticRegisterMAchine) Possui como memória um conjunto infinito de registradores naturais e
Leia maisTokens, Padroes e Lexemas
O Papel do Analisador Lexico A analise lexica e a primeira fase de um compilador e tem por objetivo fazer a leitura do programa fonte, caracter a caracter, e traduzi-lo para uma sequencia de símbolos lexicos
Leia maisCálculo Numérico. que é denominado erro relativo. Temos então para os dados acima:
Cálculo Numérico 1 Erros Nenhum resultado obtido através de cálculos eletrônicos ou métodos numéricos tem valor se não tivermos conhecimento e controle sobre os possíveis erros envolvidos no processo.
Leia maisAULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado
AULA 11 PROJETO E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado Roteiro Motivação Conceitos básicos Representação Motivação Um grafo é uma abstração que permite
Leia maisTÉCNICO DE INFORMÁTICA - SISTEMAS
782 - Programação em C/C++ - estrutura básica e conceitos fundamentais Linguagens de programação Linguagem de programação são conjuntos de palavras formais, utilizadas na escrita de programas, para enunciar
Leia maisSIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA
SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA Neste trabalho você deverá construir e testar, com a ferramenta JFLAP, uma MT multifita que simula o funcionamento de um computador
Leia maisCálculo Numérico. que é denominado erro relativo. Temos então para os dados acima:
Cálculo Numérico 1 Erros Nenhum resultado obtido através de cálculos eletrônicos ou métodos numéricos tem valor se não tivermos conhecimento e controle sobre os possíveis erros envolvidos no processo.
Leia mais3.2 Função de Distribuição Conjunta Acumulada e Função de Densidade de Probabilidade Marginal
. Função de Distribuição Conjunta Acumulada e Função de Densidade de Probabilidade Marginal ( ) 9 F ( ) P( y ) / 4 Por vezes o interesse do pesquisador recai sobre as chances de ocorrência de um subconjunto
Leia maisLinguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)
Linguagens Formais e Autômatos Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Linguagens Regulares A teoria da computação começa com uma pergunta: O que é um computador? É, talvez, uma
Leia mais1. Noções de Programação
1. Noções de Programação O objetivo deste capítulo é fornecer ao aluno noções básicas de programação aplicadas à Engenharia Química; assim sendo, apenas estruturas fundamentais e exemplos simples serão
Leia maisTeoria da Computação. Aula 01
Teoria da Computação Aula 01 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/tc 1 Professor Celso Olivete Júnior Bacharelado em Ciência da Computação (Unoeste-2002) Mestrado
Leia maisI.2 Introdução a Teoria da Computação
I.2 Introdução a Teoria da Computação O que é? Fundamento da Ciência da Computação Tratamento Matemático da Ciência da Computação Estudo Matemático da Transformação da Informação Qual sua importância?
Leia maisAula 16 Estruturas de Controle. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes
Aula 16 Estruturas de Controle Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www3.ifrn.edu.br/~brunogomes Agenda da Aula Estruturas de Controle Estruturas de Condição Revisando
Leia maisProbabilidades. Wagner H. Bonat Elias T. Krainski Fernando P. Mayer
Probabilidades Wagner H. Bonat Elias T. Krainski Fernando P. Mayer Universidade Federal do Paraná Departamento de Estatística Laboratório de Estatística e Geoinformação 06/03/2018 WB, EK, FM ( LEG/DEST/UFPR
Leia maisINE Fundamentos de Matemática Discreta para a Computação
INE543 - Fundamentos de Matemática Discreta para a Computação 5) Relações 5.) Relações e Dígrafos 5.2) Propriedades de Relações 5.3) Relações de Equivalência 5.4) Manipulação de Relações 5.5) Fecho de
Leia maisTeoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos
Pode-se dizer que a é em grande parte trabalho de um único matemático: Georg Cantor (1845-1918). noção de conjunto não é suscetível de definição precisa a partir d noções mais simples, ou seja, é uma noção
Leia mais3 Função - conceitos gerais 45
UFF/GMA - Matemática Básica - Parte III - Função Notas de aula - Marlene - 010-44 Sumário III Função: conceitos erais 45 3 Função - conceitos erais 45 3.1 Conceito e representação simbólica de unção...............................
Leia maisEngenharia de resolução de problemas
Engenharia de resolução de problemas O processo de resolução de um problema pode ser visto como uma seqüência de passos que devem ser definidos e aprimorados, até que o modelo escolhido para sua representação
Leia maisCÁLCULO DIFERENCIAL E INTEGRAL. Prof. Rodrigo Carvalho
CÁLCULO DIFERENCIAL E INTEGRAL LIMITES Uma noção intuitiva de Limite Considere a unção () = 2 + 3. Quando assume uma ininidade de valores, aproimando cada vez mais de zero, 2 + 3 assume uma ininidade de
Leia maisTeoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013
Teoria dos Grafos Aula 5 - Estruturas de Dados para Grafos Profª. Alessandra Martins Coelho março/2013 Estrutura é o que caracteriza o próprio grafo e independe da forma como ele é representado. A representação
Leia maisUniversidade Federal do Rio Grande do Norte. Métodos Computacionais Marcelo Nogueira
Universidade Federal do Rio Grande do Norte Métodos Computacionais Marcelo Nogueira Raízes de Equações Algébricas Achar a raiz de uma unção signiica achar um número tal que 0 Algumas unções podem ter suas
Leia maisTÓPICOS DE CORRECÇÃO
Faculdade de Economia Universidade Nova de Lisboa EXAME E CÁLCULO I Ano Lectivo 007-08 - º Semestre Eame Final de ª Época em de Junho de 008 Duração: horas e 30 minutos É proibido usar máquinas de calcular
Leia maisAlgoritmos de Ordenação
Algoritmos de Ordenação! Problema: encontrar um número de telefone em uma lista telefônica! simplificado pelo fato dos nomes estarem em ordem alfabética! e se estivesse sem uma ordem?! Problema: busca
Leia maisTuring to Norma, uma ferramenta para auxiliar o estudo da equivalência entre Máquina de Turing e Máquina Norma
4ª Jornada Científica e Tecnológica e 1º Simpósio de Pós-Graduação do IFSULDEMINAS 16, 17 e 18 de outubro de 2012, Muzambinho MG Turing to Norma, uma ferramenta para auxiliar o estudo da equivalência entre
Leia maisCapítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.
Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel 8.1 - Introdução. Como observado no capítulo anterior, podemos substituir a definição informal de procedimento pela
Leia maisSCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente
SCC-505 - Capítulo 3 Linguagens Sensíveis ao Contexto e João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação - Universidade de São Paulo http://www.icmc.usp.br/~joaoluis
Leia maisSUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca
ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização
Leia maisUNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 02 Introdução à Teoria da Computação Prof.ª Danielle Casillo Linguagem: é uma forma precisa de expressar
Leia maisUniversidade Federal de Mato Grosso do Sul Estruturas de Dados e Programação. Processamento de Cadeias
Universidade Federal de Mato Grosso do Sul Estruturas de Dados e Programação Processamento de Cadeias 1 Introdução Processar documentos é atualmente uma das principais funções dos computadores. São inúmeras
Leia maisJá falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas.
Teoria dos Conjuntos Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas. Porém, não é nosso objetivo ver uma teoria axiomática dos conjuntos.
Leia maisMétodos Numéricos Zeros Posição Falsa e Ponto Fixo. Professor Volmir Eugênio Wilhelm Professora Mariana Kleina
Métodos Numéricos Zeros Posição Falsa e Ponto Fixo Professor Volmir Eugênio Wilhelm Professora Mariana Kleina Método da Posição Falsa 2 Método da Posição Falsa O processo consiste em dividir/particionar
Leia maisNoções de algoritmos - Aula 1
Noções de algoritmos - Aula 1 Departamento de Física UFPel Definição de algoritmo Sequência ordenada e finita de operações para a realização de uma tarefa. Tarefa: Experimento de Física I. Passo 1: Reunir
Leia maisAlgoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição 1 Comando while Deseja-se calcular o valor de: 1 + 2 + 3 +... + N. Observação: não sabemos, a priori, quantos termos
Leia maisLinguagens Livres de Contexto
Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação 364018 Linguagens Formais e Autômatos TEXTO 4 Linguagens Livres de Contexto Prof. Luiz A M Palazzo Maio de 2011
Leia maisCurso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios
Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios 1. Escreva a expressão regular para as seguintes linguagens sobre o alfabeto {0, 1}: strings começando
Leia maisLinguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior.
LFA Aula 04 Autômatos Finitos 16/11/2016 Celso Olivete Júnior olivete@fct.unesp.br 1 Classificação das Linguagens segundo Hierarquia de Chomsky Máquina de Turing Máquina de Turing com fita limitada Autômato
Leia maisComplexidade de Algoritmos
Complexidade de Algoritmos O que é um algoritmo? Sequência bem definida e finita de cálculos que, para um dado valor de entrada, retorna uma saída desejada/esperada. Na computação: Uma descrição de como
Leia maisIntrodução à Análise Algoritmos
Introdução à Análise Algoritmos Notas de aula da disciplina IME 4-182 Estruturas de Dados I Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) abril/218 Ordenação por SELEÇÃO: Idéia: Dado um vetor
Leia maisExperiência III (aula 05) Distância focal de uma lente
Experiência III (aula 05) Distância de uma lente. Objetivos 2. Introdução 3. Medida da distância de uma lente delgada 4. Arranjo e procedimento experimental 5. Análise de dados 6. Reerências. Objetivos
Leia mais1, tal que x k+ 1 x para k +. x k + 1 : raiz aproximada da f; Uma forma de determinarmos um intervalo I = [ a,
- SOLUÇÃO DE EQUAÇÕES NÃO LINEARES INTRODUÇÃO Um dos problemas que ocorrem mais reqüentemente em trabalhos cientíicos é calcular as raízes de equações da orma: () 0. A unção () pode ser um polinômio em
Leia maisLinguagem de Programação I Prof. Tiago Eugenio de Melo.
Linguagem de Programação I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info 1 Sumário Introdução Conceitos preliminares Introdução Variáveis Comandos Condicionais 2 Por que aprender a
Leia maisIntegração Numérica. Cálculo Numérico
Cálculo Numérico Integração Numérica Pro. Jorge Cavalcanti jorge.cavalcanti@univas.edu.br MATERIAL ADAPTADO DOS SLIDES DA DISCIPLINA CÁLCULO NUMÉRICO DA UFCG - www.dsc.ucg.edu.br/~cnum/ Integração Numérica
Leia mais1 Postulado de Church-Turing 1
1 Postulado de Church-Turing 1 Alguns modelos alternativos no estudo da computabilidade Turing: Máquina de Turing Gödel-Kleene: Funções recursivas Church: Cáluculo λ (funções definidas por termos λ) Post:
Leia maisSe tanto o numerador como o denominador tendem para valores finitos quando x a, digamos α e β, e β 0, então pela álgebra dos limites sabemos que.
FORMAS INDETERMINADAS E A REGRA DE L HÔPITAL RICARDO MAMEDE Consideremos o ite. Se tanto o numerador como o denominador tendem para valores initos quando a, digamos α e β, e β, então pela álgebra dos ites
Leia maisEngenharia Civil. Introdução à Programação
Engenharia Civil Introdução à Programação Como se faz um algoritmo computacional? Exemplo Exemplo Será que o algoritmo vai funcionar? Questões: Área de uma circunferência programa area AREA, RAIO: real
Leia maisESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.
ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. Grafos Sugestão bibliográfica: ESTRUTURAS DE DADOS USANDO C Aaron
Leia maisC alculo Num erico Ra ızes de Equa c oes Ana Paula Ana Paula C alculo Num erico
Raízes de Equações Sumário 1 Introdução 2 3 Revisão Introdução Introdução Introdução Introdução Serão estudados aqui métodos numéricos para a resolução do problema de determinar as raízes de uma equação
Leia maisDepartamento de Engenharia Mecânica
UC-Rio MEC 40: RANSMISSÃO E CALOR ro Washington Braga epartamento de Engenharia Mecânica ANÁLISE IMENSIONAL Objetios Estudamos ransmissão de Calor com um objetio em mente: o entendimento das características
Leia maisIntrodução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE.
DEINFO - UFRPE Julho, 2014 Motivação Introdução O que pode ser computado? E mais intrigantemente, o que não pode ser computado? Motivação Introdução O que pode ser computado? E mais intrigantemente, o
Leia maisAulas 10 e 11 / 18 e 20 de abril
1 Conjuntos Aulas 10 e 11 / 18 e 20 de abril Um conjunto é uma coleção de objetos. Estes objetos são chamados de elementos do conjunto. A única restrição é que em geral um mesmo elemento não pode contar
Leia maisINE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação
INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br
Leia maisFUNÇÕES DE VÁRIAS VARIÁVEIS
FUNÇÕES DE VÁRIAS VARIÁVEIS Introdução Considere os seguintes enunciados: O volume V de um cilindro é dado por V r h onde r é o raio e h é a altura. Um circuito tem cinco resistores. A corrente deste circuito
Leia mais1ª LISTA DE EXERCÍCIOS DE MÉTODOS NUMÉRICOS Prof.: Magnus Melo
ª LISTA DE EXERCÍCIOS DE MÉTODOS NUMÉRICOS Pro.: Magnus Melo Eercício. Sejam os polinômios dados abaio. Use a regra de sinais de descartes e o teorema da cota de Augustin Cauchy para pesquisar a eistência
Leia maisUNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO UFRPE Matemática Discreta Bacharelado em Sistemas de Informação Respostas - 1ª Lista de Exercícios
UNIERSIDADE EDERAL RURAL DE PERNAMBUCO URPE Matemática Discreta Bacharelado em Sistemas de Inormação Resolução Lista 1 Monitoria: Bruna 1) Lógica Proposicional a) Marque as rases que orem proposições:
Leia mais& somadosnumeros = valor
Correção exercícios Exercício 1 Exercício 2 a) scanf( %d", &valor); b) printf("o produto de %d e %d e %d\n", x, y, z) ; c) somadosnumeros = primeironumero + segundonumero d) /* Programa para determinar
Leia maisCONCEITOS DE ALGORITMOS
CONCEITOS DE ALGORITMOS Fundamentos da Programação de Computadores - 3ª Ed. 2012 Editora Prentice Hall ISBN 9788564574168 Ana Fernanda Gomes Ascênsio Edilene Aparecida Veneruchi de Campos Algoritmos são
Leia maisACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br
Leia maisDesenvolvimento de programas
1 Desenvolvimento de programas Análise do problema Desenvolvimento do algoritmo Codificação do programa Compilação e execução Teste e depuração 2 Análise do problema Conhecer exatamente o que o problema
Leia maisACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br
Leia maisMétodos Matemáticos na Ciência de Dados: Introdução Relâmpago. II
Métodos Matemáticos na Ciência de Dados: Introdução Relâmpago. II Vladimir Pestov 1 University of Ottawa / Université d Ottawa Ottawa, Ontario, Canadá 2 Universidade Federal de Santa Catarina Florianópolis,
Leia maisProcessamento digital de imagens
Processamento digital de imagens Agostinho Brito Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte 27 de maio de 2016 Reconhecimento de objetos Padrão: arranjo
Leia maisMarcos Castilho. DInf/UFPR. 16 de maio de 2019
16 de maio de 2019 Motivação Quais são os limites da computação? O que é um Problema de decisão? Um problema de decisão é um conjunto de perguntas, cada uma das quais tem um SIM ou um NÃO como resposta.
Leia maisAlgoritmos e Técnicas de programação. Professora: Luciana Faria
Algoritmos e Técnicas de programação Professora: Luciana Faria Estruturas básicas da construção de algoritmos Controle de fluxo condicionais (se, se-senao e escolha) Continuando Comandos Compostos é um
Leia maisMétodos Numéricos - Notas de Aula
Métodos Numéricos - Notas de Aula Prof a Olga Regina Bellon Junho 2007 Zeros de equações transcendentes e Tipos de Métodos polinomiais São dois os tipos de métodos para se achar a(s) raízes de uma equação:
Leia maisFICHA de AVALIAÇÃO de MATEMÁTICA A 11.º Ano Versão 3
FICHA de AVALIAÇÃO de MATEMÁTICA A.º Ano Versão Nome: N.º Turma: Apresente o seu raciocínio de orma clara, indicando todos os cálculos que tiver de eetuar e todas as justiicações necessárias. Quando, para
Leia maisFunções polinomiais, racionais e trigonométricas
Aula 04 FUNÇÕES (continuação) UFPA, 5 de março de 05 Funções polinomiais, racionais e trigonométricas No inal desta aula, você seja capaz de: Dizer o domínio das unções polinomiais, racionais e trigonométricas;
Leia maisPSEUDO-CÓDIGO. Nickerson Fonseca Ferreira
1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA PSEUDO-CÓDIGO Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br Introdução 2 Um algoritmo pode ser
Leia maisNotas de Aula Disciplina Matemática Tópico 03 Licenciatura em Matemática Osasco -2010
1. Funções : Definição Considere dois sub-conjuntos A e B do conjunto dos números reais. Uma função f: A B é uma regra que define uma relação entre os elementos de A e B, de tal forma que a cada elemento
Leia maisÁrvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação
Árvores N-árias, Binárias, Busca Vanessa Maia Berny Mestrado em Ciência da Computação Disciplina de Estrutura de Dados Prof. Dr. Luzzardi, Paulo Roberto Gomes Abril de 2008 Árvores N-árias São estruturas
Leia maisÁrvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas
Leia maisMáquinas Universais. Máquina de Turing. Celso Olivete Júnior.
Máquinas Universais Máquina de Celso Olivete Júnior olivete@fct.unesp.br http://www2.fct.unesp.br/docentes/dmec/olivete/ Roteiro Hipótese de Church - Máquinas Universais: Máquina de Máquina de : Noção
Leia maisLFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.
LFA Aula 05 AFND: com e sem movimentos vazios 05/12/2016 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Na aula passada... Reconhecedores genéricos Autômatos finitos
Leia mais