laboratório i

18
Laboratório I Mateus Raeder Material baseado nos originais da Profa. Denise Bandeira e do Prof. Aníbal P. Cardoso

Upload: george-keith

Post on 03-Jan-2016

14 views

Category:

Documents


0 download

DESCRIPTION

Laboratório I. Mateus Raeder. Material baseado nos originais da Profa. Denise Bandeira e do Prof. Aníbal P. Cardoso. Apesar das mudanças na informática nas últimas décadas, grande parte dos computadores ainda segue a arquitetura de Von Neumann - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Laboratório I

Laboratório I

Mateus Raeder

Material baseado nos originais da Profa. Denise Bandeira e do Prof. Aníbal P. Cardoso

Page 2: Laboratório I

Mateus Raeder – março de 2010

Introdução

Apesar das mudanças na informática nas últimas décadas, grande parte dos computadores ainda segue a arquitetura de Von Neumann

Esta arquitetura foi proposta por Neumann (John Von Neumann) na década de 40

Composto por basicamente 3 subsistemas: CPU, Unidade de Memória Principal (RAM) e Unidades de Entrada/Saída

Arquitetura de Von Neumann

Page 3: Laboratório I

Mateus Raeder – março de 2010

Arquitetura de Von Neumann

CPU

Entradae Saída Memória Principal

Unidade de Controle

UnidadeAritmética e Lógica

Arquitetura de Von Neumann

Page 4: Laboratório I

Mateus Raeder – março de 2010

Arquitetura de Von Neumann

Unidade de Controle: identifica e decodifica as instruções, acionando a unidade responsável pela sua execução

Unidade Aritmética e Lógica: executa as operações lógicas e aritméticas

Unidade de Memória Principal (RAM - Random Access Memory): armazena o programa e seus respectivos dados. O programa e os dados devem estar na memória RAM no momento da execução.

Unidades de Entrada: transferem informações externas à máquina para a Unidade de Memória Principal (por exemplo, mouse, scanner, teclado, webcam, microfone)

Unidades de Saída: exibem as informações que encontram-se guardadas na Unidade de Memória Principal através de algum meio que seja legível aos seres humanos (por exemplo, monitor de vídeo, caixas de som, impressora)

Mas o que é uma instrução?

Page 5: Laboratório I

Mateus Raeder – março de 2010

Instruções

Mas o que é uma instrução?

Instrução (ou comando) é uma regra que vai indicar ao computador quais os dados a serem operados e qual a operação a ser realizada.

Por exemplo:

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

7 – 5 =

Page 6: Laboratório I

Mateus Raeder – março de 2010

Instruções – etapas de processamento

As etapas para o processamento de uma instrução são (basicamente):

A Unidade de Controle busca a instrução na memória

A Unidade de Controle decodifica a instrução, definindo as posições de memória necessárias para sua execução

A Unidade de Controle transfere os dados para a Unidade Aritmética e Lógica

A Unidade Aritmética e Lógica executa as operações sobre os dados e o resultado é armazenado na memória

Page 7: Laboratório I

Mateus Raeder – março de 2010

Linguagem de Máquina x Linguagem de Alto Nível

Podemos, então, passar para a máquina o conjunto de instruções que desejamos que sejam executadas

Porém, a máquina não entende a nossa linguagem

Então, como passamos estas instruções para a máquina?

Linguagem de máquina

Linguagem de programação de alto nível

Tipo mais primitivo de linguagem. É a linguagem que o computador entende.

Tipo de linguagem criada para facilitar a comunicação com a máquina. Deve ser traduzida em linguagem de máquina.

Page 8: Laboratório I

Mateus Raeder – março de 2010

Processos de tradução

Existem diversas linguagens de programação de alto nível. Por exemplo: C, C++, Java, Pascal, Delphi, etc.

