Software Básico Silvio Fernandes 2009.1 Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Contadores e Registradores
Software Básico Silvio Fernandes
Software Básico Silvio Fernandes
Software Básico Silvio Fernandes Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Amintas engenharia.
Estruturas de Repetição
MÁQUINAS UNIVERSAIS Fabrício Dias
UNIVERSIDADE LUTERANA DO BRASIL COMUNIDADE EVANGÉLICA LUTERANA SÃO PAULO Reconhecida pela Portaria Ministerial nº 681 de 07/12/89 – DOU de 11/12/89 Campus.
TEORIA DA COMPUTAÇÃO Parte III  Máquina de Turing
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 03: Computador.
Software Básico Silvio Fernandes
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes
INTRODUÇÃO A INFORMÁTICA
Mutação de Interface Interface Mutation: An Approach for Integration Testing Marcio E. Delamaro José C. Maldonado Aditya P. Mathur.
Vi 1 Editando com vi. vi 2 Por que vi? l Editar arquivos de configuração l Editar scripts de shell l Disponível em todas as distribuições l Necessita.
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
Estatística Básica Utilizando o Excel
15 Introdução à Manipulação de Planilhas Eletrônicas Planilhas Eletrônicas são tabelas usadas para comunicar informações de forma clara, precisa e sucinta.
Informática Industrial
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Arquitetura de Computadores
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
Dissertações e Teses-PROPAD
Laboratório de Programação de Computadores I
Tratamento de Ficheiros
Programação Baseada em Objectos Desenho de TAD
Revisão da Linguagem C.
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação JAVA
Sistemas Operacionais I
Sistemas Operacionais
Análise Semântica e Representação Intermédia
JAVA: Conceitos Iniciais
GERENCIAMENTO DE AQUISIÇÕES PMBOK
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
PROGRAMAÇÃO I UNIDADE 1.
Compressão de Textos Juliano Palmieri Lage.
Salas de Matemática.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 02: Introdução.
Arquitetura de computadores
Entendendo as definições de classe
Tarefa 02 Visual Studio 2005 Visual C# Programa Hello World.
Construção Tabela-verdade
Arquitetura de computadores
Projeto de Banco de Dados
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Campus de Caraguatatuba Aula 8: Noções Básicas sobre Erros (2)
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Agenda Modos de Endereçamento.
Campus de Caraguatatuba Aula 2: Somatório e Produtório
Campus de Caraguatatuba Licenciatura em Matemática Semestre de 2013
UML - Unified Modeling Language
GESTÃO DE FICHEIROS ÍNDICE Pág. I.Instalação do Software 2 II.Selecção de Empresas / Manutenção de Empresas 5 III.Criação da Base de Dados (Clientes,
© 2004 by Pearson Education Computadores: Ferramentas para a Era da Informação Tema 0 PARTE A.
BCC /01 Aula Teórica 09 Funções Material Didático Proposto. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento.
Campus de Caraguatatuba
Planilha Eletrônica - Excel
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Transcrição da apresentação:

Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 16: Macroprocessadores 1

Introdução Uma macroinstrução (ou macro) é uma forma de notação com a finalidade de simplificar o trabalho do programador A macro representa um grupo de instruções usadas com certa frequência, escrita na mesma linguagem de programação a que pertence O macroprocessador substitui cada macro pelo grupo de instruções correspondentes (expandir macros) 2

Introdução Na prática o macroprocessador se limita a substituir um grupo de caracteres ou outro Com raras exeções, o macroprocessador não analisa o texto das instruções O projeto de um macroprocessador não se relaciona diretamente com a estrutura do computador Há macroprocessadores de uso geral que não se prende a nenhuma linguagem 3

Definição e Expansão de Macros A fig. a seguir mostra um exemplo de programa com macroinstrução escrito para SIC/XE Este programa define e usa 2 macroinstruções, RDBUF e WRBUF As definições destas macros aparecem no programa-fonte após a instrução START 4

Definição e Expansão de Macros 5

6

Duas novas diretivas do assembler (MACRO e MEND) são usadas nas definições das macros MACRO identifica o início da definição de uma macro antecedida pelo nome da macro O símbolo RDBUF é o nome da macro, e o campo de operandos contém os parâmetros da macroinstrução (iniciados pelo caracter &) O nome e os parâmetros definem o padrão ou protótipo das macroinstruções 7

Definição e Expansão de Macros Em seguida aparecem as instruções que formam o corpo da definição da macro, as quais o macroprocessador gerará ao expandir a macro A diretiva MEND assinala o fim da definição da macro No programa principal a instrução da linha 190 é a ativação da macro que informa o nome da macro e os argumentos que serão utilizados na expansão 8

Definição e Expansão de Macros É importante observar que a ativação da macro é diferente de uma chamada de subrotina A fig. a seguir mostra a saída gerada por um macroprocessador usando como entrada o programa anterior 9

Definição e Expansão de Macros 10

Definição e Expansão de Macros 11

Definição e Expansão de Macros As definições das macros foram apagadas depois da expansão Cada instrução de ativação da macro foi expandida e transformada nas instruções que compõem o corpo da macro Os argumentos utilizados na ativação da macro substituíram os parâmetros do protótipo da macro As linhas 190a até 190l mostram a expansão completa da macro ativada na linha

Definição e Expansão de Macros Observe que as linhas de comentários dentro do corpo da macro foram eliminadas A própria instrução de ativação da macro foi transformada numa linha de comentário, como finalidade de documentar a codificação do programador As macros das linhas 210 e 220 foram expandidas da mesma forma Observe que em cada ativação de WRBUFF foi usado um argumento diferente, assim o resultado das expansões é diferente 13

Definição e Expansão de Macros Depois do processamento da macro, o arquivo expandido pode ser usado como entrada do assembler como se as instruções geradas pelas macros tivessem sido escritas diretamente pelo programador Observe que as macroinstruções foram escritas de modo que no corpo não contivesse nenhum label (JEQ *-3 ao invés de JEQ WLOOP e etc) Isso evita um erro, pois na expansão da macro WRBUFF haveria duplicidade na definição de label 14

Tabelas e Lógica do Macroprocessador É fácil projetar um macroprocessador de 2 passagens – 1ª: todas as definições de macro são processadas – 2ª: todas as macros são expandidas Entretanto, este macroprocessador não permitiria que o corpo de uma macroinstrução contivesse definições de outras macros 15

Tabelas e Lógica do Macroprocessador As definições de macros dentro de outras macros são úteis em determinadas circunstâncias 16

Tabelas e Lógica do Macroprocessador 17

Tabelas e Lógica do Macroprocessador O corpo da 1ª macro (MACROS) contém instruções que definem RDBUFF, WRBUFF e outras instruções para SIC O corpo da 2ª (MACROX) define as mesmas macros para SIC/XE Deste modo, o mesmo programa poderia ser executado num SIC standard e num SIC/XE A única alteração necessária seria a ativação de MACROS ou MACROX 18

Tabelas e Lógica do Macroprocessador Em razão da estrutura de 1 passagem, a definição de cada macro tem que aparecer antes das instruções que ativam a macro correspondente São 3 as estruturas de dados principais: – DEFTAB – NAMTAB – ARGTAB 19

Tabelas e Lógica do Macroprocessador DEFTAB – Armazena o protótipo da macro e as instruções que formam o corpo da macro – As referências aos parâmetros da macro são convertidas para uma notação posicional para que sua substituição pelos argumentos se torne mais eficiente NAMTAB – Armazena os nomes das macros que funcionam como índice de DEFTAB – Identifica o início e o fim da macro 20

Tabelas e Lógica do Macroprocessador ARGTAB – Armazena os argumentos da instrução de ativação de macro segundo sua posição na lista de argumentos – Conforme a macro é expandida, os argumentos de ARGTAB vão sendo colocados no lugar do parâmetros correspondentes no corpo da macro 21

Tabelas e Lógica do Macroprocessador (a) entradas de NAMTAB e DEFTAB que definem a macro RDBUFF; (b) entradas de ARGTAB para ativação de RDBUFF na linha

Tabelas e Lógica do Macroprocessador Quando a notação ?n é reconhecida numa linha de DEFTAB, uma operação simples de indexação fornece o argumento apropriado estraído de ARGTAB 23

Tabelas e Lógica do Macroprocessador 24

Tabelas e Lógica do Macroprocessador Quando uma definição de macro está sendo registrada em DEFTAB, o procedimento normal seria prosseguir até que a diretiva MEND fosse encontrada Entretanto, usando essa idéia, uma macro definida dentro de outra macro levaria a um erro Para isso, a procedure DEFINE mantém um contador (NIVEL) que é incrementado a cada diretiva MACRO encontrada 25

Referências Leland L Beck. Desenvolvimento de software básico. 2ª ed. Rio de Janeiro: Campus, p. 26