Você está na página 1de 46

PROGRAMAÇÃO DE

COMPUTADORES I:
Introdução à Ciência da
Computação

Galeno J. de Sena
UNESP / Guaratinguetá / Brazil
(gsena@feg.unesp.br)
(gsenaunesp@gmail.com)

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Introdução à Computação: Gerações de
Computadores
Primeira Geração:
 Os primeiros computadores utilizavam circuitos
eletromecânicos e válvulas;
 Primeiro computador digital eletrônico
(1946): ENIAC ("Eletronic Numerical Integrator
and Calculator"):
 19000 válvulas, 1500 reles, resistores, capacitores e
indutores (potência de 200 KW);
 Memória: 20 números de 10 dígitos cada um;

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Introdução à Computação: Gerações de
Computadores
Primeira Geração:
 Primeiro computador digital eletrônico (1946):
ENIAC ("Eletronic Numerical Integrator and
Calculator"):
 Programação: conexão de tomadas através de fios e
pinos;
 Apenas os dados eram armazenados na memória.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Introdução à Computação: Gerações de
Computadores
ENIAC ("Eletronic Numerical Integrator and Calculator"):

Desenvolvedores: cientistas norte-


americanos John Eckert e John Mauchly
da Electronic Control Company (fonte:
http://abcinformatica.wordpress.com/2011/
02/01/o-que-e-o-eniac/ )

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Introdução à Computação: Gerações de
Computadores
ENIAC ("Eletronic Numerical Integrator and Calculator"):

Figura - Painel lateral: ENIAC (fonte: http://abcinformatica.wordpress.com/2011/02/01/o-que-


e-o-eniac/ )

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Introdução à Computação: Gerações de
Computadores
ENIAC ("Eletronic Numerical Integrator and Calculator"):

Lei de Moore que diz: “A


cada 18 a 24 meses é
lançada uma nova
tecnologia que permite que
os computadores
dupliquem o desempenho”
(fonte:
http://abcinformatica.wordpress.com/20
11/02/01/o-que-e-o-eniac/).

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Gerações de computadores

Primeira Geração:

 Introduziu-se o conceito de programa


armazenado (Von Neumann, 1946):
armazenamento em memória (temporariamente)
tanto os dados como o programa:
 Conceito influenciou a arquitetura dos computadores
construído nos anos seguintes (até os dias atuais):
arquitetura de Von Neumann;

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Introdução à Computação: Gerações de
Computadores

John von Neumann: matemático húngaro de


etnia judaica, naturalizado estadunidense (fonte:
http://pt.wikipedia.org/wiki/John_von_Neumann)

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Gerações de computadores

Primeira Geração:

 Introduziu-se o conceito de programa


armazenado (Von Neumann, 1946):
armazenamento em memória (temporariamente)
tanto os dados como o programa:
 EDVAC ("Eletronic Discrete Variable Automatic
Computer"): primeira máquina baseada nesta proposta
(1948);

 Surgimento dos primeiros computadores em


escala comercial (como o UNIVAC).

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Gerações de computadores

Segunda Geração (a partir de 1958):

 Utilização de transistores em substituição as


válvulas:

 Redução do tamanho e da potência


consumida;

 Maior robustez e confiabilidade.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Gerações de computadores

Terceira Geração (a partir de 1964):

 Utilização de circuitos integrados: tecnologia da


Física do estado sólido => integração de vários
transistores em uma única embalagem com as
mesmas dimensões de um único transistor:

 Redução do tamanho e da potência consumida;

 Potência de cálculo, rapidez e confiabilidade


maiores do que nos computadores de segunda
geração.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Gerações de computadores

Quarta Geração (a partir de 1972):

 Utilização de integração em altíssima escala


(VLSI: "very large scale integration"): o
desenvolvimento da indústria eletrônica tornou
possível a integração de milhares de transistores
em uma única pastilha.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Esquema de um Computador Digital

 Computador digital: é uma máquina que pode


resolver problemas para pessoas executando
instruções dadas a ela.

 Programa: é uma seqüência de instruções


descrevendo como executar uma certa tarefa.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Esquema de um Computador Digital

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Esquema de um Computador Digital

 Unidade Central de Processamento


(Processador, Central Processing Unit (CPU)):

 Cérebro do computador;

 Função: executar os programas armazenados


na memória principal:
 A CPU busca as instruções de um programa, examina-
as determinando o seu tipo e as executa.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Esquema de um Computador Digital

 Unidade Central de Processamento


(Processador, Central Processing Unit (CPU)):
 Unidade de controle: busca de instruções da memória
principal e determinação de seu tipo;

 Unidade de aritmética e lógica: execução das


operações aritméticas (como a adição) e de comparação
(como o E lógico);

 Registradores: pequena memória de alta velocidade


usada para armazenamento de resultados temporários e
de certas informações de controle.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Esquema de um Computador Digital

 Memórias
 Programas e dados são gravados (armazenados) nas
memórias do computador;

 Tipos:

 Memória principal (main memory)

 Custo elevado;

 Acesso rápido às informações;

 Capacidade de armazenamento limitada.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Esquema de um Computador Digital
 Memórias
 Tipos:

 Memória auxiliar (ou secundária)


(secondary memory)

 Lentas em relação à memória principal;

 São muito mais baratas;

 Acesso rápido às informações;

 Capacidade muito grande de armazenamento;

 Exemplos: fita magnética e disco magnético.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Esquema de um Computador Digital

 Periféricos de entrada e saída (E/S)


(Input/Output devices ou I/O devices)

 Periféricos de entrada: transferência de


informações do meio externo para a CPU
 Teclado;

 Unidade de disco rígido ou HD (de HDD do inglês


hard disk drive);

 Unidade DVD-ROM.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Esquema de um Computador Digital

 Periféricos de entrada e saída (E/S)


(Input/Output devices ou I/O devices)

 Periféricos de saída: transferência de


informações da CPU para o meio externo
 Monitor de vídeo;

 Unidade de disco rígido (ou HD);

 Unidade DVD-ROM;

 Impressora.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Esquema de um Computador Digital

 Periféricos de entrada e saída (E/S)


(Input/Output devices ou I/O devices)

 Interface de periférico: dispositivo


eletrônico capaz de entender a "estrutura" da
comunicação com a CPU e de traduzi-la para
o modo de operação particular do periférico.
 Veículos de informação ou portadores de
dados

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Hardware, Software e Firmware

 Hardware: componente físico de um sistema de


computação; objetos tangíveis: circuitos
eletrônicos, memória, periféricos, cabos, etc.
 Software: componente lógico de um sistema de
computação; algoritmos (instruções detalhadas
dizendo como fazer alguma coisa) e suas
representações computacionais (programas).
 Firmware: forma intermediária entre hardware
e software; software gravado de uma maneira
"permanente" em hardware (software
“embarcado”).

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Hardware, Software e Firmware

 Peopleware: parte humana que se utiliza das


diversas funcionalidades dos sistemas
computacionais:
 Usuários destes sistemas: analista de
sistemas, cliente que utiliza um caixa
eletrônico, atendente de supermercado
(Wikipédia).

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Unidades de Medida para Informação
Digital

 Computadores utilizam o sistema binário


(base 2, dígitos 0 e 1): facilidade na
montagem de circuitos: 1 (presença de
corrente) e o 0 (ausência de corrente)

 O bit: de Binary digiT (dígito binário): unidade


básica de informação no sistema binário;
estados possíveis num dado instante: 0 e 1.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Bits e informações

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


O Byte
 Grupo de 8 bits;
 Cada caracter do conjunto de caracteres do
computador: ocupa 1 byte de memória;
 Código ASCII: padrão americano para
representação de 256 símbolos (28 = 256):
letras, dígitos ou caracteres especiais
(ASCII: American Standard Code for
Information Interchange).

 Tabela ASCII: caracteres imprimíveis e não


imprimíveis.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


O Byte

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


O Byte

Tabelas disponíveis em: http://www.asciitable.com/,


http://www.dotclass.com.br/portal/?p=181, acesso em 26/02/2011.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


O Byte
Múltiplos do byte:
 Kilobyte (KB)
 1 Kbyte = 1024 Bytes (210) Bytes.
 1 024 Byte = 8 192 Bits

 Megabyte (MB)
 1 024 KB
 1 048 576 (220)Bytes
 8 388 608 Bits

 Gigabyte (GB)
 1 024 MB
 1 048 576 KB
 1 073 741 824 (230) Bytes
 8 589 934 592 Bits
Fonte: Wikipedia (http://pt.wikipedia.org/wiki/Byte#Kilobyte_.28KB.29 )

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


O Byte
Múltiplos do byte:
 Terabyte (TB)
 1 024 GB
 1 048 576 MB
 1 073 741 824 KB
 1 099 511 627 776 (240) Bytes
 8 796 093 022 208 Bits

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


O Byte
Múltiplos do byte:
 Petabyte (PB)
 1 125 899 906 842 624 (250) Bytes

 Exabyte (EB)
 1 152 921 504 606 846 976 (260) Bytes

 Zettabyte (ZB)
 1 180 591 620 717 411 303 424 (270) Bytes

 Yottabyte (YB)
 1 208 925 819 614 629 174 706 176 (280) Bytes

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Linguagens de Programação
 Computadores somente podem manipular informações
codificadas no sistema binário

 Linguagens de programação: úteis na comunicação


entre seres humanos e computadores (construção de
programas)

 Classificação quanto à estrutura:

 Linguagem de máquina (LM)

 Linguagens simbólicas (LS)

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Linguagens de Programação

 Linguagem de máquina (LM):

 Formada por códigos diretamente legíveis


pelo computador (códigos binários);

 Constituída pelo conjunto das “instruções


primitivas” do computador;

 O processador somente pode executar


instruções expressas em sua LM.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Linguagens de Programação
Linguagem de máquina (LM):

Fonte: http://www.projetostecnologicos.com/Cursos/programacao/Introducao/Linguagem-de-maquina.html

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Linguagens de Programação

 Linguagem simbólica (LS):


 Instruções escritas usando os mesmos símbolos ou
palavras existentes nas linguagens humanas;

 Um programa em LS deve ser traduzido para um outro


programa (equivalente) em LM para que possa ser
executado.

 Classificação:
 Linguagem de baixo nível (ou ASSEMBLY)
 Linguagem de alto nível (problem-oriented
language):

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Linguagens de Programação

 Linguagem de baixo nível (ou ASSEMBLY)


(linguagem de montagem):

 Representação simbólica para a LM: cada


instrução ASSEMBLY produz exatamente uma
instrução de máquina.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Linguagens de Programação
Linguagem de baixo nível (ou ASSEMBLY)

Fonte: http://folhas-sem-nada.blogspot.com/2009/09/linguagem-assembly.html

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Linguagens de Programação

 Linguagem de alto nível


(problem-oriented language):

 Linguagem especialmente desenvolvida para


ser utilizada com facilidade na solução de
problemas.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Linguagens de Programação

 Linguagem de alto nível


(problem-oriented language):
 FORTRAN (FORmula TRANslation): 1954, cientifica;
 FORTRAN IV: 1962;
 FORTRAN 77: 1977 (implementação em 1978);
 FORTRAN 90: anos 90;

 ALGOL (ALGOrithmic Language): 1958, científica;

 COBOL (COmmon Business Oriented Language): 1959,


comercial;

 BASIC (Beginner's All-purpose Symbolic Instruction


Code), 1965, científica;

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Linguagens de Programação

 Linguagem de alto nível


(problem-oriented language):
 PL/1 (Programming Language), 1965, científica e
comercial;

 Pascal, 1968, científica;

 C, programação de sistemas;
 ADA (Ada Lovelace: primeira programadora da história
ao fazer programas para uma máquina conhecida
como máquina de Babbage);

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Linguagens de Programação

 Linguagem de alto nível


(problem-oriented language):
 Prolog (Programming in Logic), paradigma de
programação em Lógica;

 Lisp, programação funcional;

 APL, processamento de matrizes, etc.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Mecanismos para o processamento de
programas

 Os circuitos eletrônicos de cada computador


podem reconhecer e executar diretamente um
conjunto limitado de instruções simples:
 Adicionar dois números;

 Verificar se um número é zero;

 Mover um item de dado de uma parte da memória do


computador para outra.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Mecanismos para o processamento de
programas

 Programas fonte e objeto:


 Programa fonte: programa escrito em uma
linguagem de alto nível

 Um programa fonte precisa ser "traduzido" (por um


compilador) em um programa equivalente em LM,
ou ter suas instruções interpretadas em tempo de
execução (por um interpretador).

 Programa objeto: programa resultante da tradução


do fonte para uma linguagem alvo, em geral para a LM
do computador

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Mecanismos para o processamento de
programas
 Mecanismo de COMPILAÇÃO:
 COMPILADOR: tradução do fonte para uma forma
intermediária (linguagem de montagem: "assembly");

 MONTADOR ("assembler"): obtém, a partir da forma


em linguagem de montagem, uma forma equivalente
em LM;

 EDITOR DE LIGAÇÃO: anexa ao programa em LM


rotinas necessárias para a sua execução e módulos de
programa compilados anteriormente;

Resultado: MÓDULO DE CARGA ABSOLUTO: deve


ser carregado (loaded) na memória principal para a
execução do programa.

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Mecanismos para o processamento de
programas

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP


Mecanismos para o processamento de
programas
 Mecanismo de INTERPRETAÇÃO:

 Programa INTERPRETADOR: dado de


entrada: programa escrito na linguagem
fonte

 Execução:

 Examina cada instrução do fonte e executa


uma seqüência de instruções equivalente à
instrução original (sequência expressa na
linguagem objeto).

© UNESP/Sena, G. J. PCI-2011 FEG/UNESP

Você também pode gostar