Вы находитесь на странице: 1из 97

Programação Computacional

Aula 1: Introdução à computação


Universidade Federal do Triângulo Mineiro

Professor Me. Rooney R. A. Coelho


21 de Agosto de 2017
Roteiro da Apresentação
1 O que é um computador?
Noções de arquitetura
Lei de Moore
2 Um pouco de história
Geração 0: computadores mecânicos (1642-1945)
Geração 1: Tubos de vácuo, a válvula eletrônica (1945-1954)
Geração 2: Transistores (1954-1963)
Geração 3: Circuitos Integrados (1963-1973)
Geração 4: VLSI (1973-1985?)
Geração 5: Processamento paralelo e Redes de computadores
(1985?-)
3 Programas em C
A história da linguagem C
Compilação de programas
Próximo Tópico
1 O que é um computador?
Noções de arquitetura
Lei de Moore
2 Um pouco de história
Geração 0: computadores mecânicos (1642-1945)
Geração 1: Tubos de vácuo, a válvula eletrônica (1945-1954)
Geração 2: Transistores (1954-1963)
Geração 3: Circuitos Integrados (1963-1973)
Geração 4: VLSI (1973-1985?)
Geração 5: Processamento paralelo e Redes de computadores
(1985?-)
3 Programas em C
A história da linguagem C
Compilação de programas

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 3 / 78


O que é um computador?

O que é?

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 4 / 78


O que é um computador?

O que é?
Um computador é um dispositivo capaz de realizar cálculos e tomar
decisões lógicas com uma velocidade milhões ou mesmo bilhões de
vezes mais rápida do que os seres humanos.

Hardware

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 4 / 78


O que é um computador?

O que é?
Um computador é um dispositivo capaz de realizar cálculos e tomar
decisões lógicas com uma velocidade milhões ou mesmo bilhões de
vezes mais rápida do que os seres humanos.

Hardware
Teclado, tela, discos, memória e unidades de processamento.

Software

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 4 / 78


O que é um computador?

O que é?
Um computador é um dispositivo capaz de realizar cálculos e tomar
decisões lógicas com uma velocidade milhões ou mesmo bilhões de
vezes mais rápida do que os seres humanos.

Hardware
Teclado, tela, discos, memória e unidades de processamento.

Software
Programas executados em um computador → dados sob o controle
de conjuntos de instruções.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 4 / 78


O que é um computador?
• Unidade de entrada. Obtém as informações dos dispositivos de
entrada e as coloca à disposição de outras unidades para que
possam ser processadas.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 5 / 78


O que é um computador?
• Unidade de entrada. Obtém as informações dos dispositivos de
entrada e as coloca à disposição de outras unidades para que
possam ser processadas.
• Unidade de saída. Leva as informações que foram processadas
pelo computador e as envia aos dispositivos de saída.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 5 / 78


O que é um computador?
• Unidade de entrada. Obtém as informações dos dispositivos de
entrada e as coloca à disposição de outras unidades para que
possam ser processadas.
• Unidade de saída. Leva as informações que foram processadas
pelo computador e as envia aos dispositivos de saída.
• Unidade de memória. Conserva as informações que foram
fornecidas através da unidade de entrada. Memória primária.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 5 / 78


O que é um computador?
• Unidade de entrada. Obtém as informações dos dispositivos de
entrada e as coloca à disposição de outras unidades para que
possam ser processadas.
• Unidade de saída. Leva as informações que foram processadas
pelo computador e as envia aos dispositivos de saída.
• Unidade de memória. Conserva as informações que foram
fornecidas através da unidade de entrada. Memória primária.
• Unidade aritmética e lógica Responsável pela realização dos
cálculos e dos mecanismos de decisão.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 5 / 78


O que é um computador?
• Unidade de entrada. Obtém as informações dos dispositivos de
entrada e as coloca à disposição de outras unidades para que
possam ser processadas.
• Unidade de saída. Leva as informações que foram processadas
pelo computador e as envia aos dispositivos de saída.
• Unidade de memória. Conserva as informações que foram
fornecidas através da unidade de entrada. Memória primária.
• Unidade aritmética e lógica Responsável pela realização dos
cálculos e dos mecanismos de decisão.
• Unidade central de processamento. Informa quando as
informações devem ser: lidas, utilizadas em cálculos, enviadas a
memória.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 5 / 78


