Buscar

Slides das duas primeiras aulas de Algoritmos e Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

3/22/2017
1
ALGORITMOS E PROGRAMAÇÃO
Desenvolvimento da Computação: Hardware
1
Ábaco (2000 a.C.)
• Desde que a humanidade começou a processar dados, elatentou construir máquinas para ajudá-la em seu trabalho.• Babilônia Antiga e no Egito. • Usado por comerciantes para fazer contas. • Depois de 4000 anos de uso, o ábaco foi inutilizado pela proliferação das calculadoras de bolso.
2
• Máquina de Pascal (1642) – calculadora de soma e subtração.
3
• Calculadora de Leibniz (1673) – realizava multiplicação e divisão. 
• Tear de Jacquard (início do séc. XIX) – uso de grandes cartões perfuradosque permitiam ou não a passagem de agulhas de um tear para controlaro padrão do tecido no material. • O tear de Jacquard foi a primeira máquina a usar cartões perfuradospara controlar processos mecânicos. 
● Engenho Diferencial de Charles Babbage (1822).
4
• Máquina Analítica de Charles Babbage (1833).
5
• (1842) Augusta Ada Byron: auxiliou Babbage com a formulação da noção de 
programação da Máquina Analítica para executar funções diferentes. 
• Ada é considerada uma das primeirasprogramadoras do mundo. 
• Linguagem de programação denominada Adaem sua homenagem.
6
3/22/2017
2
• Censo americano (1880): tempo para catalogação dos dados = mais de 7 anos (técnicas de processamentomanuais).• Herman Hollerith (1889): desenvolveu uma máquinase inspirando nos cartões de Jacquard. • As inovações propostas por Hollerith permitiram que o censo de 1890 fosse concluído em dois anos e meio.• Após a conclusão do censo, Hollerith aperfeiçoou a máquina (equipamento de cartão perfurado) e fundoua Tabulating Machine Company (1896), que, posteriormente, tornou-se a gigante IBM – InternationBusiness Machine.
7
• Alan Mathison Turing(1937) – Turing elaborou a Teoria da Máquina Universal. A “máquina de Turing” era capaz de resolver qualquer cálculo arbitrário, desde que carregada com um programa pertinente.
8
• William Hewlett e David Packard (1938) – criação da Hewlett-Packard (HP) em 
uma garagem em Palo Alto, Califórnia.
9
• Mark I - cálculo de tabelas de Navegação para a Marinha Americana.• Lançado em 1944.• Totalmente eletromecânico.• 17 metros de comprimento por 2,5 de altura.• Pesava 5 toneladas.• Mecanismo composto por 3000 engrenagens e 1400 comutadores rotativos, interligados por mais de 800 km de cabos elétricos.• Realizava as 04 operações aritméticas, cálculos trigonométricos e logaritmos.
10
Mark I
11
Mark II
12
3/22/2017
3
Primeira Geração de Computadores Modernos
13
• ENIAC (“Electronic Numeric Integrator Analyser and Computer”)• primeiro computador digital totalmente eletrônico (surgiu em 1946).• programação efetuada por meio de conexões elétricas e interruptores, processo muito trabalhoso.• mil vezes mais rápido que seus precursores eletro-mecânicos.• 30 toneladas.• 18.000 válvulas eletrônicas.• 1.500 relês eletromecânicos. • 150.000 watts .• a luz das válvulas e o forte calor atraíam insetos. • não possuía Sistema Operacional.• Propósito do ENIAC: efetuar cálculos de trajetórias balísticas para o governo americano, numa aplicação exclusivamente militar. Consumia 20 segundos para calcular a trajetória de um míssil. 14
O início da Computação Eletrônica
Uma Rápida Evolução Facilitando o Uso dos Computadores
• Com a Segunda Guerra, a demanda por cálculos balísticos era muito grande. O ENIAC (como vimos) foi um projeto fundamental para o progresso subsequente da informática. Mas este tinha um custo de operação elevado e exigia vários técnicos.• De fato, no final da década de 40 e início de 50 a necessidade de grandes equipes para operar os computadores exigiria mudanças.• Ademais, com o avanço científico e comercial, surgiu a necessidade de simplificar o processo de funcionamento dessas máquinas. • Pesquisas do matemático húngaro John von Neumann: desenvolveu o conceito de linguagem de programação, como sendo uma forma de a pessoa “conversar” com a máquina, determinando o que deveria ser processado.• Assim, na época surgem as primeiras linguagens de programação.
15
• Von Neumann também deu a sugestão de as instruções serem armazenadas na memória do computador.• 1947: lançado o Edvac (“Electronic Discrete Variable AutomaticComputer”).
16
• Antes de 1951: computadores eletrônicos - uso exclusivode cientistas, engenheiros e militares. • 1951 – J. Presper e Mauchly – construção do primeirocomputador disponível comercialmente, o UNIVAC(Universal Automatic Computer).• UNIVAC – melhor do que o ENIAC – menos válvulas.• Em 1952: UNIVAC previu corretamente o vencedor da eleição presidencial americana.
17
Segunda geração: uso de transistores
18
• Até 1947, equipamentos e computadores eletrônicos utilizavam válvulas a vácuo como componentes principais.
• Final da década de 40: desenvolvimento do transistor pelos laboratórios Bell. Menor consumo de energia, menos calor, menos espaço ocupado.• O transistor é um componente eletrônico quecomeçou a se popularizar na década de 1950,tendo sido o principal responsável pela revoluçãoda eletrônica na década de 1960.• É utilizado principalmente como amplificador einterruptor de sinais elétricos.
3/22/2017
4
Uma Rápida Evolução Facilitando o Uso dos Computadores
• Década de 60: primeiros computadores comerciais feitos com transistor.• Final da década de 50: surgiu o Fortran (“Formula Translator”), uma linguagem de programação para uso científico.• Grande salto para a popularização dos computadores.• 1960: a IBM lança uma linguagem de programação para uso em empresas: COBOL (“Common Business Oriented Language”) 
19
• Fortran
20
 Cobol