Os programas de computador são, então, escritos utilizando uma linguagem de programação de alto nível (na qual um código ou programa fonte é criado) e são traduzidos para a linguagem de máquina

Os 2 principais processos que traduzem programas escritos em uma linguagem de alto nível para a linguagem de máquina são interpretação e compilação

Page 9: Laboratório I

Mateus Raeder – março de 2010

Processo de Interpretação

Um interpretador é um programa que recebe como entrada um arquivo contendo um programa fonte

O interpretador lê linha a linha este arquivo de entrada, e executa uma a uma as instruções que estão nele programadas

ExecuçãoInterpretador

Programa fonteExemplo: teste.py

Page 10: Laboratório I

Mateus Raeder – março de 2010

Processo de Interpretação

Um programa pode ser executado em qualquer máquina, desde que haja o interpretador disponível para utilização

Porém, pode-se perceber que a execução de um programa que utiliza um interpretador é relativamente lenta, pois a cada nova linha lida no programa fonte, esta deve ser decodificada antes de ser executada

Se houver algum erro de no código (que vá contra as definições da linguagem), o programa será interrompido abruptamente com um erro

Page 11: Laboratório I

Mateus Raeder – março de 2010

Processo de 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

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

O arquivo que o compilador produz, é normalmente identificado como código objeto

Este código objeto contém instruções de baixo nível, traduzidas para a linguagem de máquina

Page 12: Laboratório I

Mateus Raeder – março de 2010

Processo de Compilação

Compilador

Programa fonteExemplo: teste.c

010011100110011101001011000111101010110011001001

Programa objeto

Arquitetura Execução

O código produzido não é portável para qualquer arquitetura

Diferentes compiladores são construídos para as diferentes arquiteturas de processadores (diferentes famílias de processadores possuem conjuntos diferentes de instruções)

O compilador somente gera corretamente o código objeto caso não tenha encontrado um erro de compilação

Page 13: Laboratório I

Mateus Raeder – março de 2010

Linguagem Java

Java é uma linguagem compilada

O compilador Java, entretanto, não gera código para um processador específico, mas sim para uma máquina virtual Java (a JVM - Java Virtual Machine)

Compiladorjavac

Programa fonteExemplo: teste.java

010011100110011101001011000111101010110011001001

Programa objeto (bytecode)

Máquina Virtual Java

(JVM)Execução

Exemplo: teste.class

Page 14: Laboratório I

Mateus Raeder – março de 2010

Linguagem Java

Os programas escritos em Java são, portanto, portáveis sobre todos os computadores para os quais existir uma implementação da JVM

Desta forma, Java possui tanto beneficios característicos 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 no seu código

quanto das linguagens interpretadas

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

Page 15: Laboratório I

Mateus Raeder – março de 2010

Algoritmo

Um algoritmo é uma sequência de passos finita, que devem ser seguidos para alcançar algum objetivo

Para ordenar ao computador que realize uma determinada tarefa, um algoritmo é descrito em uma linguagem de programação

Este algoritmo é, então, compilado (ou interpretado) e executado

Page 16: Laboratório I

Mateus Raeder – março de 2010

Algoritmo

Exemplos de algoritmos do dia-a-dia:

- vir para a Unisinos

- escovar os dentes

- comprar comida

- outros?

Page 17: Laboratório I

Mateus Raeder – março de 2010

Algoritmo

Formas de representação de um algoritmo: FLUXOGRAMA

Ir até o açougue

Açougue fechado?

Escolher carne

Carneruim?

Comer miojo

Comprar carnenão

sim

sim

não

Início

Page 18: Laboratório I

Mateus Raeder – março de 2010

Algoritmo

Formas de representação de um algoritmo: PORTUGUÊS ESTRUTURADO

se quero comprar carne

então vou ao açougue

se o açougue está fechado então vou comer miojo

se o açougue não está fechado então vou escolher a carne

se a carne está ruim então vou comer miojo

se a carne não está ruim então compro a carne