Laboratório I Mateus Raeder Material baseado nos originais da

Slides:



Advertisements
Apresentações semelhantes
Introdução à Programação: uma Abordagem Funcional PD I – Engenharia Elétrica Prof.ª Claudia Boeres 2008/2.
Advertisements

Arquitetura de Computadores
Introdução à Ciência da Computação Linguagens de Programação.
Marco Antonio Montebello Júnior
Arquitetura e organização de computadores.
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 32 Departamento de Informática Centro.
Linguagem de Montagem Visão geral.
Arquitetura de Computadores
Arquitetura de Computadores
INTRODUÇÃO À PROGRAMAÇÃO
Sistemas Operacionais
Professor: Erivelto Tschoeke – UDESC/CEPLAN
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Esquema básico do hardware
Princípios de funcionamento
Prof. Msc. Raul Paradeda Aula 2 Introdução
Algoritmos Prof. Kelly E. Medeiros.
Professor Fernando Luís
JAVA: Conceitos Iniciais
Computadores Tipos e estrutura interna
História do Computador Desde os idos tempos da humanidade os seres humanos procuram relacionar quantidades. Supõe-se que as primeiras tentativas de contagens.
PROGRAMAÇÃO I UNIDADE 1.
ENGENHARIA DE AUTOMAÇÃO INDUSTRIAL
PCI- Introdução à Computação
Desenvolvimento de Jogos e Entretenimento Digital
Algoritmos e Programação de Computadores
Sistemas Operacionais I
Inteligência Artificial
Organização e Arquitetura de Computadores
Desenvolvimento Web Lógica de Programação
Processamento de dados na UCP e memória UCP
02/08/2011 Professor Leomir J. Borba- –

Arquitetura de Computadores
Geração de Código aula-12-geração-de-código.pdf.
Execução de programas Cap. VIII.
Técnicas de Programação - TPR
Projeto de Linguagens de Programação
Introdução à INFORMÁTICA
Conceitos Básicos de Informática
Algoritmos e Estrutura de Dados I
Algoritmos e Programação I
Fundamentos de linguagens de programação
Software Básico Introdução à Organização de Computadores Capítulo 1 Mitsuo Takaki
Laboratório I Mateus Raeder. Mateus Raeder – março de 2010 Tipos de erro  No processo de desenvolvimento de um programa em Java podem ocorrer alguns.
Algoritmos e Programação MC102
Introdução à Computação Componentes Básicos dos Computadores
Arquitetura de Computadores
Algoritmos e Programação I
SISTEMAS DE INFORMAÇÃO
Introdução a linguagem de Programação Java. Linguagens de Programação Linguagens de máquina(muito difíceis de usar e compreender) – Comanda ações do computador.
Programação II Prof.ª Claudia Boeres CT IX - Sala 201 Departamento de Informática Centro Tecnológico Universidade Federal do Espírito.
Arquitetura de Microcomputadores
Introdução à lógica de programação
Curso Engenharia Química Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores.
Introdução à Programação
Arquitetura de computadores
Introdução à Computação
Algoritmo e Estrutura de Dados I Introdução ao conceito de algoritmo Márcia Marra
Apresentação Objetivo: –Apresentação e revisão de conceitos básicos –Discussão da noção de algoritmo –Escopo da linguagem de programação –Exercício com.
Princípios Básicos de Utilização do Computador
ARQUITETURA DE VON NEUMANN
Disciplina: Lógica de Programação
Influencias sobre o Projeto da Linguagem
Sistemas Operacionais Arquitetura de Computadores
LÓGICA DE PROGRAMAÇÃO Curso: Técnico em Informática Professor: Ronaldo Disciplina: Lógica de Programação.
Pet computação UFPE Arquitetura Von Neumann. pet computação UFPE 1.Definição e tipos de arquitetura Quando falamos em arquitetura temos dois tipos a considerar:
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Alessandro D. R. Fazenda
Transcrição da apresentação:

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

Arquitetura de Von Neumann Introdução Arquitetura de Von Neumann 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 Mateus Raeder – março de 2010

Arquitetura de Von Neumann CPU Unidade Aritmética e Lógica Unidade de Controle Entrada e Saída Memória Principal Arquitetura de Von Neumann Mateus Raeder – março de 2010

Arquitetura de Von Neumann Mas o que é uma instrução? 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) 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 = 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 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? Tipo mais primitivo de linguagem. É a linguagem que o computador entende. Linguagem de máquina Tipo de linguagem criada para facilitar a comunicação com a máquina. Deve ser traduzida em linguagem de máquina. Linguagem de programação de alto nível 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 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 Interpretador Execução Programa fonte Exemplo: teste.py 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 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 Mateus Raeder – março de 2010

Processo de Compilação 010011100110011101001011000111101010110011001001 Compilador Arquitetura Execução Programa fonte Programa objeto Exemplo: teste.c 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 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) 010011100110011101001011000111101010110011001001 Máquina Virtual Java (JVM) Compilador javac Execução Programa fonte Programa objeto (bytecode) Exemplo: teste.java Exemplo: teste.class 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 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 Mateus Raeder – março de 2010

Exemplos de algoritmos do dia-a-dia: vir para a Unisinos escovar os dentes comprar comida outros? Mateus Raeder – março de 2010

Algoritmo Formas de representação de um algoritmo: FLUXOGRAMA Início Ir até o açougue Açougue fechado? sim não Escolher carne Comer miojo não Carne ruim? sim Comprar carne 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 se a carne não está ruim então compro a carne Mateus Raeder – março de 2010