Entrada e Saída: Recebendo instruções e dados e imprimindo resultados
• Diversos modelos de computador valeram-se de cartões perfurados para a entrada de dados.• No caso dos computadores, os programas eram transcritos para os cartões – gerando por vezes pilhas imensas com centenas de unidades – e executados.• A leitura dos cartões era demorada.
21
PUC-RJ - 1981
• Final dos anos 40: a mídia magnética já era utilizada para gravação de músicas.• 1952: a IBM lança o tape drive modelo 726 com capacidade de armazenar 1,4 megabytes!• Os tapes drives não permitiam uma leitura aleatória dos dados, a forma de acesso era somente sequencial.
22
• Um disco mostrava-se mais promissor do que uma fita.• 1956: a IBM lança em 1956, um dispositivo denominado RAMAC (“Random Access Method of Accoutning and Control)” – primeiro disco rígido magnético para armazenamento de dados.• Possibilidade de acessar os dados randomicamente. 
23
• Cartões, fitas magnéticas e discos rígidos foram usados ao mesmo tempo durante duas ou três décadas.• Os cartões magnéticos foram utilizados como entrada de dados até a década de 80. • 1959: a IBM lança as impressoras de impacto, como o modelo 1403, que foram utilizadas até a década de 1970.
IBM 1403 printer
24
3/22/2017
5
Multiprocessamento
• Anos 60: popularização do computador em empresas devido à evolução dos computadores e à redução do custo de aquisição, operação e manutenção. 
• Equipamentos com maior capacidade de armazenamento e memória, tornando possível o multiprocessamento (execução simultânea de vários programas). 
• Anos 70: surgem computadores que podiam ser compartilhados por diversas pessoas ao mesmo tempo por meio de terminais. 
• Vantagem: os usuários podem compartilhar recursos e informações. 
25
• 1957: grande revolução dos computadores começa em outubro de 1957, quando a União Soviética coloca em órbita da Terra o Sputnik, primeiro satélite artificial.
• Em menos de 12 anos o homem chegaria à Lua gerando uma sucessão de avanços tecnológicos.
• O que isso tem a ver com os computadores?
26
A Corrida Espacial
• Por que a década de 50 é importante para a computação, em termos históricos?
• Este período da história teve um impacto profundo nas áreas tecnológica e de comunicações, levando ao surgimentodos microcomputadores e da própria Internet.
27
• Reação dos americanos ao Sputnik (primeiro satélite artificial a orbitar a Terra): foi formada a ARPA (“Advanced Research ProjectsAgency”), ligada ao Departamento de Defesa dos Estados Unidos. 
• Seu objetivo era conduzir pesquisas científicas e tecnológicas para uso militar.
• Início dos anos 60: surge a ideia de redes de transmissão de informações interligando computadores!
28
• Setembro de 1969: o primeiro nó da ARPAnet é instalado no Network Measurement Center da Universidade da Califórnia (UCLA).
• Outubro de 1969: o Stanford Research Institute passava a ser o segundo nó da ARPAnet. • Com esse segundo ponto, a primeira mensagem foi transmitida através da rede.
• Outubro de 1969: a Universidade da Califórnia, em Santa Bárbara, conectava-se à rede, passando a ser o terceiro nó. 
29
• Dezembro de 1969: a Universidade de Utah passava a ser o quarto ponto da ARPAnet.
• Com o tempo, diversas outras universidades foram aderindo à ARPAnet, que foi perdendo sua característica exclusivamente militar, ou formaram redes acadêmicas independentes, que viriam a ser interligadas anos depois, formando a Internet.
30
3/22/2017
6
• ARPAnet (1969)
31 32
Repercussão Social
• A era da informática, que sucedeu a corrida espacial, popularizou os computadores, gerando novas formas de comunicação e exercendo grande impacto sobre a sociedade
• Boa parte da tecnologia que hoje utilizamos decorre dos desenvolvimentos realizados nos anos 60, graças aos grandes esforços para levar as pessoas à Lua.
33
• Resolução desse problema: em 1958, Jack Kilby e Robert Noyce, respectivamente da Texas Instruments e da FairchildSemicondutor, inventaram o circuito integrado (microchip ou chip).• A ideia era conceitualmente simples: miniaturizar componentes, tais como transistores, diodos, capacitores, resistores, e colocá-los em uma única pastilha de silício. • Isso levaria não apenas a uma economia de espaço, mas também a uma redução significativa do consumo de energia elétrica e maior resistência mecânica. • Resultado: computadores mais rápidos, menores e bem mais baratos.
34
Problemas da viagem à Lua: excesso de peso e consumo energético. 
Intel 4004 (1969): primeiro microprocessador disponívelcomercialmente.
35
Um Clássico: IBM System/360
• Lançada em abril de 1964: primeiro grande clássico da história dos computadores comerciais: a linha de computadores da IBM denominada System/360.
• IBM System 360 modelo 30 chegava a 64 kBytes de memória.
• 1971: substituída pela série /370.
• Estabeleceu alguns dos padrões hoje utilizados na indústria da informática, tais como 1 byte ser composto de 8 bits.
36
3/22/2017
7
IBM System/360
37
Sistemas Operacionais Utilizados
• O Sistema Operacional OS/360 (Operating System/360) foi desenvolvido para os computadores de médio porte dessa série.
• Os modelos maiores chegaram a utilizar uma espécie de cópia do sistema operacional Multics (que seria um precursor do Unix).
• Os modelos menores foram projetados pra utilizar o sistema operacional DOS/360 (Disk Operation System/360).
38
A Primazia dos Circuitos Integrados
• O System/360 funcionava basicamente com transistores.
• O modelo 360/40 teve a primazia de ser o primeiro computador da IBM a possuir circuitos integrados, que era o prenúncio de uma nova era para o processamento de dados.
• Década de 70: os circuitos integrados se tornaram extremamente comuns.
39
•LSI (Large Scale Integration) e VLSI (Very LargeScale Integration).•Sistemas multiusuário, UNIX.•PC de 16 bits da IBM (DOS).•Workstations (monousuário e multitarefa).•Multiprocessamento, divisão de programas entre processadores, paralelismo.•Arquitetura RISC (Reduced Instruction Set•Computer).
40
Gerações de Computadores
• 0a. Geração – Computadores Mecânicos (1942 – 1945)• 1a. Geração – Válvulas (1945 – 1955)• 2a. Geração – Transistores (1955 – 1965)• 3a. Geração – Circuitos Integrados (1965 – 1980)• 4a. Geração – VLSI (1980...?)• Aumento da velocidade de processamento que alcançou a ordem de nanosegundos (10-9)• 5a. Geração – Conectividade, mobilidade, etc. (1991...)
41
•Sistemas especialistas, sistemas multimídia, banco de dados. • Inteligência artificial, redes neurais, computação afetiva.•Arquiteturas paralelas, programação concorrente, processamento distribuído.•Surge o Linux.• Interfaces Gráficas.•CONECTIVIDADE (802.11, GSM, GPRS, etc..)•MOBILIDADE (notebooks, PDAs, telefones celulares)•celulares: autonomia (bateria) de 1 semana (?).•PDAs: autonomia de 1 semana.•notebooks: autonomia entre 30 minutos a ~8 horas.
42
3/22/2017
8
Noções de Hardware
43
• Hardware é o nome que damos à parte física de um equipamento computacional. • Ele se opõe ao software, que consistiria na parte lógica, ou seja, o conjunto de dados e operações realizados pelos equipamentos computacionais.• O termo "hardware" não se refere apenas aos computadores pessoais, mas também aos equipamentos embarcados:• em produtos que necessitam de processamento computacional, como os dispositivos encontrados em equipamentos hospitalares, automóveis, aparelhos celulares, dentre outros.• Na ciência da computação, a disciplina que trata das soluções de projeto de hardware é conhecida como Arquitetura de Computadores.
44
•BIT (simplificação para dígito binário, “BInarydigiT” em inglês) é a menor unidade de informação usada na Computação e na Teoria da Informação. •Os componentes de hardware de um computador trabalham unicamente com bits.•Um bit é considerado geralmente como um sinal elétrico, que pode assumir dois estados distintos (ligado ou desligado), equivalentes aos valores abstratos 0 e 1. •Toda informação de uma máquina computacional é transformada em bits, que são manipulados e transformados.
45
• Os bits são agrupados em forma de bytes. Um byte é um conjunto de 8 bits, que de acordo com sua posição e seu estado de ligado/desligado, assumem um valor de dado específico. Todas as combinações possíveis de oito bits podem ser encontradas em uma tabela ASCII.• Como os computadores trabalham com um grande volume de dados, e cada byte corresponde a símbolo (ou "caractere"), existem outras nomenclaturas para o agrupamento de bytes.
46
• A arquitetura dos computadores pode ser definida como "as diferenças na forma de fabricação dos computadores". • Com a popularização das máquinas computacionais, surgiu a necessidade de integração de diversos equipamentos de fabricantes muitas vezes diferentes, o que levou à criação de padrões de arquitetura. • Das diversas arquiteturas já construídas, duas foram as que mais se popularizaram: • o PC (Personal Computer, ou em português Computador Pessoal), desenvolvido pela empresa IBM, que tornou-se o padrão dominante atualmente e • o Macintosh, desenvolvido pela empresa Apple. • Estas duas arquiteturas servirão para compreendermos os dois modelos de arquitetura: aberta e fechada.
47
• A arquitetura aberta (a mais utilizada, criada inicialmente pela IBM) consiste em permitir que outras empresas fabriquem computadores com a mesma arquitetura.• Com isso, o usuário tem uma gama maior de opções e pode montar seu próprio computador de acordo com suas necessidades.• No entanto, podem ocorrer problemas, sendo o mais importante o conflito de hardware. • A arquitetura fechada consiste em empresas terem controle sobre outras empresas que fabricam computadores dessa arquitetura, fazendo com que os conflitos de hardware diminuam muito, o computador funcione mais rápido e com melhor qualidade. • No entanto, nesse tipo de arquitetura, o usuário está restringido a escolher dentre os produtos da empresa e não pode montar seu próprio computador.
48
3/22/2017
9
Principais Componentes de um Computador
• Podemos chamar de Display qualquer componente computacional que serve para visualização dos dados inseridos e processados pelo computador. • Como seres humanos não podem trabalhar com osdados processados de forma binária, é necessário haver uma conversão destes dados para uma interface humana que permita visualizar e manipular os dados, sem a necessidade de mexer diretamente com os sinais elétricos que representam estes dados. • A forma mais conhecida de display é a tela do computador.
49
• A placa-mãe, também denominada mainboard ou motherboard, é uma placa de circuito impresso eletrônico/electrónico. • É considerada o elemento mais importante de um computador, pois tem como função permitir que o processador se comunique com todos os periféricos instalados. • Na placa-mãe encontramos não só o processador, mas também a memória RAM, os circuitos de apoio, as placas controladoras, os conectores do barramento PCI e os chipset, que são os principais circuitos integrados da placa-mãe, responsáveis pelas comunicações entre o processador e os demais componentes.
50
51
• CPU (de Central Processing Unit, ou Unidade Central de Processamento) ou processador é a parte de um computador que interpreta e leva as instruções contidas no software. • Na maioria das CPUs, essa tarefa é dividida entre uma unidade de controle, que dirige o fluxo do programa, e uma ou mais unidades de execução que executam operações em dados.• Quase sempre, uma coleção de registros é incluída para manter os operadores e intermediar os resultados.• Quando cada parte de uma CPU está fisicamente em um único circuito integrado, ela é chamada de microprocessador. Praticamente todas as CPU'sfabricadas hoje são microprocessadores.
52
53
• O termo CPU é frequentemente usado para incluir outras partes importantes de um computador, tais como caches e controladores de entrada/saída, especialmente quando aquelas funções estão no mesmo chip microprocessador da CPU.
• Os fabricantes de computadores de mesa equivocada e frequentemente descrevem como CPU o computador pessoal inteiro, chamando-o de a unidade de sistema ou, algumas vezes, a caixa branca, incluindo o gabinete do computador e os componentes sólidos (termo genérico "hardware" em inglês) que ele contém. 
54
3/22/2017
10
• Corretamente, a CPU, como unidade funcional, é aquela parte do computador que realmente executa as instruções (somar, subtrair, multiplicar, mudar de posição, etc.)• Uma família de esquemas (ou desenho interno) de uma CPU é frequentemente referida como uma "arquitetura de CPU".
55 56
• Disco rígido, popularmente chamado de HD (do inglês Hard Disk; o termo "winchester" há muito já caiu em desuso), é a parte do computador onde são armazenadas as informações, ou seja, é a "memória permanente" propriamente dita (não confundir com "memória RAM"). • É caracterizado como memória física, não-volátil, que é aquela na qual as informações não são perdidas quando o computador é desligado.• O disco rígido é um sistema lacrado contendo discos de metal recobertos por material magnético onde os dados são gravados através de cabeças, e revestido externamente por uma proteção metálica que é presa ao gabinete do computador por parafusos. • É nele que normalmente gravamos dados (informações) e a partir dele lançamos e executamos nossos programas mais usados.
57 58
• Este sistema é necessário porque o conteúdo da memória RAM é apagado quando o computador é desligado. • Desta forma, temos um meio de executar novamente programas e carregar arquivos contendo os dados da próxima vez em que o computador for ligado. • Existem vários tipos de discos rígidos: IDE/ATA, Serial_ATA, SCSI, etc. • A partir de 2010 começou a se popularizar o SSD ( Solid State Disc), baseado em memória flash e que suporta impactos de até 1000 vezes a força da gravidade.
59
Tendência atual dos HDs
60
3/22/2017
11
• Periféricos são aparelhos ou placas que enviam ou recebem informações do computador.
• Em informática, o termo periférico aplica-se a qualquer equipamento acessório que seja conectado à CPU (unidade central de processamento). 
• São exemplos de periféricos as impressoras, o scanner, leitores e ou gravadores de CDs e DVDs, leitores de cartões e disquetes, mouse, teclado, Webcams, dentre outros.
• Existem três tipos de periféricos.
• Os periféricos de entrada enviam informação para o computador. • Exemplos: teclado, mouse, microfone.• Os periféricos de saída recebem informação do computador. • Exemplos: monitor, impressora, placas/caixas de som.• Os periféricos mistos enviam/recebem informação para/do computador.• Exemplos: telas touchscreen, CD's, DVD's.
61
• Cada periférico tem sua função definida e executa ou envia tarefas ao computador de acordo com essa função. • Teclado: envia ao computador informações digitadas pelo operador.• Mouse: permite o envio de informações por meio de deslocamento e do acionamento de botões.• Impressora: recebe informações do computador e imprime essas informações no papel.• Placa de som: recebe informações de som vindas do processador e as repassa para as caixas de som.• Outros: sistemas sensíveis ao toque, calor, luz, óculos de simulação, controladores de jogos, etc.
62
• BIOS, em computação, é a sigla para Basic Input/Output System(Sistema Básico de Entrada/Saída) ou Basic IntegratedOperating System (Sistema de Operação Básico Integrado). • A BIOS é o primeiro programa executado pelo computador ao ser inicializado. • Sua função primária é preparar a máquina para que outros programas, que podem estar armazenados em diversos tipos de dispositivos (discos rígidos, disquetes, CDs, etc), possam ser executados. • A BIOS é armazenada num chip ROM (Read-Only Memory, Memória Somente de Leitura) localizado na placa-mãe, chamado ROM BIOS.• EFI (Extended Firmware Interface) é uma interface criada pela Intel para substituir o velho BIOS.
63 64
• Barramento é um conjunto de linhas de comunicação que permitem a interligação entre dispositivos, como a CPU, a memória e outros periféricos.
• O desempenho do barramento é medido pela sua largura de banda (quantidade de bits que podem ser transmitidos ao mesmo tempo).
• Também pela velocidade da transmissão medida em bps (bits por segundo).
• Tipos de barramento: do processador, de cache, de memória, de entrada/saída, de dados.
65
• Dispositivos de multimídia são equipamentos que criam uma interação “sensorial” entre o usuário e o computador, frequentemente integrando som e imagem.• Durante os anos 90 houve uma grande expansão no mercado de multimídia para microcomputadores pessoais, com a chegada de novos padrões de compactação sonora (MP3) e de compactação de vídeo (MPG, MP4, AVI etc.). • Com isso, tornaram-se atrativos os “kits" multimídia.• Hoje temos uma enorme variedade de dispositivos que engloba desde placas de som com diversos canais (compatíveis com padrões Dolby-surround) até placas de vídeo de alta performance que renderizam imagens em altas resoluções e com os efeitos mais modernos da indústria visual
66
3/22/2017
12
Memórias internas
2 TIPOS BÁSICOS
RAM – random access memory• Memória principal• Baseada em chips semicondutores• Volátil
ROM – read only memory• Vem gravada de fábrica• OU seja: o conteúdo é gravado na fabricação
67
Desenvolvimento da Computação: Software e Linguagens de Programação
68
• O Software de computador pode ser dividido em dois tipos: • programas de sistema e • programas aplicativos. • O principal programa de sistema é o sistema operacional (S.O.), que controla todos os recursos do computador e fornece a base lógica sobre a qual os programas aplicativos são escritos. • Sua principal função é isolar os usuários da complexidade do hardware. • o S.O. deve oferecer uma alocação ordenada e controlada dos processadores, memórias e quaisquer dispositivos de E/S pelos quais que os programas podem competir. • Ou seja, o S.O. tem como função gerenciar eficientemente as diferentes partes do sistema.
69
1964 - Multics• Em 1964, com um time de programadores ( naquela época engenheiros) das empresas AT&T (Laboratórios Bell), da General Electric (GE) e liderados pela UniversidadeMIT (Massachusetts Institute of Technology) idealizaram o Multics, um Sistema Operacional, Multi processadores, multi usuários, múltiplas interfaces e multi aplicativos para trabalhar em rede através de terminais. • Um projeto muito além de seu tempo, teve que aguardar alguns anos para entrar em operação, pois na época não possua hardware para rodar esse S.O. O último sistema em operação foi desligado em 2000.
70
1969 – Unics ou Unix• Em 1969 surge o primeiro Fork da história da informática, Fork é uma bifurcação, ou seja, um programa com características semelhantes, onde são introduzidas modificações. • Ken Thompson, que trabalhava no projeto do Multics, foi o autor desse Fork, trabalhou usando um computador PDP-7 ocioso, um computador muito mais modesto do que o necessário para rodar o Multics. • Thompson reescreveu o Multics em assembly e batizou seu projeto de Unics ( em tom de deboche), rebatizado mais tarde de Unix.
71
1973 – Unix escrito em linguagem C• Em 1973 o próprio Ken Thompson, em conjunto com Dennis Ritchie reescreve o Unix em linguagem C, um marco histórico, a linguagem C é uma linguagem de programação muito simples de ser entendida por nós seres humanos, ao contrário do Assembly, a mais leve das linguagens, mas extremamente complexa. • A Linguagem C, apesar de ser uma linguagem de alto nível, permanece pequena, leve e otimizada o suficiente para se escrever um sistema operacional. • O uso da linguagem C, é considerado uma das principais razões para a rápida difusão do Unix. O Unix herdou do Multics suas características: Multiprocessadores, multiusuários, múltiplas interfaces e multiaplicativos.
72
3/22/2017
13
1976 – Apple 2• Em 1976 Steve Jobs, o guru da Apple, teve uma ideia que revolucionou o mundo, um computador pequeno, portátil e barato o suficiente para que qualquer pessoa pudesse ter um, o apple 2 (o apple 1 era apenas uma placa de computador ligada a um teclado). • O apple 2 rodava um interpretador basic, gravado em uma memória rom, através de fitas k7 ou disquetes. Os programas concebidos em basic podiam ser salvos e carregados de volta ao sistema.
73
1980 – PC - Ms Dos• Em 1980 a gigante dos computadores de grande porte, a IBM (International Business Machines), decide entrar para o mercado dos computadores pessoais, mas seu computador pessoal, o PC (Personal Computer) assim batizado pela IBM, não possuía nenhum programa para rodar nele. • A IBM fechou contrato com a Microsoft de Bill Gates, para ela fornecer o Sistema Operacional de seu PC's. • Bill Gates, um visionário homem de negócios, fechou na época, o que é considerado por muitos, o melhor negócio de todos os tempos (vendeu para a IBM, o que não tinha, um Sistema Operacional). • Bill Gates procurou Tim Paterson, que desenvolveu o Qdos, e comprou dele por míseros US$50.000, rebatizou de Ms dos e vendeu para os computadores da IBM.
74
• A rápida popularização dos PC's, provocou um crescimento meteórico da então pequena Microsoft. Mais tarde Bill Gates contratou Tim Paterson para trabalhar na Microsoft.• Tim Paterson que podia ter se tornado o homem mais rico do mundo, por ironia trabalhava para Bill Gates. • Ao contrário do Unix, o Ms dos é um sistema operacional pensado para ser Simples, único usuário, só funcionava nos processadores Intel, só executava um programa por vez, e originalmente não trabalhava em rede.
75
1984 – Apple Macintosh – Mac OS• Em 1984 Steve Jobs “toma emprestado” da Xerox, como ele mesmo admite, a ideia de um sistema operacional baseado em objetos clicáveis com um mouse, e a Apple lança no mercado o Macintosh. • O Mac OS possui seu código desenvolvido pela Apple (sendo este fechado e proprietário). • O Mac OS foi desenvolvido do zero, desta forma era incompatível com os programas feitos para o apple 2.• Assim, o Macintosh tornou o apple 2 obsoleto.
76
1984 – GNU – “GNU não é Unix”• Neste mesmo ano Richard Stallman começa a desenvolver o projeto GNU (uma abreviação recursiva que quer dizer GNU Não é Unix): surge a Filosofia de software livre.• O GNU deveria ter as mesmas características do Unix sem aproveitar seu código.• No software livre, qualquer pessoa pode copiar, modificar o código sem a necessidade de pedir permissão. • Essa filosofia baseia-se no fato de que, para desenvolver um programa, não é preciso começar do zero, pode-se aproveitar o trabalho de programadores que vieram antes.
77
1986 – Windows•Em 1986 a Microsoft lança o Windows 1, este nem mesmo era um S.O. Era um aplicativo de janelas que rodava em cima do ms dos.•O lançamento do Windows manteve compatibilidade com programas feitos para o ms dos, e adicionou a interface “clicável” com mouse. 
78
3/22/2017
14
1987 - Minix• Em 1987 Andrew Stuart Tanenbaum cria o Minix para demostrar seu livro "Operating Systems Design andImplementation“.• O Minix é um “Unix-like” compacto, escrito em 12.000 linhas de código, gratuito e com o código fonte conhecido.• Este S.O. roda até mesmo em um 286 com apenas 16mb de memoria RAM, e é possível rodar através de um live CD sem necessidade de instalação.
79
1991 - Linux• Em 1991 Linus Torvalds, inspirado pelo Minix, começa a desenvolver o Linux, e recebe contribuição de milhares de programadores ao redor do mundo.• Grandes empresas também contribuem na programação de seu código como IBM, Sun Microsystems, Hewlett-Packard (HP), Red Hat, Novell, Oracle, Google, Mandriva e Canonical.• Atualmente, o Linux é o S. O. mais utilizado, desde computadores de grande porte e passando por computadores pessoais, DVD players, roteadores e celulares.
80
•Outros S.O.’s
1993 – Windows NT1994 – Mac RISC – Power PC2001 – Windows XP2006 – Apple Intel – Mac OSX2008 – Android...
81 82
83
Linguagens de Programação
84
3/22/2017
15
Histórico Linguagens de Programação
• O link abaixo é muito interessante:
http://cdn.oreillystatic.com/news/graphics/prog_lang_poster.pdf
• Linguagem de programação: conjunto de termos e regras (sintaxe) que permitem a formulação de instruções de um computador.
• Início• Linguagem elementar/binária: 0 e 1.• Não era nada prática.
85
Histórico Linguagens de Programação
• Linguagem Assembler• Orientada à máquina.• Precisa passar pela fase de montagem através de um montador (assembler program) que traduz suas instruções para instruções de máquina executáveis pelo computador.
86
Histórico Linguagens de Programação
• 1ª geração de computadores
• Códigos assembler• UNIVAC – linguagem flowmatic• IBM 701 – linguagem speedcore
87
Programação Estruturada
• Programação estruturada é uma forma de programação de computadores que preconiza que todos os programas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e repetição. • Um dos primeiros a preconizar a programação estruturada foi Haskell B. Curry. • Haskell é uma linguagem de programação puramente funcional, de propósito geral, nomeada em homenagem ao lógico HaskellCurry. • Como uma linguagem funcional, a estrutura de controle primária é a função; a linguagem é baseada nas observações de Haskell B. Curry e seus descendentes intelectuais.
88
• A programação estruturada orienta os programadores para a criação de estruturas simples em seus programas, usando as sub-rotinas e as funções. • Foi a forma dominante na criação de software entre a programação linear e a programação orientada por objetos. • Apesar de ter sido sucedida pela programação orientada por objetos, pode-se dizer que a programação estruturada ainda é marcantemente influente, uma vez que grande parte das pessoas ainda aprende programação através dela. • Porém, a orientação a objetos superou o uso das linguagens estruturadas no mercado. 
89
Histórico Linguagens de Programação
• FORTRAN (FORmula TRANslating system)• Década de 50• IBM• Início: cálculos matemáticos
• ALGOL (Algorithmic Oriented Language)• Voltada para expressão de algoritmos• Características científicas• Alto custo do compilador
• APL (A Programming Language)•Destinada a terminais com aplicações interativas• Própria para operar vetores, matrizes e funções matemáticas
90
3/22/2017
16
• BASIC• 1965• Criada por Thomas Kurtz e John Kemeny• Foi muito popular• Compatível com vários tipos de computadores• Versão subsequente: Turbo Basic (da Borland)• Visual Basic• COBOL (Common Business Oriented Language)• Linguagem para processamento comercial• 1961 – primeira versão• Estruturada
91
• C• Linguagem estruturada• 1972• Idealizada por Dennis Ritchie
• C++
• Versão avançada• Orientada a objetos
92
• ADA• Criada em 1975• Departamento de defesa dos EUA• Equipamentos com processadores múltiplos• Estruturada• Permitia a execução de tarefas com controle de erros• Homenagem a Ada Byron• CLIPPER• Voltado para gerência de arquivos• Família dBase• dBase• Gerenciador de arquivos • DELPHI• Concorrente do Visual Basic• Da empresa Borland• Baseada em Pascal• Orientada a objetos
93
• JAVA• Sun Microsystems• 1991: Oak – uma linguagem para aplicações de rede• Similar ao C++, porém mais simples• Fortemente tipada• Orientada a objetos• Independente de plataformas• Linguagem interpretada• Applets: pequenos programas Java projetados para serem distribuídos pela internet• Não têm acesso ao sistema de arquivos (medida de segurança)
• LISP• Voltada para a tradução e documentação de textos• Década de 60 – MIT – John MacCarthy• Ferramenta para estudo de Inteligência Artificial
94
• LOGO• Meio educacional• MIT• Década de 60 – Peymour Papert• PASCAL• 1971 – Zurique – Nicklaus Whirth• Estruturada• Uso geral: aplciações comerciais e científicas• Substituiu FORTRAN• Versão interpretada é mais difundida que compilada – compatível com qualquer computador• PL1 • Programming Language One• Linguagem orientada a problemas de qualquer natureza• IBM
95
• SNOBOL• StrinNg–Oriented symBOLic language• Utilizada para criação de compiladores e editores de texto• Processamento de cadeias de caracteres e de expressões matemáticas• Visual Basic• 1991 – Microsoft• Primeira linguagem de características gráficas do Windows• Interface GUI (Graphical User Interface)
96
3/22/2017
17
• JAVA• C• C#• C++• Objective-C• PHP• Python• Ruby on Rails• Perl• ABAP
97
Fonte imagem: http://liveinformationnews.blogspot.com.br/2011/02/dispositivos-moveis-devem-atrair-novos.html
Ranking: http://sejalivre.org/ranking-das-linguagens-de-programacao/
Avançando mais...
98
Prêmio Turing
• Como se fosse o Prêmio Nobel da Computação• Muitos criadores de linguagens de programação já ganham o Prêmio Turing• Prêmio Anual• Concedido pela ACM - Association for Computing Machinery • Concedido para uma pessoa selecionada por contribuições à computação. As contribuições devem ser duradouras e fundamentais no campo computacional. 
• Link:• http://www.acm.org/• Na Wikipedia há uma lista de 1966 a 2010 dos laureados pelo prêmio• http://pt.wikipedia.org/wiki/Prêmio_Turing
99
Referências
• Arquitetura e Organização de computadores – Willian Stalings
• Informática Conceitos básicos – Fernando de Castro Vellozo
• Adaptado de material do prof. Rossano Mato.
• http://www.pucrs.br/edipucrs/online/historiadacomputacao.pdf
• Livro • Informática: conceitos básicos (Velloso)
• Sites:• http://www.hardware.com.br/tutoriais/memoria-flash/• http://www.clubedohardware.com.br/artigos/Tudo-o-Que-Voce-Precisa-Saber-Sobre-Memorias-DDR-DDR2-e-DDR3/1046• http://pt.wikiversity.org/w/index.php?title=Introdu%C3%A7%C3%A3o_%C3%A0_Ci%C3%AAncia_da_Computa%C3%A7%C3%A3o/Introdu%C3%A7%C3%A3o_ao_Hardware&oldid=75533. 
100

Outros materiais