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
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Programação em Java Prof. Maurício Braga
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.
Estruturas de Repetição
Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS
MÁQUINAS UNIVERSAIS Fabrício Dias
PORTUGUÊS ESTRUTURADO E PSEUDOCÓDIGO
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.
INTRODUÇÃO AOS APLICATIVOS JAVA
Interação entre objetos
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 3.
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
SISTEMAS DE EQUAÇÕES.
Algoritmos e Programação Linguagens de Programação Teoria Aula 5 (05/05) Universidade Federal do Vale do São.
Introdução à Computação - Jorge Macêdo
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
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.
BCC101 – Matemática Discreta
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Rodrigo de Toledo (original: Claudio Esperança)
Introdução ao -calculus
Organização da Memória Principal
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
Programação Baseada em Objectos Desenho de TAD
Listas Encadeadas.
Revisão da Linguagem C.
Estrutura de decisão e repetição em JAVA
Classes e objetos P. O. O. Prof. Grace.
Campus de Caraguatatuba
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Unidade I: “Dê um mergulho rápido”
PROGRAMAÇÃO I UNIDADE 1.
Funções Universidade Federal de Ouro Preto - UFOP
Salas de Matemática.
Estrutura de dados, pseudocódigo
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.
FTIN Formação Técnica em Informática
Arquitetura de computadores
Entendendo as definições de classe
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
O Portal do Estudante de Computação
Introdução e Busca Cega
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Campus de Caraguatatuba Aula 8: Noções Básicas sobre Erros (2)
Campus de Caraguatatuba Aula 12: Sistemas de Equações Lineares (2)
Técnicas e Projeto de Sistemas
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Resolução de sistemas de equações lineares
Campus de Caraguatatuba Aula 2: Somatório e Produtório
Máquina de Turing Universal
Circuitos Combinacionais Exercícios 2 POSCOMP e ENADE
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.
Planilha Eletrônica - Excel
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Fontes de Erros Aula 1 Introdução; Erros em processos numéricos;
Fundamentos de linguagens de programação
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 17: Características independentes da máquina 1

Introdução Os macroprocessadores não se relacionam diretamente com a arquitetura da máquina No entanto, faz parte da extensão de suas funções – Método para a concatenação de parâmetros das macros com outras strings – Método para geração de labels sem duplicidade – Expansão condicional das macros – Uso de palavras-chaves como parâmetros das macroinstruções 2

Concatenação de parâmetros das macros A maioria dos macroprocessadores permite a concatenação de parâmetros com outras strings Imagine que um programa contivesse uma série de variáveis: XA1, XA2, XA3,..., outra série: XB1, XB2, XB3,... Se ambas as séries tivessem que ser submetidas a um processamento semelhante, o programador poderia incorporar o processamento a um macro 3

Concatenação de parâmetros das macros Imagine que o parâmetro da macroinstrução se chamasse &ID O corpo da definição da macro poderia conter uma instrução como – LDA X&ID1 – Na qual o parâmetro &ID seria concatenado depois da string X e antes da string 1 Pode existir ambiguidade entre &ID e &ID1 4

Concatenação de parâmetros das macros A solução pode ser um operador de concatenação especial No SIC é usado o caracter – Assim a instrução anterior seria escrita – LDA X&ID-1 De modo que o final do parâmetro &ID ficasse claramente identificado O macroprocessador elimina todas as ocorrências do operador de concatenação logo depois da substituição de parâmetros com – 5

Concatenação de parâmetros das macros 6

Geração de Labels sem Duplicidade Em geral não é possível que o corpo das instruções de macros contenham labels comuns Isso nos obrigaria a usar o endereçamento relativo nas fontes dos programa (*-3, *-14, etc) Esse modelo se torna muito inconveniente, então muitos macroprocessadores dele 7

Geração de Labels sem Duplicidade Uma solução é usar um símbolo especial (ex: $) com os labels na definição da macro Na ativação de macro todos os símbolos iniciados por $ são substituídos por $xx, onde xx é um contador que indica o número de macroinstruções expandidas 8

Geração de Labels sem Duplicidade 9

O assembly do SIC permite o caracter $ nos símbolos Entretanto, não se recomenda o uso deste caracter nos programas-fontes para evitar o conflito entre os símbolos gerados pelo programador e os símbolos produzidos pelo macroprocessador 10

Expansão Condicional das Macros Nos exemplos anteriores, cada instrução de ativação de macro se expandia sempre na mesma sequência de instruções Estas instruções podiam ser modificadas pela substituição de parâmetros mas sua forma e a ordem na qual estavam escritas nunca se alterava A fig. a seguir exemplifica a expansão condicional de macros 11

Expansão Condicional das Macros 12

Expansão Condicional das Macros 13

Expansão Condicional das Macros 14

Expansão Condicional das Macros 15

Expansão Condicional das Macros A estrura IF avalia uma expressão booleana codificada como seu operando Se o valor for VERDADEIRO, as instruções posteriores serão geradas até que um ELSE seja encontrado Caso contrário, estas instruções serão saltadas e o programa gerará as instruções subsequentes ao ELSE A instrução ENDIF termina a expressão condicional (a cláusula ELSE pode ser omitida) 16

Expansão Condicional das Macros Se o parâmetro &MAXLTH for uma string nulo a instrução da linha 45 será gerada Caso contrário, a instrução da linha 47 será gerada Nas linhas 26 a 28 a instrução controlada pelo IF não é uma linha a ser gerada, e sim uma atribuição ao parâmetro &EORCK através de SET A implementação descrita não permite o uso de ninhos de IF 17

Expansão Condicional das Macros É importante entender que o teste das expressões booleanas em instruções IF ocorre no momento em que as macros são expandidas Quando o programa é montado, todas as decisões já foram tomadas Haverá apenas uma sequência de instruções no código-fonte 18

Expansão Condicional das Macros A figura a seguir usa um loop WHILE em tempo de macro WHILE especifica que as linhas seguintes, até a próxima instrução ENDW, deverão ser geradas repetidamente enquanto a condição for verdadeira Esse método de implementação não permite o uso de ninhos de WHILE 19

Expansão Condicional das Macros 20

Expansão Condicional das Macros Expansão da macro usando WHILE 21

Palavras-chaves Todas as definições de macroinstruções vistas até agora usam parâmetros posicionais, i.e, os parâmetros e argumentos são associados uns aos outros conforme a posição que ocupam no protótipo da macro e na instrução de ativação da macro Se um argumento tiver que ser omitido, a instrução de ativação da macro deverá ter um argumento nulo 22

Palavras-chaves Por exemplo, se uma macroinstrução GENER que tem 10 parâmetros possíveis, mas não determinada circunstância, apenas o 3º e o 9º devam ser especificados, temos – GENER,,DIRECT,,,,, 3. Como alternativa, temos a especificação de parâmetros usando palavras-chaves que identificam o parâmetro correspondente 23

Palavras-chaves Assim para o exemplo anterior teríamos – GENER TYPE=DIRECT, CHANNEL=3. A fig. a seguir mostra uma versão da definição de RDBUFF tendo palvras-chaves como parâmetros 24

Palavras-chaves 25

Palavras-chaves 26

Palavras-chaves 27

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