Suporte à Execução. Compiladores. Procedimentos. Árvores de Ativação. Exemplo: o Quicksort. Procedimentos em ação (ativação)



Documentos relacionados
Compiladores. Tipos. Regras semânticas. Expressões de tipos. Propriedades de Sistemas Tipados. Análise Semântica e checagem de tipos

Ambientes de Execução. Compiladores. Representação de tipos básicos. Questões Importantes. Representação de tipos estruturados

Linhas de Campo Magnético

RESOLUÇÃO DA AVALIAÇÃO DE MATEMÁTICA 2 o ANO DO ENSINO MÉDIO DATA: 10/08/13 PROFESSOR: MALTEZ

Fig Essas linhas partem do pólo norte para o pólo sul na parte externa do material, e do pólo sul para o pólo norte na região do material.

PRÊMIO ABF-AFRAS DESTAQUE RESPONSABILIDADE SOCIAL 2011 Categoria Franqueador Sênior

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

Vedação. Fig.1 Estrutura do comando linear modelo ST

MESTRADO EM MACROECONOMIA e FINANÇAS Disciplina de Computação. Aula 05. Prof. Dr. Marco Antonio Leonel Caetano

Nível da Arquitetura do Conjunto das Instruções

Condensador esférico Um condensador esférico é constituído por uma esfera interior de raio R e carga

ARITMÉTICA DE PONTO FLUTUANTE/ERROS EM OPERAÇÕES NUMÉRICAS

1ª Aula do Cap. 6 Forças e Movimento II

CAPÍTULO GENERALIDADES

DISCIPLINA ELETRICIDADE E MAGNETISMO LEI DE AMPÈRE

Compensadores. Controle 1 - DAELN - UTFPR. Os compensadores são utilizados para alterar alguma característica do sistema em malha fechada.

PARTE IV COORDENADAS POLARES

Módulo 5: Conteúdo programático Eq da continuidade em Regime Permanente. Escoamento dos Fluidos - Equações Fundamentais

Antenas. Antena = transição entre propagação guiada (circuitos) e propagação não-guiada (espaço). Antena Isotrópica

PROGRAMAÇÃO II 3. FILA DINÂMICA

EDITAL E NORMAS PARA O CONCURSO DE TREINAMENTO EM CIRURGIA GERAL PARA O ANO DE 2016

F º Semestre de 2013 Coordenador. José Antonio Roversi IFGW-DEQ-Sala 216

EM423A Resistência dos Materiais

Capítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.

Matemática / Física. Figura 1. Figura 2

Ivan Correr (UNIMEP) Ronaldo de Oliveira Martins (UNIMEP) Milton Vieira Junior (UNIMEP)

PRÊMIO ABF-AFRAS DESTAQUE RESPONSABILIDADE SOCIAL 2011 Categoria Franqueado

