Programação de Computadores I BCC 701. Introdução



Documentos relacionados
Organização de Computadores

INTRODUÇÃO À PROGRAMAÇÃO BCC 201 TURMAS 31, 32 E AULA TEÓRICA 2 PROF. MARCELO LUIZ SILVA (R E D)

1.1. Organização de um Sistema Computacional

Sistema de Computação

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Programação de Computadores

3. Arquitetura Básica do Computador

Introdução à Programação 2006/07. Computadores e Programação

Figura 1 - O computador

Introdução à Arquitetura de Computadores

ARQUITETURA DE COMPUTADORES

Contextualização: Sistemas de Computação

LÓGICA DE PROGRAMAÇÃO

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

Estrutura de um Computador. Linguagem de Programação Rone Ilídio UFSJ - CAP

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br


Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Memória principal; Unidade de Controle U C P. Unidade Lógica e Aritmética

Microprocessadores. Prof. Leonardo Barreto Campos 1

Capítulo 1 Introdução

Sistemas Numéricos bit / Byte BIT BYTE. Prof. Celso Candido ADS / REDES / ENGENHARIA

Arquitetura e Organização de Computadores Introdução à Organização do Computador

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Aula 01 Introdução à Informática. Prof. Bruno Gomes

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

O modelo do computador

Organização Básica do Computador

1. NÍVEL CONVENCIONAL DE MÁQUINA

1 - Processamento de dados

Lição 1 Introdução à programação de computadores

ALP Algoritmos e Programação. . Linguagens para Computadores

Curso de Hardware Aula 01 Tema: Sistema de Medidas Por: Edmilson de Oliveira Reis Revisado em: 02/03/2012

ULA Sinais de Controle enviados pela UC

Introdução à Informática

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Princípios de funcionamento dos computadores

ISL - Introdução. Sistema. Binário. Introdução. Tipos de Computador. Sub title text goes here. Unused Section Space 2. Unused Section Space 1

Componentes do Computador e. aula 3. Profa. Débora Matos

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias

Introdução aos Computadores

Algoritmos e Programação I

ARQUITETURA DE COMPUTADORES

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 1

AULA 01 CONCEITOS BÁSICOS DE PROGRAMAÇÃO. Eduardo Camargo de Siqueira INFORMÁTICA APLICADA TÉCNICO EM ELETRÔNICA

Aula 2 Modelo Simplificado de Computador

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

INFORMÁTICA HISTÓRIA DA INFORMÁTICA 1º PD PROFESSOR

Informática Instrumental Aula 1. Prof. Msc. Fernando Nakayama de Queiroz

Algoritmos e Linguagem de Programação de Computadores I

Organização de Computadores Hardware

Tecnologia da Informação. Prof Odilon Zappe Jr

Fundamentos de Sistemas de Informação Hardware: Dispositivos de Entrada, Processamento e Saída

Tecnologia e Sistemas de Informações Administração dos Recursos de Hardware e Software