O que é um computador?
• Unidade de entrada. Obtém as informações dos dispositivos de
entrada e as coloca à disposição de outras unidades para que
possam ser processadas.
• Unidade de saída. Leva as informações que foram processadas
pelo computador e as envia aos dispositivos de saída.
• Unidade de memória. Conserva as informações que foram
fornecidas através da unidade de entrada. Memória primária.
• Unidade aritmética e lógica Responsável pela realização dos
cálculos e dos mecanismos de decisão.
• Unidade central de processamento. Informa quando as
informações devem ser: lidas, utilizadas em cálculos, enviadas a
memória.
• Unidade de memória secundária. Esta é a seção de
armazenamento de alta capacidade e de longo prazo do
computador.
Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 5 / 78
Memória (armazena instruções e dados)

Resultados de instruções e dados


operações

Unidade Aritmética
Unidade de
e Lógica Dispositivos de
controle
(ALU) entrada e saída

Unidade Central de Processamento (CPU)

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 6 / 78


Próximo Tópico
1 O que é um computador?
Noções de arquitetura
Lei de Moore
2 Um pouco de história
Geração 0: computadores mecânicos (1642-1945)
Geração 1: Tubos de vácuo, a válvula eletrônica (1945-1954)
Geração 2: Transistores (1954-1963)
Geração 3: Circuitos Integrados (1963-1973)
Geração 4: VLSI (1973-1985?)
Geração 5: Processamento paralelo e Redes de computadores
(1985?-)
3 Programas em C
A história da linguagem C
Compilação de programas

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 7 / 78


Lei de Moore

O que é?
Gordon Moore, co-fundador e ex-presidente da Intel, notou que o
número de transistores em um chip estava aumentando a uma taxa
constante e previu que esse crescimento continuaria por décadas.

Números
A lei de Moore é expressa como a duplicação do número de transistores
a cada 18 meses → aumento de 60% no número de transistores por
ano.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 8 / 78


Lei de Moore

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 9 / 78


Lei de Moore

100G
10G 512M 2G
Quantidade de transistores

1G
1G
100M 16M 256M
64M
10M 1M
1M 4M
64K
100K 4K 256K
10K 16K
1K 1K
100
10
1
1965 1970 1975 1980 1985 1990 1995 2000 2005 2010
Ano

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 10 / 78


Lei de Moore

Core i7
10G Core 2
Core Duo
1G
Quantidade de transistores

Pentium 4
Pentium III
100M
Pentium II
10M Pentium
Lei de Moore
1M
80286 80486
100K Pentium
8086 80386
Pro
10K 8080
4004 8008
1K 8008
100
10
1
1970 1975 1980 1985 1990 1995 2000 2005 2010
Ano de lançamento

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 11 / 78


Lei de Moore

Limitação física
A redução do tamanho dos transistores chegará a um ponto onde a
espessura desses dispositivos será em breve apenas alguns átomos.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 12 / 78


Lei de Moore

Limitação física
A redução do tamanho dos transistores chegará a um ponto onde a
espessura desses dispositivos será em breve apenas alguns átomos.

• Transistores subatômicos.
• Nanotubos de carbono.
• Computação quântica.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 12 / 78


Próximo Tópico
1 O que é um computador?
Noções de arquitetura
Lei de Moore
2 Um pouco de história
Geração 0: computadores mecânicos (1642-1945)
Geração 1: Tubos de vácuo, a válvula eletrônica (1945-1954)
Geração 2: Transistores (1954-1963)
Geração 3: Circuitos Integrados (1963-1973)
Geração 4: VLSI (1973-1985?)
Geração 5: Processamento paralelo e Redes de computadores
(1985?-)
3 Programas em C
A história da linguagem C
Compilação de programas

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 13 / 78


A primeira máquina calculadora funcional

• Wilhelm Schickard
(1592-1635)
• Alemanha, 1642
• Projeto perdido em um
incêndio logo após a
construção.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 14 / 78


Calculadora mecânica

• Blaise Pascal (1623-1635)


• 19 anos
• Maquina de soma e
subtração

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 15 / 78


Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 16 / 78
Calculadora mecânica