1. SINTAXE DA LINGUAGEM ASSEMBLY

)25d$0$*1e7,&$62%5( &21'8725(6

Resistência dos Materiais IV Lista de Exercícios Capítulo 2 Critérios de Resistência

/(,'(%,276$9$57()/8;2 0$*1e7,&2

Variable Speed Wind Turbine Modeling Using ATPDraw

GEOMETRIA ESPACIAL. a) Encher a leiteira até a metade, pois ela tem um volume 20 vezes maior que o volume do copo.

PRÊMIO ABF-AFRAS DESTAQUE RESPONSABILIDADE SOCIAL 2011 Categoria Franqueado

Informação Geográfica em Engenharia Civil

INTRODUÇÃO À PROGRAMAÇÃO DO ACCESS BASIC

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação

Estrutura de Dados Pilha (Stack)

Campo Gravítico da Terra

PROGRAMAÇÃO II 3. PILHA DINÂMICA

Gestor de Processos Núcleo do Sistema Operativo

LISTA COMPLETA PROVA 03

Aula-09 Campos Magnéticos Produzidos por Correntes. Curso de Física Geral F o semestre, 2013

REGIMENTO INTERNO DO FUNDO PATRIMONIAL DE APOIO AO JORNALISMO INVESTIGATIVO (F/ABRAJI) Aprovado pela Assembleia Geral de Associados realizada em.

ESTRATÉGIA DE CONTROLE PARA ACIONAMENTO A VELOCIDADE VARIÁVEL PARA MOTORES MONOFÁSICOS COM OPERAÇÃO OTIMIZADA

3.4 Representação física: alocação encadeada (dinâmica) Ptlista - variável ponteiro externa que indica o início da lista.

Recursividade. Aula 9

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

PRÊMIO ABF-AFRAS DESTAQUE RESPONSABILIDADE SOCIAL 2011 Categoria Franqueado

Fila de Prioridade. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados

3 - DESCRIÇÃO DO ELEVADOR. Abaixo apresentamos o diagrama esquemático de um elevador (obtido no site da Atlas Schindler).

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Lógicas de Supervisão Pedagógica em Contexto de Avaliação de Desempenho Docente. ENTREVISTA - Professor Avaliado - E 5

Linguagem de Montagem 2. Operações e Operandos

Prof. Dirceu Pereira

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

Adicionando Propriedades e Funcionalidades aos Componentes Parte II

Fundamentos de Programação

Rotor bobinado: estrutura semelhante ao enrolamento de estator. Rotor em gaiola de esquilo

PROGRAMAÇÃO II 4. ÁRVORE

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Implementando uma Classe e Criando Objetos a partir dela

Programação científica C++

Filas. A ordem de saída corresponde diretamente à ordem de entrada dos elementos. Fila de caixa bancário

SISTEMAS OPERACIONAIS

A Pilha. Aula 02. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria

2. O gerador de código estende DepthFirstAdapter implementando a interpretação que gerará código Jasmin a partir de Smallpascal.

DESENVOLVIMENTO E APLICAÇÃO DE GERADOR DE INDUÇÃO TRIFÁSICO CONECTADO ASSINCRONAMENTE À REDE MONOFÁSICA

CONTROLE INTELIGENTE DE UM SISTEMA DE USINAGEM ACIONADO POR MOTOR DE INDUÇÃO TRIFÁSICO

Técnicas de Programação I

Organização de Computadores 1

Relação Risco Retorno em uma série histórica

Unidade 13 Noções de Matemática Financeira. Taxas equivalentes Descontos simples e compostos Desconto racional ou real Desconto comercial ou bancário

COS767 - Modelagem e Análise Aula 2 - Simulação. Algoritmo para simular uma fila Medidas de interesse

SUMÁRIO 1 PRÉ - REQUISITOS: 2 2 DOWNLOAD DO SIAPES 2 3 INSTALAÇÃO SIAPES 5 4 CONFIGURANDO DIREITOS DE USUÁRIO 9 5 CONFIGURAÇÃO DA BDE 10

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

TEORIA DA GRAVITAÇÃO UNIVERSAL

Engenharia Electrotécnica e de Computadores Exercícios de Electromagnetismo Ficha 1

Variáveis Compostas Heterogêneas. Variável Composta Heterogênea. Variável Composta Heterogênea

EXPERIÊNCIA 5 - RESPOSTA EM FREQUENCIA EM UM CIRCUITO RLC - RESSONÂNCIA

1.2 Uma linguagem de programação muito simples

ARQUITECTURAS DE SOFTWARE

Formatação de fonte. Teorema da amostragem

Instituto de Física - USP FGE Laboratório de Física III - LabFlex

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.

TOP CIDADANIA ABRH-RS 2016 Categoria Conhecimento. 1 APRESENTAÇÃO peso Apresentação do trabalho 20

Manipulando Strings no VBA (Replace, Mid e InStr)

9 Comandos condicionais

Aula pratica 5 Testar Conexões TCP/IP em Redes Industrias Usando os comandos Ping e Net View (2.a Parte)

Equações Básicas na Forma Integral - I. Prof. M. Sc. Lúcio P. Patrocínio

Manipulação de Arquivos em Pascal

HOW TO Procedimento para efetuar a autenticação no Aker Firewall utilizando token.


Algumas notas sobre PASCAL

Unidade 11: A Unidade de Controle Prof. Daniel Caetano

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA

Desenvolvimento de Sistemas WEB

Capítulo 7 Nível da Linguagem Assembly

e A Formação do Circuito Equivalente

Transcrição:

Supote à Execução Compiladoe Ambiente de upote à execução O Compilado gea código executável. Ma nem tudo etá conhecido ante que o pogama eja executado! Valoe de paâmeto e funçõe, Memóia dinamicamente alocada, Dependendo do númeo de chamada, qual endeeço ua paa acha o início de cada execução de um pocedimento? Etc... É pecio de um conjunto de otina (un-time uppot package) caegado junto com o código objeto geado Pocedimento O comando ão oganizado em pocedimento: declaação com um nome aociado que ealiza uma dada taefa definição: nome vaiávei copo Pocedimento em ação (ativação) Fluxo de contole: execução eqüencial (eqüência de pao) começa no início do copo temina no final do copo tempo de vida: eqüência de pao executado chamada de pocedimento: devio de execução etona o contole paa o ponto imediatamente apó o ponto de chamada Exemplo: o Quickot pogam ot(input, output); va a : aay [0..10] of intege; pocedue eadaay; va i: intege; begin fo i:=1 to 9 do ead(a[i]); end; function patition(y, z: intege): intege; va i, j, x, v: intege; begin... end; pocedue quickot(m, n: intege); va i: intege; begin if ( n > m) then begin i:= patition(m, n); quickot(m, i-1); quickot(i+1, n); end; end; begin a[0] := -9999; a[10]:= 9999; eadaay; quickot(1, 9); end. Ávoe de Ativação Cada nó epeenta uma ativação de um pocedimento A aiz epeenta a ativação do pogama pincipal O nó de a é pai de b e e omente e o fluxo de contole muda de a paa b O nó de a etá à equeda de b e e omente e a vida de a ocoe ante de b 1

execution begin Ávoe de ativação execution begin Ávoe de ativação execution begin Ávoe de ativação execution begin ente quickot(1, 9) Ávoe de ativação execution begin ente quickot(1, 9) ente patition(1, 9) Ávoe de ativação execution begin ente quickot(1, 9) ente patition(1, 9) leave patition(1,9) Ávoe de ativação 2

Ávoe de ativação Ávoe de ativação execution begin ente quickot(1, 9) ente patition(1, 9) leave patition(1,9) ente quickot(1,3) execution begin ente quickot(1, 9) ente patition(1, 9) leave patition(1,9) ente quickot(1,3)... leave quickot(5, 9) q(5,9) p(5,9) q(5,5) q(7,9) p(7,9) q(7,7) q(9,9) p(2,3) q(2,1) q(3,3) Ávoe de ativação Ávoe de ativação execution begin ente quickot(1, 9) ente patition(1, 9) leave patition(1,9) ente quickot(1,3)... leave quickot(5, 9) leave quickot(1,9) q(5,9) p(5,9) q(5,5) q(7,9) p(7,9) q(7,7) q(9,9) p(2,3) q(2,1) q(3,3) execution begin ente quickot(1, 9) ente patition(1, 9) leave patition(1,9) ente quickot(1,3)... leave quickot(5, 9) leave quickot(1,9) execution teminated q(5,9) p(5,9) q(5,5) q(7,9) p(7,9) q(7,7) q(9,9) p(2,3) q(2,1) q(3,3) Pilha de contole Oganização de Memóia O fluxo de contole coeponde a uma buca em pofundidade na ávoe de ativação Ua-e uma pilha paa contola a ativaçõe de pocedimento ativo Como a memóia do pogama é amazenada? código objeto geado; epaço paa vaiávei globai Núcleo áea etática pilha paa ativação de pocedimento Pilha epaço paa memóia dinâmica (heap). HEAP Texto 3

Alocação de memóia Alocação etática: eeva de memóia é feita duante a compilação, de foma etática. Tipo (ou compimento) do dado é conhecido em tempo de compilação Compimento não é modificado duante a execução do pogama Núcleo Pilha Alocação de memóia Alocação dinâmica (HEAP): etutua de dado efeenciada atavé de ponteio, a áea também ão eevada dinamicamente. áea ão alocada e libeada, ob o contole do pogama(do) alocada na áea de "heap", que cece no entido contáio ao da pilha. Núcleo Pilha HEAP Texto HEAP Texto Alocação de memóia Regito de Ativação Alocação em pilha (STACK): Áea paa dado locai de pocedimento (ubotina ou funçõe): devem e alocada dinamicamente. A alocação de epaço de memóia omente pode e ealizada em tempo de execução, poque a odem de chamada é deteminada pela execução do pogama. Áea ão alocada numa etutua em pilha de ativação de pocedimento Libeação quando etona! Na pilha entam (e aem) egito de ativação. valo etonado paâmeto efetivo ponteio de contole ponteio de aceo etado da CPU vaiávei locai tempoáio podem e paado ou etonado em egitadoe (paa maio eficiência) aponta paa o egito de ativação da otina chamadoa aponta paa dado não-locai, amazenado em outo egito de ativação "pogam counte e egitadoe Ob: pode-e ua egitadoe paa algun do campo! fp p Ponteio de Aceo egito de ativação da otina chamadoa paâmeto e valoe etonado apontadoe de contole e etado da máquina vaiávei locai e tempoáio avaliado pela otina chamadoa alguma infomaçõe ão peenchida pela otina chamadoa áea uada pela otina chamada 2 ponteio: fame_pointe (fp): aponta paa o egito de ativação coente tack_pointe (p): topo da pilha de egito de ativação Código de Chamada otina chamadoa: avalia o paâmeto efetivo e o coloca na pilha Regitadoe em uo pelo chamado ão alvo em memóia amazena o endeeço de etono e o valo antigo do fame_pointe no egito de ativação da otina chamada e atualiza o valo do fame_pointe; otina chamada: alva valoe de egitadoe e outa infomaçõe do etado da máquina; inicializa vaiávei locai e começa ua execução. 4

Código de Retono Seqüência de chamada otina chamada: amazena o valo de etono logo apó o egito de ativação da otina chamadoa; etaua o apontado topo_a e o egitadoe da máquina e devia paa o endeeço de etono dento da otina chamadoa; otina chamadoa: copia o valo etonado no eu pópio egito de ativação Topo Topo valo etono e paâmeto Ponteio e Etado Tmp / dado locai valo etono e paâmeto Ponteio e Etado Tmp / dado locai Regito Ativação chamado Regito Ativação chamado Seqüência de chamada valo etono e paâmeto Ponteio e Etado Tmp / dado locai valo etono e paâmeto Ponteio e Etado Sob eponabilidade do chamado Seqüência de etono O chamado coloca um valo de etono no devido luga... Ou eja, logo depoi do egito do chamado! Recupea o antigo valo de topo no campo de etado E também o outo egitadoe... Devia paa o antigo PC Topo Tmp / dado locai Sob eponabilidade do chamado Impotante: o chamado ainda pode acea o que etá acima de topo... Quetão: o que etá nete luga? Paagem de Paâmeto Paagem de paâmeto po valo Método mai imple de paagem de paâmeto Paâmeto ão avaliado, e eu valoe ão paado paa o pocedimento chamado. Implementação: um paâmeto fomal é tatado exatamente como um nome local, de maneia que a memóia paa o paâmeto fomai é eevada no egito de ativação do pocedimento chamado; o pocedimento chamado avalia o paâmeto eai e amazena eu valoe na memóia eevada paa o paâmeto fomai. Paagem de Paâmeto Paagem de paâmeto po endeeço pocedimento chamado paa o endeeço de cada paâmeto eal. e um paâmeto eal é: Identificado: eu endeeço é paado; Expeão: expeão é avaliada num tempoáio, e o endeeço dee tempoáio é paado; Refeência a paâmeto fomai, no pocedimento chamado, ão feita de foma indieta. 5

Póxima aula... Fim do upote ao untime: Paagem de paâmeto Ecopo de vaiável Tabela de ímbolo com ecopo... 6