Buscar

Introdução à computação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-1
Introdução à
Computação
Prof. Yandre Maldonado e Gomes da Costa
yandre@din.uem.br
UNIVERSIDADE ESTADUAL DE MARINGÁ
DEPARTAMENTO DE INFORMÁTICA
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-2
Histórico da Computação
� Histórico da Computação:
� Computar: do latim “computare”, que 
significa calcular, avaliar, contar;
Ábaco – Mesopotâmia, 
aprox. 3500 a.c.
Máquina de Babbage –
R.U., 1832.
ENIAC – E.U.A., 1945.
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-3
Histórico da Computação
� ENIAC, 1945: primeiro computador 
eletrônico de propósitos gerais
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-4
Evolução dos computadores
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-5
Introdução à Computação
� Ciência da Computação
� Ênfase teórica: idéias fundamentais e 
modelos computacionais;
� Ênfase prática: projeto de sistemas 
computacionais;
“As tecnologias computacionais são 
construídas a partir de fundamentos da 
computação. Aquelas são passageiras, 
enquanto estes estão por trás da tecnologia 
em qualquer tempo.”
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-6
Introdução à Computação
� Núcleos de disciplinas da 
Computação:
FUNDAMENTOS 
DA 
COMPUTAÇÃO
T e
c n
o l
o g
i a 
d a
 