• Gottfried Wilhelm von


Leibniz (1646-1716)
• Maquina de quatro
operações
• Uma variação de sua
máquina foi amplamente
utilizada no século XIX.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 17 / 78


Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 18 / 78
Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 19 / 78
Máquina programável

• Joseph-Marie Jacquard
(1752-1834)
• Tear programável que usava
cartões perfurados
removíveis para representar
padrões.
• Padrões complexos
poderiam ser codificados
usando os cartões e depois
reproduzidos exatamente
iguais!

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 20 / 78


Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 21 / 78
Máquina de Babbage

• Charles Babbage
(1791-1871)
• Máquina Diferencial - 1821
→ equações polinomiais.
• Cálculos para a navegação
naval.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 22 / 78


Máquina de Babbage

• Mecanismo Analítico -
1833
• Muitos dos recursos dos
computadores modernos
• Computador programável,
de uso geral, que
• Aceitava a entrada através
de cartões perfurados e
imprimia a saída em papel.
• memória legível / gravável
→ Dados,programas

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 23 / 78


Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 24 / 78
Máquina de Babbage

• Augusta Ada Byron,


Condessa de Lovelace
(1815-1852)
• Primeira programadora
• Cálculo dos números de
Bernoulli através máquina
de Babbage.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 25 / 78


Máquina de tabulação
• Herman Hollerith
(1860-1929)
• Censo dos EUA de 1890
• Buracos específicos nos
cartões que representam
informações específicas
como masculino / feminino,
idade, estado de origem, etc.
• O censo de 1890 foi
concluído em seis semanas
(em comparação com os 7
anos necessários para o
censo de 1880).
• International Business
Machines (IBM).
Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 26 / 78
Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 27 / 78
Máquina calcular usando relés

• Konrad Zuse (1910-1995)


• Primeira máquina de
calcular usando relés.
• Trabalho ocultado pelo
governo alemão.
• No final da década de 1930
pesquisadores da Bell Labs
desenharam e construíram,
de forma independente,
calculadoras automáticas
usando relés
eletromagnéticos.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 28 / 78


Aiken’s Mark I

• Howard Aiken (1900-1973)


• Universidade de Harvard
• Implementação do
Mecanismo Analítico de
Babbage usando relés.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 29 / 78


Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 30 / 78
Aiken’s Mark I

Poder de processamento do Mark I


O computador Mark I poderia armazenar apenas 72 números na
memória, embora pudesse armazenar mais 60 constantes através de
interruptores manuais.
A máquina poderia executar 10 adições por segundo, mas exigia até 6
segundos para realizar uma multiplicação e 12 segundos para executar
uma divisão.
Ainda assim, estimava-se que os cálculos complexos poderiam ser
completados 100 vezes mais rápido usando o Mark I em oposição à
tecnologia existente no momento.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 31 / 78


Próximo Tópico
1 O que é um computador?
Noções de arquitetura
Lei de Moore
2 Um pouco de história
Geração 0: computadores mecânicos (1642-1945)
Geração 1: Tubos de vácuo, a válvula eletrônica (1945-1954)
Geração 2: Transistores (1954-1963)
Geração 3: Circuitos Integrados (1963-1973)
Geração 4: VLSI (1973-1985?)
Geração 5: Processamento paralelo e Redes de computadores
(1985?-)
3 Programas em C
A história da linguagem C
Compilação de programas

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 32 / 78


Motivação
Enquanto os relés eletromagnéticos eram certamente muito mais
rápidos do que rodas e engrenagens, eles ainda exigiam a abertura e o
fechamento de interruptores mecânicos.
Assim, a velocidade de computação foi limitada pela inércia das partes
móveis. Os relés também tendem a ser pesados e tiveram tendência a
travar.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 33 / 78


O primeiro “bug” de computador...

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 34 / 78


Tubos de vácuo

• Inventado por Lee de Forest


(1873-1961)
• Não têm partes móveis
(apenas os elétrons se
movem).
• Até 1000 vezes mais rápidos
do que os relés
eletromagnéticos.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 35 / 78


Computador eletrônico

• Alan Turing (1912-1954)


• Impulsionados pela II
Guerra Mundial.
• COLOSSUS
• Quebra de códigos militares
nazistas

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 36 / 78