Gerações de Computadores. INF005 - Arquitetura de Computadores e Software Básico Aula 3 Flávia Maristela (flavia@flaviamaristela.

Infra-Estrutura de Hardware

Introdução à Lógica de Programação

COMPUTADOR SIMPLIFICADO E COMPUTADOR DIGITAL. Algoritmos e Programação APG0001

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Introdução à Computação: Arquitetura von Neumann

Introdução a Ciência da Computação Conceitos Básicos de Sistema PROFESSORA CINTIA CAETANO

3. O NIVEL DA LINGUAGEM DE MONTAGEM

Processamento de dados - Aula I

Curso EFA Técnico/a de Informática - Sistemas. Óbidos

AULA 01 INTRODUÇÃO. Eduardo Camargo de Siqueira CIRCUITOS DIGITAIS Engenharia de Computação

Organização e Arquitetura de Computadores I. de Computadores

Informática, Internet e Multimídia

MC-102 Aula 01. Instituto de Computação Unicamp

Organização de Computadores

Estrutura de um Computador

BARRAMENTO DO SISTEMA

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE

Máquinas Multiníveis

Componentes de um computador típico

Sistemas Computacionais II Professor Frederico Sauer

Introdução à Programação e Algoritmos. Aécio Costa

Andrique Amorim INTRODUÇÃO A INFORMÁTICA

INFORMÁTICA BÁSICA. Prof. Rafael Zimmermann

Estrutura geral de um computador

Resolução de problemas e desenvolvimento de algoritmos

Aula 26: Arquiteturas RISC vs. CISC

Processamento de Dados

INTRODUÇÃO À COMPUTAÇÃO

Informática I. Aula 5. Aula 5-13/05/2006 1

Arquitetura de Computadores. por Helcio Wagner da Silva

ARQUITETURA DE COMPUTADORES

PRONATEC FUNDAMENTOS DE HARDWARE. Prof. Kilmer Pereira

Histórico da Evolução dos Computadores

ARQUITETURA DE COMPUTADORES

Conceitos e Evolução Capítulos 1 e 2

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa

5 Entrada e Saída de Dados:

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE

- Aula 1 - ARQUITETURA DE COMPUTADORES

Informática. Prof. Macêdo Firmino. Macêdo Firmino (IFRN) Informática Setembro de / 25

Transcrição:

Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Programação de Computadores I BCC 701 Introdução 2012-01 PROF. MARCELO LUIZ SILVA (R E D)

Introdução Os computadores (denominados hardware) são controlados por software, isto é, os programas que escrevemos para instruir ao computador a realizar ações e tomar decisões;

Introdução O uso de computadores aumenta em quase todos os campos de trabalho; Os custos de computação têm diminuído radicalmente por causa do rápido desenvolvimento em tecnologia de hardware e software; Os computadores que ocupavam grandes salas e custavam milhões de dólares há algumas décadas, agora podem ser gravados em chips de silício menores que uma unha, ao custo de apenas alguns poucos dólares.

Introdução Mainframes: grandes computadores utilizados em órgãos governamentais, indústria, etc; Silício: um dos materiais mais abundantes na terra um ingrediente da areia comum; Metodologia de programação que utilizaremos: Estruturada.

O que é um Computador? Um computador é um dispositivo capaz de realizar computações e tomar decisões lógicas milhões (e até bilhões) de vezes mais rapidamente que o homem; Muitos computadores realizam um bilhão de adições por segundo; Os computadores processam dados sob o controle de conjuntos de instruções chamados programas de computador.

O que é um Computador? Esses programas orientam o computador por meio de conjuntos ordenados de ações especificadas por pessoas chamadas programadores de computador; Um computador consiste de vários dispositivos referidos como hardware: o teclado, o mouse, o monitor, o disco rígido (Hard Disk), a memória, os DVDs e as unidades de processamento; Os programas que executam em um computador são referidos como software.

Organização do Computador Praticamente, todos os computadores podem ser considerados como divididos em seis unidades lógicas (ou seções): 1) Unidade de Entrada Esta é a seção receptora do computador. Ela obtém informações (dados e programas de computador) de dispositivos de entrada e coloca essas informações à disposição das outras unidades para o processamento;

Organização do Computador A maioria das informações é inserida em computadores por meio de dispositivos de entrada, como teclados e mouse; As informações também podem ser inseridas de muitas outras maneiras, incluindo falar com seu computador, digitalizar imagens, redes sem fio (bluetooth) e fazer seu computador receber informações de uma rede, como a Internet.

Organização do Computador 2) Unidade de Saída Esta é a seção de envio do computador; Ela pega as informações que o computador processou e as coloca em vários dispositivos de saída para tornar as informações disponíveis à utilização fora do computador; A maioria das informações enviadas para a saída de computadores é exibida em telas, impressas em papel ou utilizadas para controlar outros dispositivos. Os computadores também podem gerar saída de suas informações para redes, como a Internet.

Organização do Computador 3) Unidade de Memória Esta é a seção de armazenamento de relativamente baixa capacidade e rápido acesso do computador; Ela armazena programas de computador enquanto estão sendo executados; Ela retém informações que foram inseridas pela unidade de entrada, para se tornarem imediatamente disponíveis para o processamento quando necessário.

