Sei sulla pagina 1di 16

Organização da Aula

Arquitetura de Von Newmann


Instruções de Computador
Linguagem de Máquina e de Alto Nível
Interpretadores e Compiladores
Linguagem Java
Algoritmos
Primeiros Programas em Java

2
Arquitetura de Von Newmann
John Von Newmann propôs que as instruções, lidas na época por cartões
perfurados, fossem gravadas na memória do computador; o que faria sua
execução e leitura mais rápidas, uma vez que se davam eletronicamente
Arquitetura proposta por Von Newmann: Década de 40
Computador composto por basicamente três subsistemas:
CPU (Unidade Central de Processamento)
Unidade de Memória Principal
Unidades de Entrada e Saída
Apesar das mudanças na Informática nos últimos tempos, grande parte dos
computadores ainda segue a arquitetura de Von Newmann

3
Arquitetura de Von Newmann
Esquema simplificado da Arquitetura de Von Newmann

Unidade de Memória
Principal

CPU

Unidade de
Dispositivo de Entrada Controle Dispositivo de Saída

Unidade de Lógica
e Aritmética

CPU também é composta por um conjunto de registradores

4
Arquitetura de Von Newmann
Unidade de Controle: Identifica e decodifica as instruções, acionando a unidade
responsável pela sua execução
Unidade de Aritmética e Lógica: Executa as operações que são do tipo de
aritmética e lógica
Unidade de Memória Principal (RAM): Armazena o programa (instruções) e seus
respectivos dados. O programa e os dados estão na memória no momento da
execução
Unidades de Entrada: Transferem informações externas a máquina para a
Unidade de Memória Principal
Teclado, leitor óptico
Mouse
Unidades de Saída: Exibem informações que se encontram na Unidade de
Memória Principal
Monitor de vídeo
Impressora

5
Instruções de Computador
O que são instruções de computador

Instrução é uma regra que indica ao computador quais os dados a serem


operados e qual a operação a ser realizada
Exemplos:
load Programa em linguagem de Máquina
store
load $(r2), r1
add load $(r3), r4
compare_equal add r1, r4
store $(r2), r1
jump

A CPU, então, executa alguns passos para que cada uma das instruções seja
corretamente efetuada

6
Instruções de Computador
Basicamente, as etapas para o processamento de uma instrução passa pelos
seguintes passos:

Unidade de controle busca uma instrução na memória


Unidade de controle decodifica uma instrução, definindo as posições de
memória para a sua execução
Unidade de Controle transfere os dados para a Unidade de Aritmética e
Lógica no caso de operações de lógica e aritmética
A Unidade de Aritmética e Lógica executa a operação sobre os dados e o
resultado é armazenado em memória

7
Linguagens de Máquina e
de Alto Nível
Conhecendo o conjunto de instruções do computador, podemos então passar
para ele um programa que desejamos executar
Máquinas não entendem a nossa linguagem
Como podemos passar as instruções para a máquina
Através de linguagens de programação de alto nível

Linguagem de Máquina Tipo mais primitivo de linguagem. É a


linguagem que o computador entende

Tipo de linguagem criada para facilitar


Linguagem de Programação de a comunicação com a máquina. Deve
Alto Nível ser traduzida em uma linguagem de
máquina

8
Linguagens de Máquina e
de Alto Nível
Diversas linguagens de programação de alto nível
C, C++, Java, Pascal, Delphi, Python, Cobol

Idéia final: Escrever programas usando linguagens de programação de alto nível


(onde um código fonte é criado) que são traduzidos para linguagem de máquina

Dois principais processos de tradução de linguagem de programação de alto


nível para linguagem de máquina são:

Compilação
Interpretação

9
Interpretação
Um interpretador é um programa que recebe como entrada um arquivo
contendo um código fonte
Um interpretador lê linha-a-linha desse arquivo de entrada e executa uma a uma
as instruções que estão neles programadas
Interpretador pega uma instrução em linguagem de alto nível e a transforma
em uma ou mais instruções em linguagem de máquina
Tradução é feita no momento da execução do programa

Interpretador Execução

Código Fonte
Exemplo: teste.py

10
Interpretação
Programa pode ser executado em qualquer máquina, desde que haja um
interpretador disponível para utilização naquela Arquitetura de Computador

Pode-se perceber que a execução de programas interpretados é ligeiramente


mais lenta, pois para cada nova linha do programa uma nova instrução deve ser
decodifica e executada

Se houver erros no código que vá contra as definições da linguagem, o programa


será interrompido abruptamente com um erro
Característica ruim para programas grandes

Exemplos: JavaScript, Phyton, Perl e Basic

11
Compilação
Um compilador é um programa ou um conjunto de programas que recebe como
entrada um programa fonte e cria um novo arquivo como saída
Compilador não executa um programa

O arquivo de entrada é o código fonte escrito pelo programador em linguagem


de programação de alto nível

Arquivo produzido pelo compilador é normalmente indentificado pelo código


objeto
Código objeto contem instruções de baixo nível já traduzidas para linguagem
de máquina
Código objeto produzido pelo compilador não é portável entre diferentes
Arquiteturas de Computadores

12
Compilação
Diferentes compiladores são produzidos para diferentes Arquiteturas de
Computadores
Isso porque normalemnte elas possuem um conjunto de instruções diferente
entre si
O compilador somente gera corretamente o código objeto caso não tenha
encontrado um erro de compilação

010100010110
101010101010
010101001110
Compilador Execução
110100101010
010101010101
010101010011

Código Fonte Código Objeto


Exemplo: teste.c

Exemplos: Compiladores C e Pascal

13
Linguagem Java
Java é uma linguagem compilada
Compilador javac
O compilador Java, entretanto, não gera código para um processador específico,
mas sim para uma Máquina Virtual Java
Código objeto é chamado de bytecode
Código fonte tem extensão .java
Código objeto tem extensão .class

010100010110
101010101010
010101001110 Máquina Virtual
Compilador Javac Execução
110100101010 Java (JVM)
010101010101
010101010011

Código Fonte Código Objeto


Exemplo: teste.java Bytecode
Exemplo: teste.class

14
Linguagem Java
Os programas escritos em Java são portáveis sobre todos os computadore sobre
os quais existir uma implementação da JVM

Java possui tanto características positivas das linguagens compiladas


Uma vez que a execução de um programa não corre o risco de ser abortada
devido a um erro de sintaxe em seu código

Quanto características positivas de linguagens interpretadas


Uma vez que executa sobre uma máquina virtual que tem um
comportamento semelhante a de um interpretador

15
Algoritmo
Um algoritmo é uma seqüência finita de passos que podem ser seguidos para
alcançar um objetivo
Para ordenar o computador a realizar uma determinada tarefa, o algoritmo é
descrito em uma linguagem de programação
Assim, o algoritmo é escrito na forma de um código fonte e depois é interpretado
ou compilado
Exemplos de algoritmo: Vir para a UNISINOS, fazer um bolo, comprar comida,
verificar se um número é primo ou não
Estruturas de controle

Seqüênciais - Cálculos, leitura de variáveis, chamada de métodos

Seleção - Utilizada quando se deseja tomar um determinado caminho


em detrimento de outro ou de outros

Repetição - Utilizada para a implementação de laços. Usada para


realizar várias vezes uma determinada tarefa

16
Algoritmo
Formas de representação de um algoritmo: Fluxograma

Início

Ir até o Açougue

Não Açougue Sim


Escolher carne fechado Comer Massa Miojo

Carne Sim
ruim

Não

Comer carne Fim

17

Potrebbero piacerti anche