Computador eletrônico

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 37 / 78


ENIAC

• John Mauchly (1907-1980) e


seu estudante J. Presper
Eckert (1919-1995)
• Integrador e Computador
Numérico Eletrônico
• Tabelas de balística para o
Exército dos EUA
• operando até 500 vezes
mais rápido que o Mark I

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 38 / 78


ENIAC

• Pesave 30 toneladas e
consumia 140 kilowatts de
• John Mauchly (1907-1980) e
energia.
seu estudante J. Presper • armazenava 20 números na
Eckert (1919-1995) memória mais de 100
• Integrador e Computador
constantes usando switches.
Numérico Eletrônico • poderia ser reconfigurado
• Tabelas de balística para o
para executar cálculos
diferentes...
Exército dos EUA
• a reprogramação da máquina
• operando até 500 vezes
requeria a configuração
mais rápido que o Mark I
manual de até 6.000 switches
de multiposição e a reconexão
de uma “floresta” de cabos.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 38 / 78


Computador eletrônico

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 39 / 78


Computador eletrônico

• John von Neumann


(1903-1957)
• Envolvidos no projeto
ENIAC
• Reconheceu que a
programação via switches e
cabos era tediosa e propensa
a erros.
• Projetou uma arquitetura de
computador na qual o
programa poderia ser
armazenado na memória
juntamente com os dados.
• Representação binária

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 40 / 78


Computador eletrônico

• O processo de programação
de um computador
tornou-se igual, se não mais
importante do que projetar
um computador.
• Um programa podia ser lido
(através de cartões ou fitas)
e armazenado na memória
do computador.
• No início, os programas
foram escritos em
linguagem de máquina,
sequências de 0 e 1.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 41 / 78


Computador comercial

• UNIVAC I
• Comprado pelo Censo dos
EUA
• Usado pela CBS para prever
as eleições presidenciais
de 1952.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 42 / 78


Computadores do exército

Figura : ENIAC, EDVAC, ORDVAC, BRLESC-I

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 43 / 78


Próximo Tópico
1 O que é um computador?
Noções de arquitetura
Lei de Moore
2 Um pouco de história
Geração 0: computadores mecânicos (1642-1945)
Geração 1: Tubos de vácuo, a válvula eletrônica (1945-1954)
Geração 2: Transistores (1954-1963)
Geração 3: Circuitos Integrados (1963-1973)
Geração 4: VLSI (1973-1985?)
Geração 5: Processamento paralelo e Redes de computadores
(1985?-)
3 Programas em C
A história da linguagem C
Compilação de programas

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 44 / 78


Transistor

Motivação
Os tubos de vácuo, além de serem relativamente grandes (vários
centímetros de comprimento), dissipavam uma enorme quantidade de
calor. Assim, eles exigiam muito espaço para o resfriamento e tendiam
a queimar frequentemente.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 45 / 78


Transistor

• Muito menores.
• Mais baratos.
• Mais confiáveis.
• Mais eficientes em termos
energéticos.
• máquinas menores e mais
rápidas a um custo
drasticamente menor.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 46 / 78


Transistor

• Desenvolvimento
tecnológico mais importante
do século XX.
• dispositivos eletrônicos
pequenos e acessíveis:
rádios, televisores, telefones,
computadores, etc.
• Empresas como IBM
começaram a comercializar
computadores baseados em
transistores no início da
década de 1960.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 47 / 78


IBM FORTRAN

• John Backus (1924-2007) e


equipe.
• primeira linguagem de
programação de alto nível.
• FORTRAN (Formula
TRANslator)
• Outras linguas de alto nível
foram desenvolvidas neste
período: LISP, BASIC e
COBOL.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 48 / 78


Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 49 / 78
Próximo Tópico
1 O que é um computador?
Noções de arquitetura
Lei de Moore
2 Um pouco de história
Geração 0: computadores mecânicos (1642-1945)
Geração 1: Tubos de vácuo, a válvula eletrônica (1945-1954)
Geração 2: Transistores (1954-1963)
Geração 3: Circuitos Integrados (1963-1973)
Geração 4: VLSI (1973-1985?)
Geração 5: Processamento paralelo e Redes de computadores
(1985?-)
3 Programas em C
A história da linguagem C
Compilação de programas

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 50 / 78