Organização do Computador A unidade de memória também retém informações processadas até que elas possam ser colocadas em dispositivos de saída pela unidade de saída; As informações na unidade de memória são, em geral, perdidas quando o computador é desligado; A unidade de memória costuma ser chamada de memória ou memória principal.

Organização do Computador 4) Unidade de Aritmética e Lógica (ULA) (ALU Arithmetic and Logic Unit) Esta é a seção de produção do computador. Ela é responsável pela realização de cálculos, como adição, subtração, multiplicação e divisão; Contém os mecanismos de decisão que permitem ao computador, por exemplo, comparar dois itens da unidade de memória para determinar se são iguais ou não.

Organização do Computador 5) Unidade Central de Processamento (CPU Central Processing Unit) Esta é a seção administrativa do computador. Ela coordena e supervisiona a operação das outras seções; A CPU diz à unidade de entrada quando as informações devem se lidas e transferidas para a unidade de memória, informa à ALU quando as informações da unidade de memória devem ser utilizadas em cálculos e instrui a unidade de saída sobre quando enviar as informações da unidade de memória para certos dispositivos de saída;

Organização do Computador Muitos computadores de hoje têm múltiplas CPUs e, portanto, podem realizar muitas operações simultaneamente esses computadores são chamados de multiprocessadores.

Organização do Computador 6) Unidade de Armazenamento Secundária Esta é a seção de armazenamento de alta capacidade e longo prazo do computador; Programas ou dados que não são utilizados ativamente pelas outras unidades, em geral, são colocados em dispositivos de armazenamento secundário, como as unidades de disco, até que sejam novamente necessários, possivelmente horas, dias, meses ou mesmo anos mais tarde;

Organização do Computador As informações no armazenamento secundário exigem muito mais tempo para serem acessadas do que as informações na memória principal, mas o custo por unidade de armazenamento secundário é muito menor que o da memória principal; Outros dispositivos de armazenamento secundário incluem CDs e DVDs, que podem armazenar centenas de milhões de caracteres e bilhões de caracteres respectivamente.

Você Não Pode Dormir Sem Saber... Sabe-se que os programas e dados são executados na memória RAM de um PC... Então... Como um filme (DVD) de 8 Giga Bytes pode ser executado em um PC com 2 Giga Bytes de RAM?

Arquitetura Simplificada de um Computador modelo de Von Neumann Dispositivo C P U RAM Entrada Saída Barramento

Linguagens Os programadores escrevem instruções em várias Linguagens de Programação, algumas diretamente compreensíveis por computadores e outras requerendo passos intermediários de tradução; Três tipos gerais de Linguagnes de Programação: 1) Linguagem de Máquina 2) Linguagem Assembly 3) Linguagem de Alto Nível

Linguagem de Máquina Qualquer computador pode entender diretamente somente sua própria Linguagem de Máquina (código objeto); A LM é a linguagem natural de um computador e como tal é definida pelo seu design de hardware; As LM consistem geralmente em strings de números (em última instância reduzidas a 0 s e 1 s) que instruem os computadores a realizar suas operações mais elementares, uma de cada vez;

As LM são dependentes de máquina, isto é, uma linguagem particular de máquina pode ser utilizada apenas em um tipo de computador; A LM é muito complexa para o ser humano, por exemplo, um programa que soma o ganho em horas extras ao salário base e armazena o resultado no salário bruto: +1300042774 +1400593419 +1200274027 Linguagem de Máquina

Linguagem de Máquina e Assembly A progamação em LM é lenta, tediosa e propensa ao erro; Os programadores trocaram as strings de números (que os computadores entendem) por abreviações em inglês (mnemônicos) para representar operações elementares; Essas abreviações formaram a base da Linguagem Assembly; Um Programa Tradutor, assembler, converte automaticamente um programa em LM para LA;

Linguagem de Máquina e Assembly Tradução de LM para LA do programa que soma o ganho em horas extras ao salário base e armazena o resultado no salário bruto: +1300042774 +1400593419 +1200274027 load add Store basepay overpay grosspay A LA possui um código mais claro para o ser humano, mas até que seja traduzida em LM ela é incompreensível para o computador.

