Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução à Ciência da Computação I Prof. Cristiano Akamine akamine@mackenzie.com.br O que é um Computador? Um computador é um dispositivo capaz de executar cálculos e tomar decisões lógicas milhões de vezes mais rápidas do que podem os seres humanos. Ábaco Chinês � Na medida em que os cálculos foram se complicando e aumentando de tamanho, sentiu-se a necessidade de um instrumento que viesse em auxílio, surgindo assim há cerca de 2.500 anos o ÁBACO. � O ábaco chinês possuía 2 conjuntos por fio, contendo 5 contas no conjunto das unidades e 2 contas que representavam 5 unidades. Soroban: O Ábaco Japonês � A variante do ábaco mais conhecida é o SOROBAN, ábaco japonês simplificado (com 5 contas por fio, agrupadas 4x1). � Esse sistema de contas e fios recebeu o nome de “calculi” pelos romanos, dando origem à palavra cálculo. Pascalina � Em 1642, Pascal cria a primeira máquina de calcular de que se tem notícia. Ela funcionava através de engrenagens mecânicas, e conseguia realizar somente a soma. • A Pascalina, como ficou conhecida, foi a primeira calculadora mecânica do mundo. • A comercialização de suas calculadoras não foi satisfatória devido a seu funcionamento pouco confiável, apesar de Pascal ter construído cerca de 50 versões. Nova Calculadora Mecânica � Em 1694, 52 anos depois, Gottfried Wilhelm von Leibniz aprimora o invento de Pascal, de tal forma que a nova "calculadora" mecânica já era capaz de realizar a multiplicação, além da soma. Arithmometer � Em 1820, Charles Xavier Thomas (1785-1870, conhecido como Thomas de Colmar, Paris - FR) projetou e construiu uma máquina capaz de efetuar as 4 operações aritméticas básicas (soma, subtração, divisão e multiplicação): a Arithmometer. � Esta foi a primeira calculadora realmente comercializada com sucesso. � Ela fazia multiplicações com o mesmo princípio de uma outra calculadora criada por Leibnitz e com a assistência do usuário efetuava as divisões. Charles Babbage 1792-1871 � O início real do desenvolvimento dos computadores como os conhecemos hoje se deve a Charles Babbage, matemático inglês que, em 1812. � Segundo observou Babbage: “As operações matemáticas repetitivas poderiam ser desenvolvidas com mais agilidade e confiabilidade pelas máquinas do que pelos homens. “ Condessa Ada Lovelace A Primeira Programadora � Sua companheira, a condessa Ada Lovelace se tornou a primeira programadora de computador do mundo, ao ajudar Babbage no projeto de uma máquina analítica, que permitiria calcular funções matemáticas bem mais complexas que as logarítmicas. Máquina das Diferenças de Babbage � Ada criou os programas para essa máquina, que no entanto nunca funcionou: as centenas de engrenagens, rodas e barras apresentavam problemas, pois a metalurgia na época não tinha tecnologia suficiente para evitar imperfeições nas peças. � Apesar disso, a estrutura do equipamento estava correta, e os computadores atuais ainda têm muito a ver com essa máquina (até pelo fato de nem sempre funcionarem como se previa...) MÁQUINA ANALÍTICA DAS DIFERENÇAS DE BABBAGE IBM – Para Calcular o Censo � Em 1889, Herman Hollerith, inventor americano, e fundador da empresa que deu origem à IBM, estava às voltas com um problema norte-americano: estava sendo realizado um censo demográfico no país, mas se temia pela quantidade de tempo necessário para apurar todos os resultados desejados. Para piorar o caso, no censo realizado 10 anos antes, foram necessários sete anos para se chegar aos resultados buscados. Por conta disso, acreditava- se que, para este novo censo, seriam necessários 10 anos de análise Hollerith � No entanto, com a máquina inventada por Hollerith, o resultado do censo foi apurado em apenas seis semanas. � Além da agilidade que conferiu ao processo, a máquina deste americano trazia consigo a idéia de cartões perfurados para armazenar dados. � Ou seja, os cartões perfurados tinham na época uma função parecida com a dos nossos disquetes, armazenar informações (guardadas as devidas proporções). O primeiro computador eletromecânico, Versuchmodell 1 ou Z-1 � Mas foi a partir da II Guerra Mundial que o desenvolvimento dos computadores eletrônicos ganhou mais força, quando os governos perceberam o potencial estratégico que estas máquinas ofereciam. � O primeiro computador eletromecânico, o chamado Versuchmodell 1 ou Z-1, usava relês e foi construído pelo alemão Konrad Zuse (1910-1995) em 1936. � Zuze tentou vende-lo ao governo para uso militar, mas a princípio, foi subestimado pelos nazistas, que não se interessaram pela máquina O MARK I � O computador nasceu então com a II Guerra Mundial nos EUA, entre 1943 e 1944, � A Marinha em conjunto com a Universidade de Harvard e a IBM desenvolveram o ASCC - Americam Automatic Sequence Controlled Calculator (Chamado de Mark I). � Howard Aiken, um professor da Universidade de Haward, elabora o primeiro computador eletrônico, através do apoio do então presidente da IBM Thomas Watson. � Mark I era um gigante eletromagnético que ocupava 120 m³, com milhares de redes e conseguia multiplicar números de 10 dígitos em 3 segundos. Colossus � Mais tarde, visto o potencial e o progresso do uso de máquinas mais sofisticadas pelos aliados, os alemães desenvolveram o Z-3. � Pelo lado britânico, foi desenvolvido o Colossus, que, assim como o Z3, também usava válvula. � Esse computador foi criado com a finalidade de decifrar os códigos secretos usados pelo exército alemão na II Grande Guerra. � O interesse pela construção do primeiro computador foi grande, seu interesse inicial era militar. � Alemanha e E.U.A disputavam uma acirrada corrida contra o tempo. O Eniac - Integrador e Computador Numérico Eletrônico � O Eniac, como se chamava (sigla para Integrador e Computador Numérico Eletrônico, em inglês). � Construído em 1946, por John Mauchly e John Eckart Jr., ambos americanos. � Tinha um metro e meio de altura e mais de 20 metros de comprimento, pesava trinta toneladas (30.000 Kg). � Não era muito inteligente, errava em várias operações, quebrava muito e raciocinava com lentidão. � Se você pedisse para ele fazer uma conta de multiplicar, ele demorava onze segundos!. O Eniac – Início do código binário! � Começo da história de zeros e uns (0 e 1), mais conhecida como código binário! � O Eniac foi criado para ajudar a decifrar códigos secretos, usados na Segunda Guerra. � E ele só fazia isso graças às suas 18 mil válvulas. � Cada válvula funcionava como um interruptor de luz, que ligava e desligava, soltando pequenas cargas elétricas. � Se a válvula ligasse, o computador entendia um 0 (zero). Se desligasse, era um 1 (um). � O computador lia esses zeros e uns, e ia formando combinações de números, binários. Ex:: (00111010111001) Tipo de válvula a vácuo utilizada pelo Eniac EDVAC - Eletronic Discrete Variable Computer ou "Computador Eletrônico de Variáveis Discretas � Planejado para acelerar o trabalho armazenando tanto os programas quanto os dados em sua expansão de memória interna. � Os dados, então, eram armazenados eletronicamente num meio material composto de um tubo cheio de mercúrio, conhecido “como linha de retardo” , onde os cristais dentro do tubo geravam pulsos eletrônicos que se refletiam para frente e para trás, tão lentamente quanto podiam, de fato a reter a informação, � Outra grande característica do EDVAC era poder codificar as informações em forma bináriaem vez da forma decimal, reduzindo bastante o número de válvulas EDVAC - 1949 e seu inventor, o cientista inglês - Maurice Wilkes, o primeiro computador operacional em grande escala capaz de armazenar seus próprios programas. Em 1947, um grupo de Stanford inventa o Transistor � Usando elementos semicondutores, os transistores funcionam como chaves. � Bem menores e mais rápidos, não esquentam, duram mais e consomem menos energia que as válvulas. � O desaparecimento das válvulas aconteceu logo após a descoberta dos transistores, o que resultou numa diminuição considerável nos tamanho das máquinas, � As primeiras linguagens de programação também apareceram neste período. � Ao decorrer dos tempos uma nova evolução acontecia. – Aparecendo a multiprogramação, – Memória através de semicondutores e discos magnéticos, – E os microprocessadores, que reduziram novamente o tamanho das máquinas. TRANSÍSTOR Em 1949, o EDSAC Eletronic Delay Storage Automatic Calculator � O EDSAC , ou sigla para "Calculadora Automática com Armazenamento por Retardo Eletrônico", em inglês, marcou o último grande passo na série de avanços decisivos inspirados pela guerra. � Apartir de então começou a "Era do Computador!” e o então, surgimento dos "sanduíches de silício!". Em 1951 surge o Univac I � Em 1951 surge o Univac I, o primeiro computador produzido em escala comercial. � As máquinas ainda eram muito grandes e pareciam os tradicionais eletrodomésticos. Univac I Típica Central de Computadores na Década de 70 � Nas décadas de 60 e 70 os computadores ainda apresentavam aparência bastante grande. � Elementos semelhantes a armários caracterizavam os computadores No Ano 71 Começa a Aplicação dos Chips. � O primeiro microchip comercial foi lançado pela Intel em 1971 e chamava-se 4004, � O ICLSI - Integrated Circuit Large Scale Integration, ou seja, "Circuito Integrado em Larga Escala de Integração" ou Chip, � Alguns tipos de IC LSI incorporavam até 300.000 componentes em uma única pastilha. INTEL 4004 Em 1977 surge o Apple II, � O primeiro computador parecido a esses que a gente tem em casa ou na escola apareceu em 1977. � Era o Apple II, criado por um norte-americano chamado Steven Jobs, dono da empresa Apple (que faz toda a linha de computadores Macintosh) Em 1981 a IBM lança o PC-5150 � Em 1981 a IBM lança o PC-5150, o antecessor de todos os micros existentes atualmente. � Tinha 64 Kbytes de memória e velocidade de 4,77 megahertz. � O sistema operacional era MS-DOS. Foi o software utilizado pelo PC-5150, desenvolvido pela Microsoft, o que proporcionou uma aliança entre a IBM e a Microsoft. � Então foi lançado o primeiro computador portátil, o Osborne IOsborne I Os Computadores de Hoje Organização de Computadores Não importando da aparência física, os computadores podem ser divididos em 6 unidades lógicas: � Unidade de entrada; � Unidade de saída; � Unidade de memória; � Unidade Aritmética e Lógica; � Unidade Central de Processamento; � Unidade de armazenamento secundário. Unidade de entrada •Está é a “seção receptora”, na qual os dados entram no computador através de dispositivos de entrada (teclado, mouse, microfone, scaner, etc) e coloca estas informações à disposição das outras unidades, de forma que as informações possam ser processadas. Unidade de entrada Unidade de saída •Está é a “seção de expedição”, na qual os dados processados são disponibilizados para fora do computador através de dispositivos de saída (monitor, impressora, alto-falante, etc). Unidade de saída Unidade de memória •Está é a “seção de armazenamento” de acesso rápido, de capacidade relativamente baixa, do computador. Retém informações que foram fornecidas através da unidade de entrada, saída, ULA, de forma que as informações possam ser tornadas imediatamente disponíveis para processamento quando forem necessárias. •Está memória é frequentemente chamada de memória RAM. Unidade de Aritmética e Lógica �Está é a “seção industrial” do computador. Ela é responsável por executar cálculos como adição, subtração, multiplicação e divisão. Também realiza comparações e decisões lógicas. Unidade Central de Processamento (CPU) •Está é a “seção administrativa” do computador. Ela é responsável por controlar e supervisionar a operação de outras seções. Por exemplo, A CPU diz a unidade de entrada que deve ler o teclado, escreve a informação na unidade de memória, diz para a UAL realizar cálculos e depois exibe o valor na unidade de saída. Unidade Central de Processamento (CPU) PENTIUM II PENTIUM III PENTIUM IVCELERON 900Mhz DURON Unidade de armazenamento secundário •Está é a “seção de armazenamento” de grande capacidade por longo prazo. Seu custo/velocidade é relativamente baixo quando comparado com a memória primária (RAM). •Exemplos: Hard-Disk, Flop-Disk, CD, Memória Flash, etc. Unidade de armazenamento secundário Linguagens de Programação •Os programadores escrevem instruções em várias linguagens de programação, algumas diretamente compreensíveis pelo computador e outras que exigem passos de tradução intermediária. •Centenas de linguagens de computador estão disponíveis hoje em dia. Elas podem ser divididas em três tipos: Máquina, Assembler e Alto Nível. Linguagem de Máquina �É a linguagem natural dos computadores. Ela é definida pelo projeto em hardware e seu alfabeto é binário formado por zeros e uns. �A programação em linguagem de máquina exige grande conhecimento de eletrônica. Linguagem Assembler •É uma linguagem simbólica que equivale a abreviações ou palavras inglesas para representar operações elementares da linguagem de máquina. Em resumo converte uma linguagem simbólica para linguagem de máquina. Embora tal código seja mais claro para as pessoas, ele é incompreensível para os computadores até ser traduzido para linguagem de máquina. Linguagem de Alto Nível •Para acelerar o processo de programação, foram desenvolvidas as linguagens de alto nível, nas quais uma única instrução realiza tarefas significativas. Programas tradutores chamados de compiladores convertem a linguagem de alto nível para linguagem de máquina. •A linguagem de alto nível permite que programas sejam escritos com instruções que parecem com o idioma Inglês e contém notações matemáticas comumente usadas. Fundamentos do ambiente de programação •Os sistemas de programação consistem geralmente em várias partes: um ambiente de desenvolvimento de programas, a linguagem e bibliotecas; •Os programas em C++ passam tipicamente por seis passos: Edição, Pré-processamento, Compilação, Ligação, Transferência para memória e execução. Edição •Processo pelo qual um programa é editado em um editor de texto. Pré-processamento •O arquivo com o programa digitado é processado (Inclusão de arquivos, substituição do nome das variáveis, etc). Compilação •Tradução do programa para linguagem de máquina (Código Objeto). Compilação •Tradução do programa para linguagem de máquina (Código Objeto .o). Ligação (Linker) •Quando se utiliza bibliotecas, o código objeto produzido pelo compilador contém tipicamente buracos devido a estas partes que estão faltando; •Um editor de ligação, (linker) liga o código objeto com o código das funções que estão faltando. Transferência para memória �Antes de um programa ser executado, e primeiro lugar ele é transferido para a memória RAM. Execução �Executa uma instrução de cada vez e cria um arquivoexecutável (.exe). ExecutarExecutarExecutarExecutar Execução �Console ALGOL 60 (60) Programação C/C++ •Na década de 60 surgem as primeiras linguagens de programação: CPL (63) BCPL (67) ALGOL 68 (68) B (70) C (71) C++ (80) Evolução Linguagem C++ Algorithmic Language Combined Programming Language Basic Denis Ritchie Bjarne Stroustup
Compartilhar