Motivação
Os primeiros transistores ainda geraram uma grande quantidade de
calor, o que poderia danificar outros componentes dentro do
computador.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 51 / 78


Circuito integrado (CI)

• Em 1958, Jack Kilby


(1923-2005) na Texas
Instruments desenvolveu
uma técnica para a
fabricação de transistores
como camadas de material
condutor em um disco de
silício.
• Texas Instruments
• Fabricação de transistores
como camadas de material
condutor em um disco de
silício.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 52 / 78


Circuito integrado (CI)

• Centenas de transistores
podiam ser colocados em
camadas no mesmo disco e
conectados com camadas
condutoras para formar
circuitos simples.
• Transistores encapsulados e
circuitos relacionados em
um CI podiam ser
produzidos em massa e
possibilitaram a construção
de computadores menores,
mais rápidos e mais baratos.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 53 / 78


Microprocessadores

• Intel Corporation - 1971


• Todos os circuitos de
controle para uma
calculadora em um único
chip, o Intel 4004.
• 2300 transistores.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 54 / 78


Microprocessadores

Computadores pessoais
• Intel 8080 (1974) O Intel 8080 e seus sucessores, os
• 6000 transistores chips 8086 e 8088, serviram como
unidades de processamento central
• Podia ser programado para
para vários computadores pessoais
atender diversas funções
na década de 1970, incluindo o IBM
PC.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 55 / 78


Sistemas operacionais

• Mais e mais pessoas


precisavam ser capacitadas
a interagir com
computadores
• linguagens de programação
especializadas: Pascal, C.
• UNIX: desenvolvido pelo
criador do C.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 56 / 78


Próximo Tópico
1 O que é um computador?
Noções de arquitetura
Lei de Moore
2 Um pouco de história
Geração 0: computadores mecânicos (1642-1945)
Geração 1: Tubos de vácuo, a válvula eletrônica (1945-1954)
Geração 2: Transistores (1954-1963)
Geração 3: Circuitos Integrados (1963-1973)
Geração 4: VLSI (1973-1985?)
Geração 5: Processamento paralelo e Redes de computadores
(1985?-)
3 Programas em C
A história da linguagem C
Compilação de programas

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 57 / 78


VLSI

Motivação
Enquanto as gerações anteriores de computadores foram definidas por
novas tecnologias, o salto da geração 3 para a geração 4 é amplamente
baseado na escala.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 58 / 78


VLSI

Motivação
Enquanto as gerações anteriores de computadores foram definidas por
novas tecnologias, o salto da geração 3 para a geração 4 é amplamente
baseado na escala.

Fatos
É interessante notar que o primeiro microprocessador da Intel, o 4004,
teve aproximadamente o mesmo número de dispositivos de comutação
(transistores) como o COLOSSUS, que utilizou tubos de vácuo em 1943.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 58 / 78


VLSI

Motivação
Enquanto as gerações anteriores de computadores foram definidas por
novas tecnologias, o salto da geração 3 para a geração 4 é amplamente
baseado na escala.

Fatos
É interessante notar que o primeiro microprocessador da Intel, o 4004,
teve aproximadamente o mesmo número de dispositivos de comutação
(transistores) como o COLOSSUS, que utilizou tubos de vácuo em 1943.

Fatos
O Intel Pentium 4, lançado em 2000, possuía mais de 42 milhões de
transistores, com transistores individuais tão pequenos quanto 0,18
micrometros.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 58 / 78


Computador pessoal

• MITS Altair - 1975


• Primeiro computador
pessoal.
• CPU Intel 8800.
• Revolução do computador
pessoal
• Primeira linguagem de
programação para a
máquina foi o Altair BASIC,
que conduziu à fundação da
Microsoft.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 59 / 78


Computador pessoal

• Comercializado em 1975 por


menos de US $ 500.
• kit de computador.
• Uma vez montado, o Altair
não tinha teclado, nenhum
monitor e nenhum
armazenamento
permanente.
• O usuário inseria as
instruções diretamente,
deslizando os interruptores
no console e visualizava a
saída através luzes piscando.
• Demanda esmagadora!

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 60 / 78


