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