ARQUITETURA DE COMPUTADORES 1 Rogério Spindula Rosa
2 EXECUÇÃO DE PROGRAMAS
PROGRAMA 3
4
INTRODUÇÃO Hoje é raro escrever um programa diretamente em linguagem de computador em virtude da enorme dificuldade de se organizar as instruções sem erro e dos problemas de entendimento e manutenção do programa. 5
LINGUAGEM DE PROGRAMAÇÃO É uma linguagem criada para instruir um computador a realizar suas tarefas. Um programa completo é frequentemente denominado código. Codificar um algoritimo significa converter suas declarações em um comando ou instrução específico de uma certa linguagem de programação. 6
LINGUAGEM DE MÁQUINA O tipo mais primitivo é a linguagem que o computador entende diretamente, isto é, as instruções que podem ser diretamente executadas pela CPU. Um programa em linguagem de máquina é uma sequência de algarismos binários, alguns dos quais representam instruções e outros, os dados a serem manipulados. 7
8
ASSEMBLY Linguagem que representa as instruções por símbolos, e não por números 0101 ADD (Somar) Não precisa mais guardar os endereços reais de memória onde os dados e as instruções estarão armazenados. (variáveis - NOME, SALARIO) 9
Uma instrução de linguagem de máquina do tipo 1110 0100 1001 1001 ou E499 Pode ser mais facilmente entendida se representada na forma simbólica: ADD SALARIO 10
LINGUAGEM DE MONTAGEM Para se usar linguagem de montagem em um computador, é necessário que haja um meio de converter os símbolos alfabéticos utilizados no programa em código de máquina, de modo a ser compreendido pela UCP. O processo de conversão é chamado de montagem e é realizado por um programa demonimando Montador. O montador lê cada instrução em linguagem de montagem e cria uma instrução equivalente em linguagem de máquina 11
LINGUAGEM DE ALTO NÍVEL Linguagens que refletem mais os procedimentos utilizados na solução de um problema, sem a preocupação do tipo de UCP ou de memória onde o programa será executado. Nível afastado da máquina. 12
Linguage m Data Observações FORTRAN 1957 1ª linguagem de alto nível. Desenvolvida para realização de cálculos numéricos ALGOL 1958 Pesquisa e desenvolvimento COBOL 1959 1ª linguagem desenvolvida para fins comerciais BASIC 1964 Desenvolvida em Universidade, tornou-se conhecida quando do lançamento do IBM-PC, que veio com um interpretador da linguagem, escrito por Bill Gates e Paul Allen. PASCAL 1968 1ª linguagem estruturada C 1967 Linguagem para programação de sistemas operacionais e compiladores DELPHI 1994 Baseada na linguagem Object Pascal, uma versão do Pascal orientada a objetos. JAVA 1996 Desenvolvida pela SUN, sendo independente da plataforma onde é executada. 13
14
MONTAGEM É a tradução mais rápida e simples que existe, é realizada por um programa denominado montador (Assembler). A montagem é realizada para traduzir um programa em linguagem de montagem para seu equivalente em linguagem binária, executável. 15
FLUXO DO PROCESSO DE MONTAGEM 16
FUNÇÕES DO MONTADOR Substituir códigos simbólicos por valores numéricos (binário) Substituir nomes simbólicos de endereços por valores numéricos dos endereços Reservar espaço de memória para o armazenamento das instruções e dados Converter valores constantes para o código binário. Examinar cada instrução. O montador não pode gerar um código de operação de uma instrução que não existe. 17
COMPILAÇÃO Quando se pretende converter para a linguagem de máquina um programa escrito em linguagem de mais alto nível que o da liguagem de montagem, então o método utilizado se chama Compilação. 18
COMPILAÇÃO Processo de análise de um programa escrito, o programa fonte (código fonte) e sua conversão em um programa equivalente,porém descrito em linguagem binária de máquina, denominado programa objeto (ou códigoobjeto). O programa que realiza esta tarefa é denominado compilador. 19
COMPILAÇÃO É um processo semelhante ao de montagem Análise do programa-fonte Criação de tabelas auxiliares Geração do código-objeto em linguagem de máquina 20
PROCESSO DE COMPILAÇÃO 21
LIGAÇÃO OU LINKEDIÇÃO Quando um programador escreve um programa, ele não se preocupa em codificar determinadas operações, porque o código binário necessário para realizar aquelas tarefas já existe armazenado no sistema 22
LIBRARIES - BIBLIOTECAS As rotinas externas ao programa são normalmente organizadas em arquivos, que constituem diretórios específicos para cada um grupo de rotinas. Esses diretórios são denominados Bibliotecas. Uma biblioteca é uma coleção de códigos-objeto, um para cada rotina específica. Quando um programa deseja usar uma dessas rotinas, ele insere uma chamada no seu código (library call). 23
COMPILAÇÃO E LINKEDIÇÃO 24
INTERPRETAÇÃO O método de interpretação se caracteriza por realizar as fases (compilação, ligação e execução), comando a comando, do programa-fonte. O programa-fonte é diretamente executado (interpretado) por um outro programa (interpretador) e produz um resultado. Não há produtos intermediários, como código-objeto ou código executável. 25
INTERPRETAÇÃO Cada comando do código-fonte é lido pelo interpretador, é convertido em código executável e imediatamente executado, antes que o comando seguinte seja lido. 26
COMPILAÇÃO X INTERPRETAÇÃO 27
COMPILAÇÃO X INTERPRETAÇÃO Uso dos recursos de computação durante o processo de compilação e interpretação 28