Altair BASIC

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 61 / 78


Primeiro computador pessoal pré montado

• Steven Jobs (1955-2011) e


Stephen Wozniak (1950-)
• Apple II (1980): primeiro
computador pessoal
pré-montado com um
teclado, monitor colorido,
som e gráficos.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 62 / 78


Primeira interface gráfica

• Apple Macintosh (1984)


• Criado para competir com o
recém lançado IBM PC.
• Interface gráfica com o
usuário (GUI): janelas,
ícones e um mouse.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 63 / 78


Linguagens de programação
A proliferação de linguagens de programação continuou na década de
1980 e além. Em 1980, Alan Kay (1940) desenvolveu Smalltalk, a
primeira linguagem orientada a objetos. Ada foi desenvolvida pelo o
Departamento de Defesa dos EUA em 1980, para ser usada em todos os
contratos governamentais. Em 1985, Bjarne Stroustrup (1950-)
desenvolveu o C ++, uma extensão orientada a objetos de C.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 64 / 78


Próximo Tópico
1 O que é um computador?
Noções de arquitetura
Lei de Moore
2 Um pouco de história
Geração 0: computadores mecânicos (1642-1945)
Geração 1: Tubos de vácuo, a válvula eletrônica (1945-1954)
Geração 2: Transistores (1954-1963)
Geração 3: Circuitos Integrados (1963-1973)
Geração 4: VLSI (1973-1985?)
Geração 5: Processamento paralelo e Redes de computadores
(1985?-)
3 Programas em C
A história da linguagem C
Compilação de programas

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 65 / 78


Processamento paralelo e Redes de computadores

Motivação
Enquanto as gerações 0 a 4 estão razoavelmente bem definidas, o
alcance da quinta geração de tecnologia informática ainda é uma
questão de debate. O que é claro é que a computação no final da
década de 1980 e além foi definida por avanços no processamento
paralelo e na rede de computadores.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 66 / 78


IBM Deep Blue vence Garry Kasparov!

• Uma máquina vence o


campeão mundial de
xadrez em 1997.
• 256 processadores
• Milhões de movimentos
potenciais em um segundo,
escolhendo o mais
promissor.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 67 / 78


Internet
ARPAnet
Conectava quatro computadores
na Califórnia e Utah, foi fundado
em 1969. No entanto, seu uso foi
principalmente limitado a
pesquisadores governamentais e
acadêmicos.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 68 / 78


Internet
ARPAnet
Conectava quatro computadores
na Califórnia e Utah, foi fundado
em 1969. No entanto, seu uso foi
principalmente limitado a
pesquisadores governamentais e
acadêmicos.

World Wide Web


A Web, um ambiente multimídia
em que os documentos podem
ser unidos de forma perfeita, Figura : Tim Berners Lee, criador do
tornou-se popular em meados da World Wide Web
década de 1990 com o
desenvolvimento de
navegadores gráficos.
Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 68 / 78
Futuro?

Figura : Holodeck - USS Enterprise

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 69 / 78


Futuro?

Figura : Revolução das Máquinas -


Skynet
Figura : Holodeck - USS Enterprise

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 69 / 78


Próximo Tópico
1 O que é um computador?
Noções de arquitetura
Lei de Moore
2 Um pouco de história
Geração 0: computadores mecânicos (1642-1945)
Geração 1: Tubos de vácuo, a válvula eletrônica (1945-1954)
Geração 2: Transistores (1954-1963)
Geração 3: Circuitos Integrados (1963-1973)
Geração 4: VLSI (1973-1985?)
Geração 5: Processamento paralelo e Redes de computadores
(1985?-)
3 Programas em C
A história da linguagem C
Compilação de programas

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 70 / 78


A história da linguagem C

• Inspirado nas linguagens


BCPL e B (Ken Thompson).
• Ken Thompson e Dennis
Ritchie criaram o UNIX em
1970.
• C foi criada por Dennis
Ritchie.
• De início o C se tornou
amplamente conhecido
como a linguagem de
desenvolvimento do sistema
operacional UNIX.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 71 / 78


A história da linguagem C

• Hoje em dia, praticamente


