12
1 Prof. Yandre Maldonado - 1 Introdução à Computação Prof. Yandre Maldonado e Gomes da Costa [email protected] 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

UNIVERSIDADE ESTADUAL DE MARINGÁ … · Linguagem de máquina Significado ... 0010 0001 1110 LOAD R1, val1 val2 ... • Estes programas recebem o nome de utilitários por

Embed Size (px)

Citation preview

1

Prof. Y

andre Maldonado -

1

Introdução àComputação

Prof. Yandre Maldonado e Gomes da Costa

[email protected]

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.