Linguagem de Alto Nível O uso de computadores aumentou rapidamente com o uso das linguagens assembly, mas os programadores tinhas que utilizar muitas instruções para realizar tarefas simples; Para acelerar o processo de programação foram desenvolvidas as Linguagens de Alto Nível, em que instruções únicas poderiam ser escritas para realizar tarefas substanciais; Os programas tradutores chamados Compiladores convertem os programas em linguagem de alto nível para LM;

Linguagem de Alto Nível As Linguagens de alto Nível permitem aos programadores escreverem instruções que se parecem com o inglês cotidiano e contêm notações matemáticas comumente utilizados; Voltemos ao nosso exemplo: +1300042774 +1400593419 +1200274027 load add Store basepay overpay grosspay grosspay = basepay + overtimepay;

Compilação O processo de compilação de um programa em Linguagem de alto Nível em LM pode consumir uma quantidade considerável de tempo de processamento; O programa Compilador foi desenvolvido para traduzir completamente um programa em linguagem de alto nível em um programa em LM; Após a tradução completa, o compilador executa todo o programa traduzido, obtendo rapidez no processamento;

Compilação O programa Interpretador foi desenvolvido para executar diretamente um programa em linguagem de alto nível; O interpretador traduz cada instrução em alto nível para baixo nível, em seguida a executa, e repete o processo até o término da tarefa; Este processo é muito mais lento que a compilação; Entretanto, os interpretadores são populares em ambiente de desenvolvimento de programas em que novos recursos são adicionados, e os erros, corrigidos. Quando eliminados os erros, pode-se produzir a versão copilada do aplicativo.

Linguagem Binária Os computadores são máquinas eletrônicas. Essencialmente, tudo que fazem envolve chaveamentos elétricos (on/off); O conceito binário expressa dois estados. No caso de computadores, os dois estados são on e off; Para representar qualquer dado se usam strings de on s e off s, ou seja de 1 s e 0 s, por exemplo, 10100001.

Usos Hipotéticos - Linguagem Binária Códigos Binários para as Operações Aritméticas Código Bínário (instrução) Operação Aritmética 00 Soma 01 Subtração 10 Multiplicação 11 Divisão

Usos Hipotéticos - Linguagem Binária Códigos Binários para as Letras do Alfabeto

Usos Hipotéticos - Linguagem Binária Códigos Binários para as Letras do Alfabeto A palavra CADA corresponde a: 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0

Bit - Byte Em computação, os bytes são formados por grupos de oito bits (1 s e 0 s); O número oito permite que um byte armazene um caractere, que é qualquer letra, dígito ou outro símbolo que possa ser digitado no teclado; Oito bits permitem 256 combinações (2 8 = 256), suficientes para letras minúsculas (a z), maiúsculas (A Z), dígitos (0 9), símbolos especiais (% $ # @) e aspas ( ); Até o espaço em branco é um caractere;

Bit - Byte Os computadores usam o sistema binário, logo são adequados para trabalhar com números que são potências de 2; Por esta razão os computadores tem a memória expressa em 256, 512, 1024, etc, e não em 250, 500, 1000, etc.

Terminologia para tamanhos de Bytes

Em 1936, um trabalho teórico não implementado em hardware, influenciou o campo da Ciência da Computação. O matemático Alan M. Turing inventou uma máquina abstrata chamada de a Máquina de Turing, que fundamentou a área da Teoria da Computação.

Segunda Guerra Mundial

Máquina de Pascal 19 anos de idade!

Comunicação de Algoritmos através de Furos em Papel 1801 - Joseph Jacguard - França

Konrad Zuze (1910-1995) - primeiro computador digital programável de propósito geral

MARK I - Harward University 1944 Howard Aiken e um grupo de engenheiros da IBM

Máquina de Atanasoff-Berry - (1937-1941) Iowa State College

COLOSSUS construída na Inglaterra para decodificar mensagens alemãs durante a última parte da II Guerra Mundial.

ENIAC - Electronic Numerical Integrator and Calculator John Mauchly e J. Presper Eckert - Moore School of Electrical Engeneering (Universidade da Pensilvânia - EUA)

von NeuMann

von NeuMann