C o
m
p u
t a
ç ã
o
SI
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-7
Introdução à Computação
� Os fundamentos estão por trás da 
tecnologia em qualquer tempo.
Anos 40 Anos 50 Anos 60 Anos 70 Tempos 
atuais
Fundamentos Teóricos da Computação
Tecnologias Computacionais
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-8
Introdução à Computação
� Processar dados: papel central do 
computador
ComputadorComputador
Dados de
Entrada
Dados de
Entrada
Dados de
Saída
Dados de
Saída
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-9
O Computador
� Arquitetura de Von Neumann
Unidade de 
Entrada
UCP
Memória 
(Principal)
Unidade Lógica e 
Aritmética
Unidade de 
Controle
Unidade de 
Saída
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-10
O Computador
� Unidade de Entrada: codifica informações introduzidas por 
dispositivos de entrada para que a UCP possa entender;
� Memória: armazena dados e o programa em execução;
� Unidade Lógica e Aritmética: realiza cálculos aritméticos e 
manipulação de dados;
� Unidade de Controle: responsável pelo trafego dos dados:
• UE → MEM
• MEM → ULA → MEM
• MEM → US
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-11
O Computador
� Unidade de Saída: converte os dados processados para 
um formato que possa ser exibido em dispositivos de 
saída.
� Hardware: parte física do computador. Formada pelos 
circuitos eletrônicos, dispositivos mecânicos, magnéticos 
e etc.
� Software: os programas que executam sobre o 
hardware.
HARDWARE + SOFTWARE = COMPUTADOR
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-12
� Principais dispositivos de Entrada/Saída:
Hardware
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-13
Hardware
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-14
Hardware
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-15
� Conceito:
• Elementos de programação de um sistema de 
computação, isto é, todos os programas, sejam de 
aplicação ou básicos do sistema, contrastando com a 
parte física e visível do sistema - o hardware.
� Classificação:
• softwares básicos
• softwares aplicativos 
Software
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-16
� Softwares básicos:
• Programas que definem o padrão do equipamento, sendo 
necessários para o funcionamento do computador.
� Tipos:
• sistema operacional
• ambiente operacional
• linguagens de programação (tradutores)
• utilitários 
Software
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-17
� Conceito de sistema operacional:
Software
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-18
Software
� Sistema Operacional
Sistema Operacional
Hardware
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-19
� Exemplos de sistemas operacionais
• MS-DOS, System 7, Unix, Linux, OS-2, Windows, etc.
� Distribuição física na memória do computador: 
• ROM: gravadas as rotinas mais fundamentais de 
coordenação e tradução de fluxos de dados
• RAM do sistema em duas (2) etapas: 
• 1ª. é totalmente transferida para a RAM quando o 
sistema é ligado 
• 2ª. é carregada na memória à medida que é
solicitada
Software
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-20
� Sistemas operacionais: programas que podem ser 
fornecidos pelo fabricante do equipamento. 
• O padrão é virem em disquetes ou já gravados no 
winchester 
� Constituição do sistema operacional: programas escritos 
geralmente em linguagem de programação de baixo nível. 
� Classificação de sistemas operacionais:
• sistema monousuário, sistema multiusuário
• sistema monotarefa, sistema multitarefa. 
Software
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-21
� Ambiente operacional:
• ambientes que adicionam recursos ao sistema operacional para 
permitir uma interface gráfica com o usuário. 
• Exemplo: todas as versões do Windows, Linux, etc. incluem um 
abiente operacional.
� Linguagens de programação:
• conjunto de símbolos (vocabulário) e regras (gramática) que 
especificam um padrão sintático para estabelecer a 
comunicação entre usuários (programadores) e computador.
� Divisão: 
• linguagem de baixo nível
• linguagem de alto nível
linguagem de máquina
linguagem simbólica
Software
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-22
� Linguagem de máquina:
• baseada em código binário, em 0s e 1s. Interpretada diretamente 
pelo computador.
� Exemplo:
Linguagem de máquina Significado 
0010 0001 1110 carrega no registrador 1 o conteúdo da posição de memória 14
0010 0010 1111 carrega no registrador 2 o conteúdo da posição de memória 15 
0001 0001 0010 soma o conteúdo do registrador 1 com o conteúdo do registrador
2 e coloca no registrador 1 
0011 0001 1111 armazena o conteúdo do registrador 1 na posição de memória 15
Software
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-23
� Linguagem de baixo nível simbólica:
• simplificação da linguagem de máquina. Faz uso de 
códigos mnemônicos para expressar as instruções.
� Exemplo: Assembly
Linguagem de máquina Linguagem simbólica
0010 0001 1110 LOAD R1, val1 
0010 0010 1111 LOAD R2, val2 
0001 0001 0010 ADD R1, R2 
0011 0001 1111 STORE R1, val2 
Software
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-24
� Linguagem de alto nível:
• combinação de um conjunto de símbolos de acordo com certas 
regras de sintaxe para expressar uma seqüência de operações 
de máquina. Linguagem que não exige conhecimento do código 
de máquina. 
� Exemplos: FORTRAN, ALGOL, COBOL, BASIC, PASCAL, LOGO, C, 
LISP, PROLOG, etc.
Linguagem de máquina Linguagem simbólica Linguagem de alto nível 
0010 0001 1110 LOAD R1, val1 val2 = val1 + val2 
0010 0010 1111 LOAD R2, val2 
0001 0001 0010 ADD R1, R2 
0011 0001 1111 STORE R1, val2 
Software
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-25
� Principaistipos de tradutores: 
� Montador: lê uma linguagem de baixo nível 
simbólica e transforma para linguagem de máquina. 
� Interpretador: lê uma linguagem de alto nível e 
coloca em execução. 
� Compilador: lê uma linguagem de alto nível e 
transforma para linguagem nível mais baixo. 
� Mecanismo de tradução híbrida: exemplo Java.
Software
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-26
� Compilador:
1) Lê e analisa todo o programa fonte (escrito em linguagem de alto 
nível) e traduz para linguagem de baixo nível. 
2) Cria um programa objeto que corresponde às instruções em 
linguagem de máquina.
3) Executa-se direto o programa objeto.
4) Se encontrar erro, é preciso voltar ao programa fonte, corrigir, e 
recompilar obtendo-se um novo código objeto.
Software
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-27
Conceitos de Linguagens de 
Programação
� Tradução de Linguagens de alto nível:
� Compilação
• Tradução para linguagem de máquina;
• Gera programas geralmente de execução 
mais rápida;
Compilador
Análise SíntesePrograma Fonte
Programa 
Alvo
Alto Nível Baixo Nível
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-28
Conceitos de Linguagens de 
Programação
� Interpretação
• Decodifica instruções de alto nível em tempo de 
execução;
• O interpretador simula uma máquina virtual que 
busca (ciclo busca-decodifica-executa) as 
instruções em alto nível;
• Uma mesma instrução de alto-nível será
traduzida tantas vezes quantas ela for executada;
• Tradicionalmente, apresentava execução 10 a 
100 vezes mais lentas do que a de sistemas 
compilados;
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-29
Conceitos de Linguagens de 
Programação
� Interpretação (cont.)
• O gargalo não fica entre o processador e 
a memória (como nos programas 
compilados) e sim na decodificação das 
instruções;
• Útil em depuração de código fonte;
InterpretadorPrograma-fontePrograma-fonte
Dados de entrada
Resultados
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-30
Conceitos de Linguagens de 
Programação
� Interpretação Híbrida
• Traduzem a linguagem de alto-nível para 
uma representação intermediária;
• Mais rápido que a interpretação pura, 
pois as instruções são traduzidas uma 
única vez;
Interpretador
Dados de entrada
ResultadosAnálise 
Léxica
Análise 
Léxica
Análise 
Sintática
Análise 
Sintática
Gerador de 
Código 
Intermediário
Gerador de 
Código 
Intermediário
Programa-fontePrograma-fonte Código Intermediário
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-31
Conceitos de Linguagens de 
Programação
� Interpretação Híbrida (cont.)
• A linguagem Java oferece interpretação 
híbrida
• Sua forma intermediária é o código de bytes 
(byte-code);
• Oferece portabilidade para qualquer máquina 
que tenha um interpretador de código de 
bytes;
• Máquina virtual Java
• Hoje existem sistemas que traduzem este 
código de bytes para código de máquina com 
execução mais rápida;
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-32
Conceitos de Linguagens de 
Programação
Linguagem de 
Programação
Compilador/InterpretadorEditor de 
Código 
Fonte
+ +
Outras 
Ferramentas de 
Programação
AMBIENTE DE PROGRAMAÇÃO
� Ambientes de Programação
� Conjunto integrado de ferramentas de 
suporte a programação que dispõem de 
uma interface uniforme;
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-33
Conceitos de Linguagens de 
Programação
� Exemplos de Ambientes de Programação:
JavaEditplus, NetBeans
Object PascalDelphi
C++C++ Builder
CTurbo C
PascalTurbo Pascal
LINGUAGEMAMBIENTE
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-34
� Utilitários:
• programas que ampliam os recursos do sistema facilitando o 
uso e auxiliando a manutenção de programas. Administram o 
ambiente oferecendo ferramentas ao usuário para organizar os 
discos, verificar memória, corrigir falhas, etc. 
� Exemplos: 
Save Smart, formatadores, programas de backup, 
compactadores de disco (zip, arj), desfragmentadores, 
antivírus, e outros. 
• Estes programas recebem o nome de utilitários por 
serem úteis ao sistema computacional.
Software
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-35
� Softwares aplicativos:
• programas voltados para a solução de problemas do 
usuário.
� Tipos: 
• uso geral: programas que podem ser utilizados em vários tipos 
de aplicações. Exemplos: editores de texto, gráficos, planilhas, 
gerenciadores de banco de dados, etc.
• uso específico: se destinam exclusivamente a uma aplicação 
específica. Exemplos: folha de pagamento, crediário, imposto 
de renda, cadastro, contas a pagar e receber, etc. 
Software
P
rof
.
 Y
a
nd
re
 M
ald
o
n
ad
o
 
-36
Bibliografia
� Brookshear, J. G.: Ciência da 
Computação – Uma visão abrangente 
(7ª edição). Porto Alegre: Bookman, 
2005;
� Fedeli, R. D.; Polloni, E. G. F.; Peres, 
F. E.: Introdução à Ciência da 
Computação. São Paulo: Pioneira 
Thomson Learning, 2003.

Outros materiais