todos os grandes sistemas
operacionais estão escritos
em C e/ou C++ .
• O C independe do hardware.
Elaborando um projeto
cuidadoso, é possível
escrever programas em C
que sejam portáteis para a
maioria dos computadores.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 72 / 78


A história da linguagem C

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 73 / 78


Próximo Tópico
1 O que é um computador?
Noções de arquitetura
Lei de Moore
2 Um pouco de história
Geração 0: computadores mecânicos (1642-1945)
Geração 1: Tubos de vácuo, a válvula eletrônica (1945-1954)
Geração 2: Transistores (1954-1963)
Geração 3: Circuitos Integrados (1963-1973)
Geração 4: VLSI (1973-1985?)
Geração 5: Processamento paralelo e Redes de computadores
(1985?-)
3 Programas em C
A história da linguagem C
Compilação de programas

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 74 / 78


Nomeclatura

• Código-fonte é o código escrito em uma linguagem de


programação. Os programas-fontes são normalmente compostos
de diversos códigos-fontes, armazenados em vários arquivos.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 75 / 78


Nomeclatura

• Código-fonte é o código escrito em uma linguagem de


programação. Os programas-fontes são normalmente compostos
de diversos códigos-fontes, armazenados em vários arquivos.
• Código-objeto é o código gerado na linguagem de máquina da
arquitetura-alvo. Esse código, entretanto, não pode ser
diretamente executado pelo processador, já que nem todas as
referências necessárias à execução estão resolvidas. Podem faltar,
por exemplo, referências a endereços de funções que estão em
outros códigos-objetos.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 75 / 78


Nomeclatura

• Código-fonte é o código escrito em uma linguagem de


programação. Os programas-fontes são normalmente compostos
de diversos códigos-fontes, armazenados em vários arquivos.
• Código-objeto é o código gerado na linguagem de máquina da
arquitetura-alvo. Esse código, entretanto, não pode ser
diretamente executado pelo processador, já que nem todas as
referências necessárias à execução estão resolvidas. Podem faltar,
por exemplo, referências a endereços de funções que estão em
outros códigos-objetos.
• Código-executável é o código gerado na linguagem da máquina
da arquitetura-alvo, com todas as referências resolvidas, que pode
ser diretamente executado pelo processador. O arquivo contendo
esse código é chamado de programa executável.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 75 / 78


Compilação

1 Pré-processamento. Nesta etapa o texto do programa é


transformado lexicalmente. Ocorre a supressão de espaços
desnecessários, substituição de macros e, em especial, a inclusão
de outros textos indicados pelas diretivas de pré-processamento
#include. O texto resultante é chamado de unidade de
compilação.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 76 / 78


Compilação

1 Pré-processamento. Nesta etapa o texto do programa é


transformado lexicalmente. Ocorre a supressão de espaços
desnecessários, substituição de macros e, em especial, a inclusão
de outros textos indicados pelas diretivas de pré-processamento
#include. O texto resultante é chamado de unidade de
compilação.
2 Compilação. Nesta etapa ocorre a análise sintática e semântica
da unidade de compilação. Caso não haja erros, é gerado o código
assembly correspondente.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 76 / 78


Compilação

3 Montagem. Nesta etapa ocorre a geração do código-objeto. Os


comandos assembler são transformados em linguagem de
máquina, faltando, entretanto, resolver as referências a (endereços
de) objetos e funções implementados em outros códigos-objetos,
como, por exemplo, as referências às funções das bibliotecas do
sistema.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 77 / 78


Compilação

3 Montagem. Nesta etapa ocorre a geração do código-objeto. Os


comandos assembler são transformados em linguagem de
máquina, faltando, entretanto, resolver as referências a (endereços
de) objetos e funções implementados em outros códigos-objetos,
como, por exemplo, as referências às funções das bibliotecas do
sistema.
4 Ligação. Nesta etapa ocorrem a combinação de todos os
códigos-objetos que compõe o programa e a resolução das
referências não resolvidas na etapa anterior. O resultado é um
código executável.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 77 / 78


Compilação

Figura : Processo de compilação de um programa em C.

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 78 / 78


Obrigado!

Professor Me. Rooney R. A. Coelho (UFTM) Aula 1 21 de Agosto de 2017 79 / 78

Вам также может понравиться