Prof. Yandre Maldonado -1
Introdução à Computação
Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA
Prof. Yandre 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. Yandre Maldonado -3
Histórico da Computação
ENIAC, 1945: primeiro computador
eletrônico de propósitos gerais
Prof. Yandre Maldonado -4
Evolução dos computadores
Prof. Yandre 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. Yandre Maldonado -6
Introdução à Computação
Núcleos de disciplinas da Computação:
FUNDAMENTOS DA
COMPUTAÇÃO
Tecnologia da Computação
SI
Prof. Yandre 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. Yandre Maldonado -8
Introdução à Computação
Processar dados: papel central do computador
Computador Computador Dados de
Entrada Dados de
Entrada
Dados de Saída Dados de
Saída
Prof. Yandre 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
Prof. Yandre 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. Yandre 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. Yandre Maldonado -12
Principais dispositivos de Entrada/Saída:
Hardware
Prof. Yandre Maldonado -13
Hardware
Prof. Yandre Maldonado -14
Hardware
Prof. Yandre 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
Prof. Yandre 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. Yandre Maldonado -17
Conceito de sistema operacional:
Software
Prof. Yandre Maldonado -18
Software
Sistema Operacional
Sistema Operacional
Hardware
Prof. Yandre 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. Yandre 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. Yandre 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áquina linguagem simbólica
Software
Prof. Yandre 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. Yandre 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. Yandre 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 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
Prof. Yandre 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. Yandre 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. Yandre 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íntese
Programa Fonte
Programa Alvo
Alto Nível Baixo Nível
Prof. Yandre 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. Yandre 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;
Interpretador Programa-fonte
Programa-fonte
Dados de entrada
Resultados
Prof. Yandre 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
Resultados
Aná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-fonte
Programa-fonte Código Intermediário
Prof. Yandre 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. Yandre Maldonado -32
Conceitos de Linguagens de Programação
Linguagem de Programação
Compilador/Interpretador Editor 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. Yandre Maldonado -33
Conceitos de Linguagens de Programação
Exemplos de Ambientes de Programação:
Java Editplus, NetBeans
Object Pascal Delphi
C++
C++ Builder
C Turbo C
Pascal Turbo Pascal
LINGUAGEM AMBIENTE
Prof. Yandre 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. Yandre 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. Yandre Maldonado -36
Bibliografia
Brookshear, J. G.: Ciência da
Computação – Uma visão abrangente (7ª edição). Porto Alegre: Bookman, 2005;