universidade estadual de maringÁ … · linguagem de máquina significado ... 0010 0001 1110 load...
TRANSCRIPT
1
Prof. Y
andre Maldonado -
1
Introdução àComputação
Prof. Yandre Maldonado e Gomes da Costa
UNIVERSIDADE ESTADUAL DE MARINGÁDEPARTAMENTO DE INFORMÁTICA
Prof. Y
andre Maldonado -
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.
Prof. Y
andre Maldonado -
3
Histórico da Computação
� ENIAC, 1945: primeiro computador eletrônico de propósitos gerais
2
Prof. Y
andre Maldonado -
4
Evolução dos computadores
Prof. Y
andre Maldonado -
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.”
Prof. Y
andre Maldonado -
6
Introdução à Computação
� Núcleos de disciplinas da Computação:
FUNDAMENTOS DA
COMPUTAÇÃO
Tecn
olog
ia d
a
Com
puta
ção
SI
3
Prof. Y
andre Maldonado -
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
Prof. Y
andre Maldonado -
8
Introdução à Computação
� Processar dados: papel central do computador
ComputadorComputadorDados deEntrada
Dados deEntrada
Dados deSaída
Dados deSaída
Prof. Y
andre Maldonado -
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
4
Prof. Y
andre Maldonado -
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
Prof. Y
andre Maldonado -
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
Prof. Y
andre Maldonado -
12
� Principais dispositivos de Entrada/Saída:
Hardware
5
Prof. Y
andre Maldonado -
13
Hardware
Prof. Y
andre Maldonado -
14
Hardware
Prof. Y
andre Maldonado -
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
6
Prof. Y
andre Maldonado -
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
Prof. Y
andre Maldonado -
17
� Conceito de sistema operacional:
Software
Prof. Y
andre Maldonado -
18
Software
� Sistema Operacional
Sistema Operacional
Hardware
7
Prof. Y
andre Maldonado -
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
Prof. Y
andre Maldonado -
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
Prof. Y
andre Maldonado -
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áquinalinguagem simbólica
Software
8
Prof. Y
andre Maldonado -
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
Prof. Y
andre Maldonado -
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
Prof. Y
andre Maldonado -
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 Lin guagem 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
9
Prof. Y
andre Maldonado -
25
� Principais tipos 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
Prof. Y
andre Maldonado -
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
Prof. Y
andre Maldonado -
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
10
Prof. Y
andre Maldonado -
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;
Prof. Y
andre Maldonado -
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
Prof. Y
andre Maldonado -
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áticaAnálise
SintáticaGerador de
Código Intermediário
Gerador de Código
Intermediário
Programa-fontePrograma-fonte Código Intermediário
11
Prof. Y
andre Maldonado -
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;
Prof. Y
andre Maldonado -
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;
Prof. Y
andre Maldonado -
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
12
Prof. Y
andre Maldonado -
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
Prof. Y
andre Maldonado -
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
Prof. Y
andre Maldonado -
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.