50

Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco
Page 2: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco
Page 3: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

Sumário

1. INFORMÁTICA: O FUTURO, HOJE ........................................................................................... 7

2. BREVE HISTÓRICO DA COMPUTAÇÃO .................................................................................... 7 2.1 Blaise Pascal............................................................................................................................ 8 2.2 Joseph Marie Jacquard ........................................................................................................... 8 2.3 Gottfried Wilhelm Von Leibnitz .............................................................................................. 8 2.4 Charles Xavier Thomas ........................................................................................................... 9 2.5 Charles Babbage e Ada Byron King ......................................................................................... 9 2.6 Herman Hollerith .................................................................................................................... 9 2.7 Alan Turing ........................................................................................................................... 10 2.8 O Teste de Turing ................................................................................................................. 11 2.9 Primeiros Computadores ...................................................................................................... 11 2.10 Os Computadores Pessoais .................................................................................................. 11 2.11 Conceito de Numero ............................................................................................................ 12

2.11.1 Auxílios Mecânicos para Cálculo ................................................................................... 12 2.11.2 Auxílios Mecânicos Automáticos ................................................................................... 13 2.11.3 Automatismo Completo ................................................................................................ 13

2.12 Inteligência Artificial ............................................................................................................. 14 2.13 Impactos na Sociedade ......................................................................................................... 15

3. EVOLUÇÃO DOS SISTEMAS COMPUTACIONAIS .................................................................... 15 3.1 IBM 601 ................................................................................................................................ 15 3.2 Calculadora com válvulas ..................................................................................................... 15 3.3 Z3 .......................................................................................................................................... 15 3.4 ABC Computer (Atanasoff-Berry Computer) ........................................................................ 16 3.5 Colossus ................................................................................................................................ 16 3.6 Harvad Mark 1 ...................................................................................................................... 16 3.7 ENIAC – Eletronic Numerical Integrator and Calculator ....................................................... 16

3.7.1 Características: ................................................................................................................ 16 3.8 Transistor .............................................................................................................................. 17 3.9 Manchester Mark 1 .............................................................................................................. 17 3.10 EDSAC – Eletronic Delay Storage Automatic Computer ....................................................... 17 3.11 EDSAC – Eletronic Delay Storage Automatic Computer ....................................................... 17 3.12 UNIVAC 1 .............................................................................................................................. 17 3.13 Whirlwind 1 .......................................................................................................................... 18 3.14 IBM 701 ................................................................................................................................ 18 3.15 NCR 304 ................................................................................................................................ 18 3.16 IBM 305 ................................................................................................................................ 18 3.17 PDP-1 .................................................................................................................................... 18 3.18 COBOL – Common Business Oriented Language .................................................................. 18 3.19 IC – Circuito Integrado .......................................................................................................... 18 3.20 Intel 4004 .............................................................................................................................. 18 3.21 MITS 816 ............................................................................................................................... 19 3.22 ALTO ..................................................................................................................................... 19 3.23 ALTAIR 8800.......................................................................................................................... 19 3.24 APPLE II ................................................................................................................................. 19

4. HISTÓRICO DAS GERAÇÕES .................................................................................................. 19

5. REPRESENTAÇÃO DE DADOS E INFORMAÇÕES NOS SISTEMAS ............................................ 20 5.1 Representação da Informação ............................................................................................. 20 5.2 Como A Informação É Representada ................................................................................... 20

5.2.1 Bits e Bytes ...................................................................................................................... 20 5.3 Kibibit, kibibyte e afins ......................................................................................................... 22

Page 4: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

5.4 A codificação das informações .............................................................................................23 5.5 Codificação ASCII ..................................................................................................................24

5.5.1 Tabela ASCII~ ...................................................................................................................24 5.6 Outras codificações ..............................................................................................................26 5.7 Codificação EBCDIC ...............................................................................................................26

5.7.1 Repertório de caracteres .................................................................................................26

6. SISTEMAS DE NUMERAÇÃO ................................................................................................. 27 6.1 Numero e numeral ...............................................................................................................27 6.2 Os sistemas de numeração na historia .................................................................................27 6.3 Notação posicional e o sistema de base decimal .................................................................28 6.4 O Sistema Binário..................................................................................................................28 6.5 Sistema Hexadecimal ............................................................................................................29 6.6 Sistema Octal ........................................................................................................................30

7. CONVERSÃO DE BASE .......................................................................................................... 31 7.1 Conversão de Decimal para Base b ......................................................................................31 7.2 Conversão da base b para Decimal .......................................................................................31

8. OPERAÇÕES COM BINÁRIOS ................................................................................................ 32 8.1 Binários a decimais ...............................................................................................................32 8.2 Decimais em binários ............................................................................................................32 8.3 Decimais fracionários em binários ........................................................................................32 8.4 Soma de Binários ..................................................................................................................33 8.5 Subtração de Binários ...........................................................................................................33 8.6 Multiplicação de Binários .....................................................................................................34 8.7 Divisão de Binários ................................................................................................................34

9. SISTEMAS COMPUTACIONAIS .............................................................................................. 35 9.1 Sistema de informação .........................................................................................................35 9.2 Sistemas de Computação .....................................................................................................36 9.3 Funcionamento de um Sistema Genérico (sistema aberto) .................................................36 9.4 A função do computador ......................................................................................................37 9.5 As funções de Armazenar e Processar dados. ......................................................................37

10. COMPONENTES BÁSICOS DE UM COMPUTADOR ................................................................ 38 10.1 Hardware ..............................................................................................................................38 10.2 A CPU - Unidade Central de Processamento... .....................................................................38 10.3 Os Microprocessadores ........................................................................................................38 10.4 Memória ...............................................................................................................................39

10.4.1 Memória Principal .........................................................................................................39 10.4.2 Memória Secundária .....................................................................................................40 10.4.3 Memórias Cache ............................................................................................................40 10.4.4 O Acesso Direto à Memória ...........................................................................................40 10.4.5 Memória Virtual .............................................................................................................41

10.5 Como os dados entram e saem? ... Os dispositivos de Entrada e Saída...............................41 10.6 Barramento de Controle .......................................................................................................42 10.7 Barramento de Dados ...........................................................................................................42 10.8 Barramento de Endereços ....................................................................................................42 10.9 A unidade de Entrada/Saída - Canais....................................................................................42 10.10 O processo de leitura/escrita na memória principal ........................................................42 10.11 Pilha (Stack) ......................................................................................................................43 10.12 Interrupção .......................................................................................................................43 10.13 Pipeling .............................................................................................................................43

11. LINGUAGENS DE PROGRAMAÇÃO ....................................................................................... 44 11.1 História ..................................................................................................................................44 11.2 Interpretação e compilação ..................................................................................................44

Page 5: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

11.3 Linguagens de alto nível ....................................................................................................... 45 11.4 Linguagens de Médio nível ................................................................................................... 45 11.5 Conceitos .............................................................................................................................. 45

11.5.1 Técnica de Programação Linear .................................................................................... 45 11.5.2 Técnica de Programação Modular ................................................................................ 46 11.5.3 Técnica de Programação Estruturada ........................................................................... 46 11.5.4 Técnica de Programação Orientada a Objeto ............................................................... 46

11.6 Classificação.......................................................................................................................... 46 11.6.1 Classificação da ACM(Association for Compuing Machinery) ....................................... 46 11.6.2 Quanto ao paradigma .................................................................................................... 47 11.6.3 Quanto à estrutura de tipos .......................................................................................... 47 11.6.4 Quanto ao grau de abstração ........................................................................................ 47 11.6.5 Quanto à geração .......................................................................................................... 47

Page 6: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco
Page 7: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

7

1. INFORMÁTICA: O FUTURO, HOJE

Nas últimas décadas diversos aspectos de nossa vida têm sofrido grandes transformações e, sem dúvida, os computadores e a moderna tecnologia da informática cumpre um papel decisivo nessas transformações.

Há pouco mais de 45 anos, uma viagem à lua, teleconferências, discagens telefônicas entre dois continentes, retiradas de dinheiro fora do horário bancário, sofisticados exames clínicos e robôs que constroem outras máquinas eram, na mais otimista das hipóteses, temas de livros de ficção científica, possíveis apenas num futuro ainda distante. Nos dias de hoje, graças ao desenvolvimento dos computadores e da tecnologia da informação, essa ficção futurística tornou-se realidade cotidiana.

Se considerarmos um homem comum numa grande cidade, poderemos perceber, acompanhando seu dia-a-dia, quantos contatos ele tem com a informática. Ao retirar dinheiro num caixa automático, ao utilizar o telefone e até quando lê o seu jornal diário, o homem moderno está fazendo uso da informática. No entanto, entre os diversos aspectos através dos quais esse tipo de tecnologia se manifesta, inegavelmente é o microcomputador aquele que mais revela a presença da informática no mundo de hoje. Sua popularidade tem sido a responsável por uma verdadeira revolução, em nossos hábitos e em nossa organização social.

A informática que torna a INFORmação autoMÁTICA não deve intimidar e tão pouco iludir, ela e computadores foram criados para resolver problemas e auxiliar as pessoas.

Hoje, podemos constatar o avanço tecnológico em diversas áreas como: medicina, telecomunicações, transportes, educação etc. Sem dúvida, esta tecnologia que tem nos acompanhado e continuará cada vez mais nos próximos anos, permitirá que novos progressos venham a ser conquistados, em prazos cada vez mais curtos, alterando ainda mais nossos hábitos e organização social, transformando o FUTURO em PRESENTE. Para compreendermos melhor essa transformação, é necessário conhecermos o processo através do qual a informática se desenvolveu, e a trajetória do computador, até chegar ao microcomputador atual.

2. BREVE HISTÓRICO DA COMPUTAÇÃO

A história da informática confunde-se com a própria história humana, concebendo-a como sendo a ciência da informação.

Apesar dos computadores eletrônicos terem efetivamente aparecido somente na década de 40, os fundamentos em que se baseiam remontam a centenas ou até mesmo milhares de anos.

Na Antiguidade o homem utilizava de forma natural os seus dedos para fazer suas contagens, dando origem ao sistema DECIMAL (10 dedos) e aos termos DIGITAL e DÍGITO. Como auxílios deste método eram usados gravetos, contas ou marcas na parede.

A partir do momento que o homem pré-histórico trocou seus hábitos nômades por aldeias e tribos fixas, desenvolvendo a lavoura, tornou-se necessário um método para a contagem do tempo, delimitando as épocas de plantio e colheita.

Tábuas de argila foram desenterradas por arqueólogos no Oriente Médio, próximo à Babilônia, contendo tabuadas de multiplicação e recíprocos, acredita-se que tenham sido escritas por volta de 1700 a.C. e usavam o sistema sexagesimal (base 60), dando origem às nossas atuais unidades de tempo.

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. Este era formado por fios paralelos e contas ou arruelas deslizantes, que de acordo com a sua posição, representava a quantidade a ser trabalhada.

O ábaco russo era o mais simples: continham 10 contas, bastando contá-las para obtermos suas quantidades numéricas. O ábaco chinês possuía 2 conjuntos por fio, contendo 5 contas no conjunto das unidades e 2 contas que representavam 5 unidades. A variante do ábaco mais conhecida é o SOROBAN, ábaco japonês simplificado (com 5 contas por fio, agrupadas 4x1), ainda hoje utilizado, sendo que em uso de mãos treinadas continuam eficientes e rápidos para trabalhos mais simples.

Esse sistema de contas e fios recebeu o nome de calculi pelos romanos, dando origem à palavra cálculo.

Page 8: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

8

2.1 Blaise Pascal

O filósofo, físico e matemático francês Blaise Pascal, que trabalhava com seu pai em um escritório de coleta de impostos, na cidade de Rouen em 1642, aos 18 anos, desenvolveu uma máquina de calcular, para auxiliar o seu trabalho de contabilidade, baseada em 2 conjuntos de discos: um para a introdução dos dados e outro que armazenava os resultados, interligados por meios de engrenagens. A máquina utilizava o sistema decimal para os seus cálculos de maneira que quando um disco ultrapassava o valor 9, retornava ao 0 e aumentava uma unidade no disco imediatamente superior.

A Pascalina, como ficou conhecida, foi à primeira calculadora mecânica do mundo. Pascal recebeu uma patente do rei da França para que lançasse sua máquina no comércio. 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. As máquinas de calcular, descendentes da Pascalina, ainda hoje podem ser encontradas em uso por algumas lojas de departamentos.

2.2 Joseph Marie Jacquard

A máquina de Pascal teve uma vida útil de quase 200 anos e foi sendo aperfeiçoada por diversos inventores. Funcionava cada vez melhor, mas tinha um limite: a entrada de dados dependia da eficiência da pessoa. E, mesmo que essa tarefa fosse executada por alguém altamente treinado, esse alguém ainda seria um ser humano, e seres humanos têm limites físicos. Assim, o passo seguinte teria que ser necessariamente o aumento na velocidade de alimentação dos dados.

Quem conseguiu encontrar a solução para isso foi um francês, Joseph-Marie Jacquard, depois de 20 anos matutando. Durante o século XVIII, os tecelões de seda franceses testaram métodos para guiar seus teares por meio de fitas perfuradas, cartões perfurados ou tambores de madeira. Nos três sistemas, a presença ou ausência de orifícios criava padrões no tecido por meio do controle da maneira pela qual os fios eram levantados ou abaixados.

Em 1804, Joseph Marie Jacquard construiu um tear inteiramente automatizado, que podia fazer desenhos muito complicados. Esse tear era programado por uma série de cartões perfurados, cada um deles controlando um único movimento da lançadeira. Curiosamente, ele era de um ramo que não tinha nada a ver com números e calculadoras: a tecelagem. Filho de tecelões - e, ele mesmo, um aprendiz têxtil desde os dez anos de idade -, Jacquard sentiu-se incomodado com a monótona tarefa que lhe fora confiada na adolescência: alimentar os teares com novelos de linhas coloridas para formar os desenhos no pano que estava sendo fiado.

Como toda a operação era manual, a tarefa de Jacqurd era interminável: a cada segundo, ele tinha que mudar o novelo, seguindo as determinações do contratante. Com o tempo, Jacquard foi percebendo que as mudanças eram sempre seqüenciais. E inventou um processo simples: cartões perfurados, onde o contratante poderia registrar, ponto a ponto, a receita para a confecção de um tecido.

Daí, Jacquard construiu um tear automático, capaz de ler os cartões e executar as operações na seqüência programada. A primeira demonstração prática do sistema aconteceu na virada do século 19, em 1801. Os mesmos cartões perfurados de Jacquard, que mudaram a rotina da indústria têxtil, teriam, poucos anos depois, uma decisiva influência no ramo da computação. E, praticamente sem alterações, continuam a ser aplicados ainda hoje: foram eles, os famigerados "punching cards", que causaram toda aquela confusão na Flórida, na eleição para presidente dos Estados Unidos em 2000.

2.3 Gottfried Wilhelm Von Leibnitz

Em 1671, o filósofo e matemático alemão de Leipzig, Gottfried Wilhelm Von Leibnitz (21/06/1646 - 14/11/1716) introduziu o conceito de realizar multiplicações e divisões através de adições e subtrações sucessivas. Em 1694, a máquina foi construída.

No entanto, sua operação apresentava muita dificuldade e sujeita a erros. Leibnitz (ou Leibniz) perdeu seu pai, quando tinha apenas 5 anos, e como o ensino na sua escola era muito fraco, aos 12 anos já estudava Latim e Grego como autodidata. Antes de ter 20 anos já possuía mestrado em matemática, filosofia, teologia e leis.

Page 9: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

9

2.4 Charles Xavier Thomas

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: a Arithmometer. Esta foi a primeira calculadora realmente comercializada com sucesso. Ela fazia multiplicações com o mesmo princípio da calculadora de Leibnitz e com a assistência do usuário efetuava as divisões.

2.5 Charles Babbage e Ada Byron King

Charles Babbage (1792-1871) concebeu um Computador Analítico dotado de um dispositivo a que chamou de MOINHO (uma máquina de somar com precisão de até 50 casas decimais), e um dispositivo de entrada (inspirado no tear de Jacquard) que leria cartões perfurados contendo somente números (os dados), mas também INSTRUÇÕES (o que fazer com os dados).

Imaginou ainda um dispositivo de memória que chamou de ARMAZÉM para guardar os números, um banco com 1000 “registradores” cada qual capaz de armazenar um número de 50 dígitos – os números dados pelos cartões de entrada ou então números resultados de operações do moinho. Finalmente, incluiu um dispositivo impressor para dar saída aos resultados. As instruções (gravadas em cartões) possíveis de ser implementadas pelo moinho eram:

Entrar com um número do armazém; Entrar com um número do moinho; Mover um número do moinho para o armazém; Mover um número do armazém para o moinho; Comandar o moinho para executar uma operação; Sair com um resultado. Para construir um dispositivo a partir dessas idéias, Babbage contou com a colaboração inestimável

da matemática Ada Augusta Byron, Lady Lovelace, filha do poeta Lord Byron. Ada desenvolveu séries de instruções para o calculador analítico, criando conceitos tais como sub-rotinas, loops e saltos condicionais. Babbage é considerado o precursor do computador. Ada é considerada a precursora do software.

Babbage e Ada estavam muito além do seu tempo e não conseguiram financiamento para construir o sem Computador Analítico, que ficou apenas como uma belíssima idéia no papel – ele nunca foi concluído.

“Ele não tem pretensões de originar nada, mas pode processar qualquer coisa que nós soubermos programá-lo para realizar.” – Ada Augusta Byron, Condessa de Lovelace, falando sobre o Engenho Analítico de Babbage, precursor dos modernos computadores (Londres, cerca de 1830).

Ada Byron King, a condessa de Lovelace, filha de Lord Byron, junto com seu companheiro Charles Babbage, iniciou o ambicioso projeto de construção da Máquina Analítica. Ada é uma das poucas mulheres a figurar na história do processamento de dados. Matemática talentosa compreendeu o funcionamento da Máquina Analítica e escreveu os melhores relatos sobre o processo.

Criou programas para a máquina, tornando-se a primeira programadora de computador do mundo.

2.6 Herman Hollerith

Herman Hollerith Herman Hollerith (1860-1929): também se inspirou nos cartões de Jacquard para criar uma

máquina para acumular e classificar informações – a Tabuladora de Censo.

Page 10: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

10

Diplomou-se na Columbia School of Mines, em 1879, onde seu professor, Trowbridge, lhe pediu para que se tornasse seu assistente. Quando Trowbridge foi trabalhar para o Departamento de Recenseamento, levou Hollerith com ele.

Lá, Hollerith vislumbrou a idéia de realizar com uma máquina toda a tabulação do censo norte-americano. Imaginou um mecanismo semelhante ao utilizado por Jacquard quando este construiu o tear automático. Dessa forma, fez vários testes e percebeu que os cartões perfurados seriam um modo eficiente de armazenar dados.

Em 1884, Hollerith solicitou sua primeira patente, a partir do trabalho de conversão de dados em impulsos magnéticos nos cartões perfurados. Seu sistema foi testado a partir de 1887. Aliás, deve-se lembrar que ele havia conseguido um emprego no escritório de patentes de Washington, o que tornou seus registros mais fáceis.

Em 1890, seu sistema ganhou a concorrência para a realização do censo de todos os Estados Unidos. Além da velocidade de tabulação, seu sistema juntava dados e disponibilizava algumas informações extras.

Nos anos seguintes, seu sistema foi usado no Canadá, na Noruega e na Áustria. Em 1896, Hollerith fundou a "Tabulating Machine Company" para explorar suas invenções. Seu sistema foi novamente utilizado no censo dos EUA em 1900. Entretanto, o preço que cobrou foi tão alto que o Departamento de Recenseamento passou a desenvolver sistema próprio e conseguiu quebrar o virtual monopólio de Hollerith já em 1910.

Em 1821, Hollerith se aposentou e sua empresa se fundiu com outra dando origem, a partir de 1924, à IBM. Herman Holerith, há muito afastado dos negócios e das invenções, faleceu em Washington em 17 de novembro de 1929.

2.7 Alan Turing

Turing encontrava inspiração e relaxamento em corridas de longa distância, acreditava que o exercício físico aumentava sua criatividade e agilidade mental.

Alan Mathison Turing nasceu em 23 de junho de 1912 em Londres, filho de um oficial britânico, Julius Mathison e Ethel Sara Turing. Seu interesse pela ciência começou cedo, logo que aprendeu a ler e escrever distraia-se, fatorando números de hinos religiosos e desenhando bicicletas anfíbias. A maior parte do seu trabalho foi desenvolvida no serviço de espionagem, durante a II Grande Guerra, levando-o somente por volta de 1975 a ser reconhecido como um dos grandes pioneiros no campo da computação.

Em 1928, Alan começou a estudar a Teoria da Relatividade, conhecendo Christopher Morcom, que o influenciou profundamente. Morcom morreu em 1930 e Alan se motivou a fazer o que o amigo não teve tempo, durante anos trocou correspondências com a mãe de Morcom a respeito das idéias do amigo e se maravilhou com a possibilidade de resolver problemas com a teoria mecânica quântica. Chegou inclusive a escrever sobre a possibilidade de o espírito sobreviver após a morte.

Depois de concluir o mestrado em King's College (1935) e receber o Smith's prize em 1936 com um trabalho sobre a Teoria das Probabilidades, Turing se enveredou pela área da computação. Sua preocupação era saber o que efetivamente a computação poderia fazer. As respostas vieram sob a forma teórica, de uma máquina conhecida como Turing Universal Machine, que possibilitava calcular qualquer número e função, de acordo com instruções apropriadas.

Quando a II Guerra Mundial eclodiu, Turing foi trabalhar no Departamento de Comunicações da Gran Bretanha (Government Code and Cypher School) em Buckinghamshire, com o intuito de quebrar o código das comunicações alemãs, produzido por um tipo de computador chamado Enigma. Este código era constantemente trocado, obrigando os inimigos a tentar decodificá-lo correndo contra o relógio. Turing e seus colegas cientistas trabalharam num sistema que foi chamado de Colossus, um enorme emaranhado de servo-motores e metal, considerado um precursor dos computadores digitais.

Durante a guerra, Turing foi enviado aos EUA a fim de estabelecer códigos seguros para comunicações transatlânticas entre os aliados. Supõe-se que foi em Princeton, NJ, que conheceu Von Neumann e daí ter participado no projeto do ENIAC na universidade da Pensilvânia.

Terminada a guerra, Alan se juntou ao National Physical Laboratory para desenvolver um computador totalmente inglês que seria chamado de ACE (automatic computing engine). Decepcionado com a demora da construção, Turing mudou-se para Manchester. Em 1952, foi preso por "indecência",

Page 11: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

11

sendo obrigado a se submeter à psicanálise e a tratamentos que visavam curar sua homossexualidade. Turing suicidou-se em Manchester, no dia 7 de junho de 1954, durante uma crise de depressão, comendo uma maçã envenenada com cianureto de potássio.

2.8 O Teste de Turing

O teste consistia em submeter um operador, fechado em uma sala, a descobrir se quem respondia suas perguntas, introduzidas através do teclado, era outro homem ou uma máquina. Sua intenção era de descobrir se podíamos atribuir à máquina a noção de inteligência.

2.9 Primeiros Computadores

Em 1890, Hollerith desenvolve o primeiro computador mecânico. A partir de 1930, começam as pesquisas para substituir as partes mecânicas por elétricas. O Mark I, concluído em 1944 por uma equipe liderada por Howard Aiken, é o primeiro computador eletromecânico capaz de efetuar cálculos mais complexos sem a interferência humana. Ele mede 15 m x 2,5 m e demora 11 segundos para executar um cálculo. Em 1946, surge o Eniac (Electronic Numerical Integrator and Computer), primeiro computador eletrônico e digital automático: pesa 30 toneladas, emprega cerca de 18 mil válvulas e realiza 4.500 cálculos por segundo. O Eniac contém a arquitetura básica de um computador, empregada até hoje: memória principal (área de trabalho), memória auxiliar (onde são armazenados os dados), unidade central de processamento (o "cérebro" da máquina, que executa todas as informações) e dispositivos de entrada e saída de dados que atualmente permitem a ligação de periféricos como monitores, teclado, mouse, scanner, tela, impressora, entre outros. A invenção do transistor, em 1947, substitui progressivamente as válvulas, aumentando a velocidade das máquinas.

2.10 Os Computadores Pessoais

O tamanho e o preço dos computadores começam a diminuir a partir da década de 50. Neste período, iniciam-se a pesquisa dos circuitos integrados, os chips, responsáveis pela crescente miniaturização dos equipamentos eletrônicos. Em 1974, a Intel projeta o microprocessador - dispositivo que reúne num mesmo chip, todas as funções do processador central - tecnologia que permite a criação do computador pessoal, ou microcomputador. O primeiro computador pessoal é o Apple I, inventado em 1976 pelos americanos Steve Jobs (1955-) e Stephan Wozniak.

Em 1981, a IBM lança o seu PC (Personal Computer), que se torna um sucesso comercial. O sistema operacional usado é o MS-DOS, desenvolvido pela empresa de softwares Microsoft. Na época, Bill Gates, o dono da Microsoft, convence a IBM e as demais companhias a adotarem o sistema operacional de sua empresa. Isso permite que um mesmo programa funcione em micros de diversos fabricantes. Posteriormente, os PCs passam a usar microprocessadores cada vez mais potentes: 286, 386SX, 386DX, 486SX, 486DX. O Pentium, que surge nos anos 90, mais famosa família de processadores, cresceu e foi passando pelo Pentium MMX, Pentium PRO, Pentium II, Pentium III, Pentium 4, Pentium D, neste momento a família Pentium sofre uma modificação dando lugar a Família Core, formada por: Core 2 Duo, Core 2 Quad, Core i7, Core i5, Core i3, que é atualmente o processador mais avançado usado em PCs.

O único micro a fazer frente aos PCs é o Macintosh, lançado em 1984, que revoluciona o mercado ao promover o uso de ícones e do mouse. No ano seguinte, a Microsoft lança a interface gráfica Windows, adaptando para os PCs o uso de ícones e do mouse. O Windows só alcança sucesso a partir de 90, com a versão 3.0. A nova versão, lançada em 2009, o Windowns 7, totaliza mais 1 bilhão de usuários registrados pela Microsoft em junho de 2010.

Na década de 90 surgem os computadores que, além do processamento de dados, reúnem fax, modem, secretária eletrônica, scanner, acesso à Internet e drive para CD-ROM. Os CDs-ROM, sigla de compact disc read-only memory, criados no início da década, são discos a laser que armazenam até 650 megabytes, 451 vezes mais do que um disquete (1,44 megabytes). Além de armazenar grande quantidade de texto, o CD-ROM tem capacidade de arquivar fotos, vídeos e animações. Em 1996 é anunciado o lançamento do DVD (digital vídeo disc), que foi concebido para substituir o CD-ROM e as fitas de

Page 12: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

12

videocassete. O DVD é um compact-disc com capacidade de 4,7 gigabytes (cerca de 7 CDs-ROM) e 9,4 gigabytes (cerca de 14 Cds-ROM). Recentemente, em 2002, foi lançada a tecnologia do Blue-Ray, concebida com a proposta de substituir o DVD. Apresenta as mesmas medidas de uma mídia de CD ou DVD, no entanto e capaz de armazenar 25 gigabytes, em sua versão mais simples e 50 gigabytes em sua versão de dupla camada. Atualmente, o mercado da informática, passa por momento de estouro de vendas e baixa nos preços de vendas dos computadores portáteis (Notebooks e Netbooks), marcas da miniaturização da tecnologia, que depois da sua popularização nos anos 90, vivem o seu ápice.

2.11 Conceito de Numero

O primeiro passo do homem rumo ciência e tecnologia foram à concepção da idéia de número. A idéia surgiu provavelmente quando pastores necessitavam verificar se o seu rebanho que levava para pastar era o mesmo que retornava. Pesquisas apontam que inicialmente utilizavam uma comparação entre um conjunto de ovelhas e um conjunto de pedras. Em rebanhos grandes isso seria mais difícil, com isso deve ter passado a comparar por agrupamentos, dando origem ao conceito de base de um sistema de numeração. Porém tais agrupamentos não eram práticos, pois necessitava de objetos materiais para realizá-los. Por isso passou a utilizar a própria mão, ou os dedos, dando origem ao sistema de numeração de base decimal.

Primeiros Métodos de Cálculos – Romanos – multiplicavam números entre 5 e 10. Exemplo = 8X7 = 56 – soma dos dedos erguidos = 3+2 = 5 e o produto dos dedos não erguidos =

2X3=6 constituído por conchas ou pedras, foi aperfeiçoado pelos chineses.

Figura 3: O Ábaco Logaritmos – foram inventados por John Napier (1550-1617), nobre escocês, teólogo e matemático. Relação entre uma série geométrica e uma série aritmética: 1 2 4 8 2° 2¹ 2² 2³ Essas descobertas ajudaram a tornar mais simples os cálculos aritméticos, transformando

operações de multiplicação em operações de soma, operações de divisão em operações de subtração. A importância dos logaritmos não se resumia simplesmente a isso, mas também na ciência e na tecnologia.

2.11.1 Auxílios Mecânicos para Cálculo

John Napier generalizou o procedimento tabular e construiu em 1617 um dispositivo simples e barato constituído de bastões de ossos. Cada uma de suas hastes continha os algarismos de 1 a 9 no quadrado superior e os oito quadrados restantes do bastão continham o produto deste número por 2, 3, 4, 5, 6, 7, 8 e 9 respectivamente

Page 13: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

13

Figura 4: Pascalina

Em 1642, o filósofo francês Blaise Pascal construiu uma calculadora (a primeira máquina de somar) para auxiliar seu pai, coletor de impostos. Inventou uma máquina capaz de registrar valores decimais baseada na rotação de rodas dentadas de 10 posições (0 a 9).

Em 1673, Gottfried Wilhelm Von Leibnitz, filósofo e matemático, utilizando o fato de que uma multiplicação é a soma de uma mesma parcela certo número de vezes, mostrou como um multiplicador mecânico com dois contadores (um para efetuar a adição e outro para determinar quando a adição deve parar) poderia ser implementado. Exemplo: 5X3 = 5+5+5

2.11.2 Auxílios Mecânicos Automáticos

Em 1728, o engenheiro francês Basile Bouchon construiu um tear que podia tecer desenhos de seda, de acordo com ilustrações cifradas em uma folha giratória de papel perfurado, onde somente trabalham as agulhas coincidentes com os furos. Em 1812, o matemático inglês Charles Babbage, começou a pensar numa máquina para computar tabelas matemáticas. A máquina diferencial de Babbage só foi construída em 1859 e adotada depois pelas companhias de seguro para calcular tabelas de seguro de vida. Na verdade era mais do que uma calculadora, pois poderia ser programada. “Para instruir” sua máquina, foi adotada a idéia dos cartões perfurados. Os buracos nos cartões seriam os comandos matemáticos para a máquina (padrões algébricos). Em 1820, Frank Baldwin inventou uma máquina capaz de somar, subtrair, multiplicar e dividir a partir de pinos móveis acionados no painel. Em 1887, Dorr Felt criou o “computômetro”, uma máquina dirigida por chaves e que foi antecedente das caixa registradoras e máquinas com teclados.

Figura 5: Computômetro de Felt

A primeira máquina de teclado para somar e imprimir de sucesso foi criada por W. S. Burroughs em 1890. Um sistema inventado por Herman Hollerith era capaz de registrar números como buracos nos cartões em localizações específicas e classificá-los através de pinos que passavam por estes furos. As máquinas fizeram muito sucesso durante o censo de 1890 nos EUA. Foi montada então uma empresa para construir essas máquinas. Esta cresceu e acabou dando origem em 1924 IBM.

2.11.3 Automatismo Completo

A concepção básica da máquina de Babbage corresponde dos computadores modernos. A diferença está nos circuitos eletrônicos que antes eram rodas e engrenagens. Em 1937 Howard G. Aiken começou a construir uma máquina capaz de calcular integrais e diferenciais utilizando relés e outros dispositivos eletromecânicos. A máquina chamada MARK I começou a funcionar 1944. Em 1946 entrou em funcionamento o primeiro computador digital eletrônico chamado ENIAC (Eletronic Numerical Integrator

Page 14: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

14

And Calculator). Possuía 19000 válvulas, 1500 relés, diversos resistores, capacitores, indutores. Sua memória podia registrar até 20 números de 10 dígitos cada um. (PRIMEIRA GERAÇÃO).

A programação do ENIAC era feita conectando tomadas através de fios com pinos. Apenas os dados eram armazenados na memória. Em 1946, J. Von Neumann e seus companheiros apresentaram um artigo onde era proposta uma máquina onde os dados e também o programa (instruções) eram armazenados na memória. Também apresentou conceitos sobre a arquitetura dos computadores. A primeira máquina baseada nessa proposta foi a EDVAC (Eletronic Discrete Variable Automatic Computer) construída em 1948. Depois disso, surgiram outros como o UNIVAC (Universal Automatic Computer) que foi produzido em escala comercial.

Figura 6: Concepção do Funcionamento Esses computadores utilizavam circuitos eletromecânicos e válvulas. Em 1948, a Bell Telephone

Laboratories fabricou o transistor, trazendo redução do tamanho e da potência consumida em relação às válvulas. Dava-se início então, à SEGUNDA GERAÇÃO dos computadores. Com o domínio de outras tecnologias, possibilitou-se a integração de vários transistores. A TERCEIRA GERAÇÃO aconteceu com o advento dos circuitos integrados, possibilitando maior potência de cálculo, mais rapidez, mais confiabilidade.

Atualmente estamos na QUARTA GERAÇÃO onde o processo de integração tem praticamente o mesmo custo para se integrar dezenas, centenas ou milhares de transistores em uma pastilha. A utilização da Integração em Altíssima Escala (VLSI – Very Large Scale Integration)

Figura 7: 1ª Geração – 1945 –1956 -

Válvulas Figura 8: Transistor da 2ª Geração -

1956 - 1963

Figura 9: 3ª Geração - Circuitos

Integrados - 1964-1971 Figura 10: 4ª Geração - VLSI - 1972 –

hoje

2.12 Inteligência Artificial

No final de século XX surge, um novo ramo na informática, a inteligência artificial, que estuda métodos de simulação do pensamento humano nos computadores, com o objetivo de substituir o homem pela máquina em atividades mecanizadas. Existem diversos computadores que funcionam com modelos de raciocínio e comportamento humanos, auxiliando médicos em diagnósticos, praticando diversos jogos e compondo músicas. Entre os mais conhecidos está o Deep Blue, computador ultra veloz, com 256 unidades de processamento de dados (o normal é uma), fabricado pela IBM após cinco anos de pesquisas. Em 1996, o Deep Blue – era capaz de analisar 200 milhões de lances por segundo em um jogo de xadrez - vencendo

Saída

Memória

Controle

Aritimética e Lógica Entrada

Page 15: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

15

uma disputa com o campeão mundial de xadrez, o russo Garry Kasparov. Há também o COG, protótipo de robô que foi projetado e construído pelo Instituto de Tecnologia de Massachusetts (MIT). Sua forma é semelhante à do homem: tem cabeça, olhos e braços. O robô, cujo sistema nervoso artificial é 64 vezes mais potente do que um Macintosh, simula as fases de crescimento do homem, seus pensamentos e sentimentos.

2.13 Impactos na Sociedade

O desenvolvimento da informática exerce um grande impacto no modo de produção da sociedade. O computador tornou-se uma importante ferramenta de trabalho, contribuindo para o aumento da produtividade, redução de custos e melhoria da qualidade dos produtos. Vários setores da economia foram aderindo à tecnologia e se informatizando, entre os quais a indústria, a pesquisa científica, a educação, o sistema financeiro, as comunicações e a astronáutica. Nas fábricas, os robôs substituem gradativamente a mão de obra humana em trabalhos que envolvem risco e em atividades mecânicas, como as linhas de produção e montagem. Essa automação progressiva é a causa da eliminação de vários postos de trabalho como caixas de banco, telefonistas e datilógrafos, tendência que ficou conhecida por desemprego estrutural. Por outro lado, a informática também criou e ainda cria novas categorias de profissionais, cuja principal característica é o domínio das tecnologias em constante atualização.

Na pesquisa científica, o computador tem possibilitado a simulação de experiências inviáveis na realidade, devido ao alto custo ou periculosidade, como situações de temperatura excessiva ou de explosões. Na educação há uma grande variedade de softwares que ensinam Desenho, Música ou Gramática. Nas diversões, os jogos simulam a realidade atual e passada. Os bancos oferecem um número cada vez maior de serviços informatizados, como os caixas eletrônicos e as consultas on-line a partir de um computador pessoal ligado à agência. Na área das comunicações, talvez a maior inovação se deva a interligação dos computadores de todo o mundo através da Internet. Na astronáutica, os satélites artificiais informatizados fazem, entre outras aplicações, o mapeamento da atmosfera terrestre e de outros planetas.

ATIVIDADE Faça uma pesquisa sobre o histórico da computação em ordem cronológica dos principais

acontecimentos e realizações e destaque a descoberta que achou mais relevante e o porquê.

3. EVOLUÇÃO DOS SISTEMAS COMPUTACIONAIS

3.1 IBM 601

Em 1935 International Business Machines introduz o "IBM 601", uma máquina de cartão furado com uma unidade aritmética baseada em retransmissão e capaz de realizar uma multiplicação em um segundo. A máquina torna-se importante cientificamente e comercialmente e são construídas 1500 máquinas aproximadamente.

3.2 Calculadora com válvulas

Nov 1939 John V. Atanasoff (1903-?) e estudante graduado Clifford Berry (?-1963), de Iowa State College (agora a Iowa State University), Ames, Iowa, completa um protótipo somador de 16 bits. Está é a primeira máquina para calcular construída com válvulas.

3.3 Z3

1941 – Konrad Zuse (Alemanha) Primeiro computador digital, automático, programável, de propósito geral, completamente

funcional (eletro-mecânico).

Page 16: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

16

3.4 ABC Computer (Atanasoff-Berry Computer)

1942 - John V. Atanasoff / Clifford Berry (EUA) Primeiro protótipo de calculador eletrônico que funcionou nos EUA.

3.5 Colossus

1943 – Alan Turing (Bletchley Park, Inglaterra) Primeiro computador eletrônico programável; aplicação: criptografia; quebra de códigos.

3.6 Harvad Mark 1

1944 – Howard Aiken (Universidade de Harvad – EUA) Primeiro computador eletromecânico automático de grande porte. HOWARD AIKEN apresentou a idéia do computador MARK I para THOMAS WATSON, IBM, que o

construiu juntamente com a Marinha America. Até 1944, ficou como segredo militar e, somente após a guerra foi divulgado. Algumas de suas características:

2,5 metros de altura 18 metros de comprimento; 30 toneladas 700 quilômetros de cabos

3.7 ENIAC – Eletronic Numerical Integrator and Calculator

1946 – John Mauchly e J. Presper Eckert (Ballistic Research Lab, University of Pennsylvannia, EUA) Primeiro computador digital de grande porte. A arquitetura ENIAC's assemelha-se ao "Harvard

Mark I'', mas seus componentes são inteiramente eletrônicos

3.7.1 Características:

Reduziu para 30 segundos os cálculos de trajetórias de mísseis que antes levavam cerca de 1000 segundos;

Ás vezes era 1000 vezes mais rápido que o MARK I; 170 metros quadrados; 30 toneladas; 18000 válvulas e não trabalha por muitos minutos seguidos sem que alguma não se

queimasse; 10000 capacitores; Programação era feita através da ligação de fios e por isso demorava semanas; Consumia cerca de 150000 watts A máquina incorporava 20 accumulators (o projeto original era para 4). Os acumuladores e as

outras unidades eram todas conectadas por vários barramentos de dados e um conjunto de "program lines" para o sincronismo. Cada acumulador armazenava números de 10 dígitos,usando 10 bits para cada dígito. E também incorporava circuitos capazes de adicionar números vindo de um barramento para o acumulador e para transmitir o número armazenado ou seu complemento para um barramento. Uma unidade separada melhorava o desempenho da multiplicação para algo em torno de 3 milissegundos, enquanto outra realizava divisão e raiz quadrada; ambas as unidades usavam os barramentos para as entradas e saídas. Havia registradores constantes como no Harvard Mark I: 104 registradores de 12 dígitos formando uma matriz chamada de "function table". O Relógio do ENIAC apresentava velocidades de 100 kHz.

Aplicação: cálculos balísticos

Page 17: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

17

3.8 Transistor

1947 – Universidade de Stanford (EUA) Inventado o primeiro dispositivo eletrônico de estado sólido. Abaixo um modelo de circuito board e transistor.

3.9 Manchester Mark 1

1948 – F. C. Willians, Tom Kilburn e Max Neuman Royal Society Computing Machine Laboratory (Universidade de Manchester, Inglaterra).

Primeiro protótipo de computador eletrônico de programa de armazenado. Executou o primeiro programa com sucesso em 21/08/48

3.10 EDSAC – Eletronic Delay Storage Automatic Computer

1949 – Maurice Wilkes (Universidade de Cambridge, Inglaterra) Primeiro computador eletrônico digital de programa armazenado de grande porte, totalmente

funcional. Executou o primeiro programa com sucesso em 06/05/49.

3.11 EDSAC – Eletronic Delay Storage Automatic Computer

Construído na Universidade de Pensilvânia com a consultoria de VON NEUMANN. Usava 10% do volume de equipamento do ENIAC; Tinha 100 vezes mais memória que o ENIAC. OBS.:Em 1950, algumas máquinas já estavam sendo chamadas de SUPERCÉREBRO ELETRÔNICO

3.12 UNIVAC 1

1949 – Mauchly and Eckert Computer Corporation, depois UNIVAC, depois Unisys Primeiro computador eletrônico disponível comercialmente usava programa armazenado e um

compilador. Principais características: Foi o 1º a utilizar os conceitos de VON NEUMANN; Possuía em torno de 20 metros quadrados; Pesava 5 toneladas; Foi o 1º a ser produzido em escala comercial; Foram comercializados 15 computadores. Aplicação: Processamento das eleições. Abaixo um modelo de pessoas trabalhando no Univac.

Page 18: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

18

3.13 Whirlwind 1

1950 – J. Forrester (Massachussets Institute of Tecnology – MIT, EUA) Primeiro computador para processamento em tempo real.

3.14 IBM 701

1953 – IBM Corporation Primeiro computador eletrônico digital IBM

3.15 NCR 304

1957 – NCR Corporation Primeiro computador comercial 100% construído com componentes de estado sólido (transistores).

3.16 IBM 305

1957 – IBM Corporation Primeiro computador comercial a utilizar unidades de disco com cabeças móveis.

3.17 PDP-1

1959 – Digital Equipment Corporation Primeiro mini-computador.

3.18 COBOL – Common Business Oriented Language

1960 – Conference on Data System Languages CODASYL Primeira linguagem de programação de computadores para aplicação comercial padronizada.

3.19 IC – Circuito Integrado

1961 – Fairchild Corporation Primeiro circuito integrado disponível comercialmente.

3.20 Intel 4004

1971 – Intel Corporation

Page 19: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

19

Primeiro microprocessador disponível para uso pessoal.

3.21 MITS 816

1972 – MITS (Micro Instrumentation and Telemetry Systems) Primeiro microcomputador disponível para uso pessoal

3.22 ALTO

1973 – Xerox PARC (Palo Alto Research Center) Primeiro microcomputador pessoal completo, totalmente funcional, incluindo monitor.

3.23 ALTAIR 8800

1975 – Edward Roberts, William Yates e Jim Bybee Primeiro microcomputador pessoal produzido industrialmente para venda em massa

3.24 APPLE II

1976 – Steve Jobs e Steve Wozniak (Apple Corporation)

4. HISTÓRICO DAS GERAÇÕES

1ª GERAÇÃO: computadores baseados em tecnologia de VÁLVULA. Datam de 1951 a 1959; Utilizavam cerca de 20000 válvulas; Quebravam após algum tempo de uso contínuo; Utilizavam linguagem de máquina Não eram muito confiáveis, pois como queimavam com freqüência Não se podia confiar nos resultados finais; Consumiam muita energia; Eram ENORMES; Exemplos: MARK I, ENIAC, EDVAC, UNIVAC, IBM650

2ª GERAÇÃO: computadores baseados em tecnologia de TRANSISTOR. Datam de 1959 a 1965; Utilizavam transistor; Não precisavam de tempo para aquecer; Consumiam menos energia; Eram mais confiáveis; Eram mais rápidos; Exemplos: IBM 1401, IBM 7094 OBS: Em 1961, chega o 1º computador ao Brasil (pelo menos legalizado). Era um UNIVAC 1105

ainda com válvulas e foi para o IBGE. 3ª GERAÇÃO: computadores baseados em tecnologia de CIRCUITO INTEGRADO. Circuito integrado: transistores e outros componentes montados em um único chip; Muito mais confiáveis; Muito menores; Mais rápidos; Baixo consumo de energia;

Page 20: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

20

Menor custo; Exemplos: IBM 360 OBS: Depois de 1970, as evoluções tecnológicas se deram principalmente na miniaturização dos

componentes internos dos computadores e os avanços ficaram relacionados com a ESCALA DE INTEGRAÇÃO dos circuitos integrados, ou seja, em quantos circuitos se pode colocar em um único chip.

Exemplos de escalas de integração de CIs: SSI: Small Scale of Integration; MSI: Medium Scale of Integration; LSI: Large Scale of Integration; VLSI: Very Large Scale of Integration; ULSI: Ultra Large Scale of Integration. Para alguns historiadores a 3ª GERAÇÃO de computadores vai até hoje. Outros, afirmam que de

1970 até os dias de hoje fazem parte da 4ª GERAÇÃO. Outros definem que a 4ª GERAÇÃO começou a partir de 1975 com os circuitos de VLSI.

Para outros, desde as máquinas RISC, circuito integrados de escala ULSI e processamento paralelo, já estamos na 5ª GERAÇÃO DE COMPUTADORES

5. REPRESENTAÇÃO DE DADOS E INFORMAÇÕES NOS SISTEMAS

Os computadores representam os dados nas seguintes formas: Números binários; Sistema numérico binário (estudaremos mais a frente); Bits e Bytes; Códigos de Texto. Devemos saber diferenciar dado de informação: Dado: o elemento que serve de ponto de partida para uma decisão, cálculo ou medida, ou seja,

qualquer parcela significativa de uma informação. Ex.: João, 33, 1.230,00. Informação: o conjunto organizado e estruturado de dados. Ex.: Nome: João, Idade: 33 anos,

Salário: R$1.230,00.

5.1 Representação da Informação

Representação Analógica: Contínua, varia em proporção direta da informação representada. Ex.: Termômetro de mercúrio: o mercúrio sobe em razão direta da temperatura.

Representação Digital: A informação dividida em partes, sendo cada uma delas representada separadamente. Ex.: Música gravada num CD, Relógio Digital. Os computadores atuais armazenam e processam toda a informação em formato digital (texto, imagens, vídeo, programas, etc.). Toda a informação dividida em partes, sendo que cada uma delas representada por números.

5.2 Como A Informação É Representada

5.2.1 Bits e Bytes

As unidades de informação são: bit e byte Em Informática é muito importante considerar a capacidade de armazenamento, já que quando se

faz algo no computador, trabalha-se com arquivos que podem ser guardados para uso posterior. Evidentemente, quando se armazena algo, isto ocupa um certo espaço de armazenamento.

Assim como a água é medida em litros ou o açúcar é medido em quilos, os dados de um computador são medidos em bits e bytes. Cada valor do código binário foi denominado "bit" (binary digit), que é a menor unidade de informação.

Cada conjunto de 8 bits forma o byte, o qual corresponde a um caractere, seguindo o código binário. Uma unidade de dados “bit”, pode assumir o valor 1 ou o valor 0. O computador trabalha com

Page 21: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

21

coleções de bits, eles são agrupados para representar peças grandes de dados, tal como letras do alfabeto. Um byte e a quantidade de memória necessária para armazenar um caractere alfanumérico. Com um byte, o computador pode representar um de 256 símbolos ou caracteres diferentes.

Para quantificar a memória do equipamento utiliza um sistema de medida, ou seja, o byte(B), que significa a utilização de um caractere na memória, ou seja, se você digitou (*), (:), (1), (a), você utilizou um byte.

Bit Os computadores trabalham com as informações em forma de códigos, os quais são constituídos de

apenas dois elementos que se denominam CÓDIGOS BINÁRIOS e podem ser representados, utilizando-se os dígitos 0 e 1. Cada um desses dígitos é chamado BIT (Binary Digit), dígito binário e representa a menor unidade de informação do computador.

Byte Os bytes representam todas as letras (maiúsculas e minúsculas), sinais de pontuação, acentos,

caracteres especiais e até informações que não podemos ver, mas que servem para comandar o computador e que podem inclusive ser enviados pelo teclado ou por outro dispositivo de entrada de dados e instruções.

Para que isso aconteça, os computadores utilizam uma tabela que combina números binários com símbolos: a tabela ASCII (American Standard Code for Information Interchange). Nesta tabela, cada byte representa um caractere ou um sinal.

Os microcomputadores geralmente operam com grupos de bits. Um grupo de oito bits é denominado BYTE. Este pode ser usado na representação de caracteres como uma letra (A-Z), um número (0-9) ou outro símbolo qualquer (#, %, *, ?, @), entre outros.

Assim como o quilo, o metro e de outras medidas de nosso dia-a-dia, a estrutura numérica é construída sobre a base 10. O termo quilo representa a milhar constituída de alguma coisa. Nossa base de trabalho numérica, sendo 10, faz com que, quando a base é elevada à terceira potência, atinja a milhar exatamente com 1000 unidades. Mas, quando falamos em bytes, grupos de bits, não estamos falando em base 10, mas sim em uma estrutura fundamentada no código binário, ou seja, na base 2, nos 2 modos que o computador detecta, geralmente chamados de 0 e 1.

Assim, quando queremos um quilo de bytes, temos que elevar essa base a algum número inteiro, até conseguir atingir a milhar. Mas não há número inteiro possível que atinja exatamente o valor 1.000. Então, ao elevarmos a base 2 à décima potência, teremos 1024.

A partir daí, foram criados vários termos para facilitar a compreensão humana da capacidade de armazenamento, processamento e manipulação de dados nos computadores.

Para facilitar a escrita destes valores utilizamos as seguintes unidade abaixo:

UNIDADE DE MEDIDA

NUMERO DE CARACTERES ESPACO

1 Byte 1 8 bits

1 KiloByte 1.024 1.024 bytes

1 MegaByte 1.048.576 1.024 KB

1 GigaByte 1.073.741.824 1.024 MB

1 TeraByte 1.099.511.627.776 1.024 GB

1 Petabytes 1.125.899.906.842.624 1.024 TB

1 Exabytes 1.152.921.504.606.846.976 1.024 PB

1 Zettabytes 1.180.591.620.717.411.303.424 1.024 EB

1 Yottabytes 1.208.925.819.614.629.174.706.176 1.024 ZB

Page 22: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

22

Estas unidades acima estão simplificadas para facilitar o aprendizado, na realidade estes valores devem obedecer à tabela abaixo:

UNIDADE SÍMBOLO VALOR EXATO

Bit b

Byte B 2º = 1

KiloByte KB 210= 1.024

MegaByte MB 220 = 1.048.576

GigaByte GB 230 = 1.073.741.824

TeraByte TB 240= 1.099.511.627.776

Exemplos de grandezas: Abaixo segue exemplos de como são utilizadas as unidades citadas:

Equipamento Medida utilizada Exemplo

Memória RAM MegaByte(MB) 128 MB

Disquete 3,5 MegaByte(MB) 1,44 MB

HD Hard Disk GigaByte (GB) 250 GB

CD-ROM MegaByte(MB) 650 MB

DVD-R GibaByte(GB) 4,7 GB

É também através dos bytes que se determina o comprimento da palavra de um computador, ou

seja, a quantidade de bits que ele utiliza na composição das instruções internas, como por exemplo: 8 bits => palavra de 1 byte 16 bits => palavra de 2 bytes 32 bits => palavra de 4 bytes Na transmissão de dados entre computadores, geralmente usa-se medições relacionadas a bits e

não a bytes. Assim, há também os seguintes termos: 1 kilobit (Kb ou Kbit) = 1024 bits 1 megabit (Mb ou Mbit) = 1024 Kilobits 1 gigabit (Gb ou Gbit) = 1024 Megabits 1 terabit (Ou Tbit) = 1024 Megabits E assim por diante. Você já deve ter percebido que, quando a medição é baseada em bytes, a letra

'b' da sigla é maiúscula (como em GB). Quando a medição é feita em bits, o 'b' da sigla fica em minúsculo (como em Gb).

Como já dito, a utilização de medições em bits é comum para indicar o volume de dados em transmissões. Geralmente, indica-se a quantidade de bits transmitidos por segundo. Assim, quando queremos dizer que um determinado dispositivo é capaz de enviar, por exemplo, 54 megabits por segundo, usam-se a expressão 54 Mbps (54 Megabits per second - 54 megabits por segundo):

1 Kbps = 1 kilobit por segundo 1 Mbps = 1 megabit por segundo 1 Gbps = 1 gigabit por segundo E assim por diante.

5.3 Kibibit, kibibyte e afins

Se você adquirir, por exemplo, um HD de 500 GB, vai perceber que o sistema operacional do computador mostrará uma capacidade menor que essa em relação ao dispositivo. Isso porque os sistemas operacionais, de modo geral, consideram 1 kilobyte como sendo equivalente a 1024 bytes, e assim se segue

Page 23: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

23

com megabytes, gigabytes, terabytes e etc., tal como explicado anteriormente. No entanto, para os fabricantes de discos rígidos, 1 kilobyte corresponde a 1000 bytes, e assim por diante. Afinal, o que é correto, 1000 bytes ou 1024 bytes? Há organizações que defendem tanto um quanto o outro.

Uma possível solução para esse impasse estaria nas terminologias e abreviações que a International Electrotechnical Commission (IEC) criou para indicar as medições baseadas em 1024 bytes, que são as seguintes:

1 kibibyte (ou KiB) = 1024 bytes 1 mebibyte (ou MiB) = 1024 kibibytes 1 gibibyte (ou GiB) = 1024 mebibytes 1 tebibyte (ou TiB) = 1024 gibibytes 1 pebibyte (ou PiB) = 1024 tebibytes 1 exbibyte (ou EiB) = 1024 pebibytes 1 zebibyte (ou ZiB) = 1024 exbibytes 1 yobibyte (ou YiB) = 1024 zebibytes Os mesmo prefixos dos nomes acima são empregados também nas medições baseadas em bits:

kibibit, mebibit, gibibit, tebibit e assim por diante. O sistema de medidas elaborado pela IEC é tido como o correto, deixando os prefixos quilo, mega,

giga, tera, peta, exa, zetta e yotta (que são oriundos do Sistema Internacional de Unidades) representando 1000 bytes e seus múltiplos (isto é, potências de 10). Assim, as denominações da IEC equivalem às representações de 1024 bytes e seus múltiplos (potências de 2). Em resumo, essas medições ficam assim:

1 Kilobyte = 1000 bytes 1 kibibyte = 1024 bytes

1 Megabyte = 1000 kilobytes 1 mebibyte = 1024 kibibytes

1 Gigabyte = 1000 megabytes 1 gibibyte = 1024 mebibytes

1 Terabyte = 1000 gigabytes 1 tebibyte = 1024 gibibytes

1 Petabyte = 1000 terabytes 1 pebibyte = 1024 tebibytes

1 Exabyte = 1000 petabytes 1 exbibyte = 1024 pebibytes

1 Zettabyte = 1000 exabytes 1 zebibyte = 1024 exbibytes

1 Yottabyte = 1000 zettabytes 1 yobibyte = 1024 zebibytes

Desta forma, você deve estar se perguntando o motivo de não ver (ou raramente ver) o sistema da

IEC sendo utilizado, uma vez que ele é tido como o correto para representações de 1024 bytes. A resposta, provavelmente, é "comodidade". Tais medições são relativamente recentes (a primeira aprovação ocorreu em 1998) e, para a maior parte da indústria, adotá-las pode gerar ainda mais divergências e até mesmo elevação de custos. Como consequência, kilobytes, megabytes e etc. continuam representando para uns medições em 1024 bytes e, para outros, medições em 1000 bytes.

5.4 A codificação das informações

O Morse foi a primeira codificação a permitir uma comunicação a longa distância. Foi Samuel F. B. Morse que o afinou em 1844. Este código é composto de pontos e travessões (uma código binário de certa forma…). Permitiu efetuar comunicações muito mais rápidas do que o permitia o sistema de correio da época nos Estados Unidos: o Pony Express. O intérprete, naquela época, era o homem, por isso era necessário um bom conhecimento do código…

Numerosos códigos foram inventados incluindo o código de Emile Baudot (levando de resto o nome de código Baudot, em contrapartida os ingleses chamavam-no Código Murray ).

A 10 de Março de 1876, o Dr. Graham Bell inventa o telefone, uma invenção revolucionária que permite fazer circular informação vocal através de linhas metálicas. Para informação, a Câmara dos Representantes decidiu que a invenção do telefone foi da responsabilidade de Antonio Meucci. Com efeito, este último tinha depositado um pedido de patente em 1871, mas não a tinha podido financiar depois de 1874.

Page 24: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

24

Estas linhas permitiram o desenvolvimento dos téléscripteurs, máquinas que permitem codificar e descodificar caracteres graças ao código Baudot (os caracteres então eram codificados em 5 bits, havia por conseguinte 32 caracteres unicamente…).

Nos anos 60, o código ASCII (American Standard Code for Information Interchange ) é adoptado como standard. Permite a codificação de caracteres em 8 bits, quer dizer 256 caracteres possíveis.

5.5 Codificação ASCII

ASCII (acrônimo para American Standard Code for Information Interchange, que em português significa "Código Padrão Americano para o Intercâmbio de Informação") é uma codificação de caracteres de oito bits baseada no alfabeto inglês. Os códigos ASCII representam texto em computadores, equipamentos de comunicação, entre outros dispositivos que trabalham com texto. Desenvolvida a partir de 1960, grande parte das codificações de caracteres modernas a herdaram como base.

A codificação define 128 caracteres, preenchendo completamente os sete bits disponíveis. Desses, 33 não são imprimíveis, como caracteres de controle atualmente não utilizáveis para edição de texto porem amplamente utilizado em dispositivos de comunicação, que afetam o processamento do texto. Exceto pelo caractere de espaço, o restante é composto por caracteres imprimíveis.

Antes de maio de 1961 a maioria dos sistemas de computadores tinha uma maneira particular de representar os caracteres alfanuméricos. Assim, foi proposto o uso de um código comum, a fim de possibilitar a comunicação entre os computadores, objetivando permitir a troca de dados entre máquinas de diferentes tipos e fabricantes.

O "American National Standards Institute" aceitou a proposta de Robert W. Bemer e sua equipe para desenvolver o "American Standard Code for Information Interchange" (Código Padrão Norte-americano para Intercâmbio de Informações), hoje conhecido como código ASCII. Assim, ASCII é um código numérico usado para representar os caracteres, entendido por quase todos os computadores, impressoras e programas de edição de texto, que usa a escala do decimal 0 a 127.

É baseado no alfabeto romano, como é usado no idioma inglês moderno, e visa padronizar a forma pela qual os computadores representam letras, números, acentos e sinais diversos ( por exemplo: <, {, ] ) e alguns códigos de controle ( <Crtl> ) que são utilizados para converter todos os símbolos em números binários, os quais efetivamente podem ser processados.

O código permite não só uma melhor compreensão sobre a lógica do funcionamento do computador mas, também, possibilita a utilização de caracteres, cujos símbolos não aparecem no teclado. É importante notar que há apenas 95 caracteres que podem ser impressos. E eles são numerados de 32 a 126 pois os primeiros códigos (de 0 a 31) foram reservados para caracteres de controle, ou seja, que controlam funções ou equipamentos. Esses caracteres de controle tiveram sua origem nos primórdios da computação, quando eram utilizadas máquinas Teletype (como máquinas de escrever eletro-mecânicas), fitas de papel perfurado e impressoras de cilindro, portanto muitos deles são dirigidos a estes equipamentos. Por exemplo:

O caráter 10 representa a função "LINE FEED", que faz com que uma impressora avance seu papel,

O caráter 24 representa a função "cancel", O caráter 27 representa a função "escape" determinada pela tecla <ESC>, encontrada no canto

superior esquerdo nos teclados.

5.5.1 Tabela ASCII~

BINÁRIO D H G BINÁRIO D H G BINÁRIO D H G

0010 0000 32 20 vazio 0100 0000 64 40 @ 0110 0000 96 60 `

0010 0001 33 21 ! 0100 0001 65 41 A 0110 0001 97 61 a

0010 0010 34 22 " 0100 0010 66 42 B 0110 0010 98 62 b

0010 0011 35 23 # 0100 0011 67 43 C 0110 0011 99 63 c

0010 0100 36 24 $ 0100 0100 68 44 D 0110 0100 100 64 d

0010 0101 37 25 % 0100 0101 69 45 E 0110 0101 101 65 e

Page 25: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

25

0010 0110 38 26 & 0100 0110 70 46 F 0110 0110 102 66 f

0010 0111 39 27 ' 0100 0111 71 47 G 0110 0111 103 67 g

0010 1000 40 28 ( 0100 1000 72 48 H 0110 1000 104 68 h

0010 1001 41 29 ) 0100 1001 73 49 I 0110 1001 105 69 i

0010 1010 42 2A * 0100 1010 74 4A J 0110 1010 106 6A j

0010 1011 43 2B + 0100 1011 75 4B K 0110 1011 107 6B k

0010 1100 44 2C , 0100 1100 76 4C L 0110 1100 108 6C l

0010 1101 45 2D - 0100 1101 77 4D M 0110 1101 109 6D m

0010 1110 46 2E . 0100 1110 78 4E N 0110 1110 110 6E n

0010 1111 47 2F / 0100 1111 79 4F O 0110 1111 111 6F o

0011 0000 48 30 0 0101 0000 80 50 P 0111 0000 112 70 p

0011 0001 49 31 1 0101 0001 81 51 Q 0111 0001 113 71 q

0011 0010 50 32 2 0101 0010 82 52 R 0111 0010 114 72 r

0011 0011 51 33 3 0101 0011 83 53 S 0111 0011 115 73 s

0011 0100 52 34 4 0101 0100 84 54 T 0111 0100 116 74 t

0011 0101 53 35 5 0101 0101 85 55 U 0111 0101 117 75 u

0011 0110 54 36 6 0101 0110 86 56 V 0111 0110 118 76 v

0011 0111 55 37 7 0101 0111 87 57 W 0111 0111 119 77 w

0011 1000 56 38 8 0101 1000 88 58 X 0111 1000 120 78 x

0011 1001 57 39 9 0101 1001 89 59 Y 0111 1001 121 79 y

0011 1010 58 3A : 0101 1010 90 5A Z 0111 1010 122 7A z

0011 1011 59 3B ; 0101 1011 91 5B [ 0111 1011 123 7B {

0011 1100 60 3C < 0101 1100 92 5C \ 0111 1100 124 7C |

0011 1101 61 3D = 0101 1101 93 5D ] 0111 1101 125 7D }

0011 1110 62 3E > 0101 1110 94 5E ^ 0111 1110 126 7E ~

0011 1111 63 3F ? 0101 1111 95 5F _

D: Decimal, H: Hexadecimal, G: Gráfico Conforme mais e mais pessoas começaram a usar computadores foi necessário adicionar novos

caracteres à tabela ASCII. A original usava 7 bits para cada caráter, o que permite chegar a 128 caracteres. As tabelas com 8 bits permitem mais 128 caracteres adicionais, não ingleses, símbolos gráficos e símbolos matemáticos. O sistema operacional DOS usa um conjunto de ASCII chamado Tabela ASCII extendida.

5.5.1.1 Tabela ASCII Extendida

O código ASCII foi concebido para a língua inglesa, não contém por isso caracteres acentuados, nem caracteres específicos de uma língua. Para codificar este tipo de caracter é necessário recorrer a outro código. O código ASCII foi então estendido a 8 bits (um byte) para poder codificar mais caracteres. Este código atribui os valores 0 a 255 (por conseguinte codificadas em 8 bits, quer dizer 1 byte) às letras maiúsculas e minúsculas, aos números, às marcas de pontuação e aos outros símbolos (caracteres acentuados no caso do código iso-latin1).

O código ASCII Extendido não é único e depende fortemente da plataforma utilizada. Os dois jogos de caracteres ASCII extendidos, mais frequentemente utilizados são:

O código ASCII extendido OEM, quer dizer aquele que equipava as primeiras máquinas de tipo IBM PC

Page 26: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

26

5.6 Outras codificações

Há vários conjuntos de caracteres hoje em dia. Por exemplo, há um conjunto de caracteres denominado ISO, similar ao ASCII, que contém caracteres adicionais para as linguagens européias. Também há conjunto de caracteres que se constituem em um padrão mais universal chamado ISO Latin 1, que é usado em muitos sistemas operacionais e em programas para navegação na Internet.

Duas das mais importantes codificações atualmente utilizadas são: ISO: "International Standardization Organization". É o padrão ocidental, utilizado também no

Brasil. Cada caractere só possui 1 byte (8 bits), gerando um máximo de 256 caracteres. UTF-8: "Unicode Transformation Format-8". É o padrão mundial, que pode ser usado em quase

todos os idiomas. Cada caractere possui 2 bytes (16 bits), o que permite um valor máximo bem maior que o anterior: 65.536 caracteres.

Nota: Arte ASCII é aquela onde os únicos elementos utilizados são os caracteres disponíveis no teclado do computador.

5.7 Codificação EBCDIC

Uma codificação de caracteres é um padrão de relacionamento entre um conjunto de caracteres (representações de grafemas ou unidades similares a grafemas como as que compõem um alfabeto ou silabário utilizados na comunicação através de uma linguagem natural) com um conjunto de outra coisa, como por exemplo, números ou pulsos elétricos com o objetivo de facilitar o armazenamento de texto em computadores e sua transmissão através de redes de telecomunicação. Exemplos comuns é o código morse que codifica as letras do alfabeto latino e os numerais como seqüências de pulsos elétricos de longa e curta duração e também o ASCII que codifica os mesmos grafemas do código morse além de outros símbolos através de números inteiros e da representação binária em sete bits destes mesmos números.

Convencionalmente, conjunto de caracteres e codificação de caracteres eram considerados sinônimos, já que o mesmo nome poderia especificar tanto quais caracteres estão disponíveis e como eles foram codificados em um fluxo de unidades de código (normalmente com um único caractere por unidade de código). No entanto, o Unicode afastou essa idéia, separando a idéia de numerar uma série de caracteres de codificar esses caracteres em um fluxo de unidades de código. Para manter as nomenclaturas históricas e os sistemas baseados nelas, usa-se o termo charset para se referir a uma codificação de caracteres.

5.7.1 Repertório de caracteres

Em alguns contextos, especialmente na comunicação e armazenamento computacional, faz sentido à distinção entre um repertório de caracteres (um conjunto completo de caracteres abstratos que um sistema suporta) e um conjunto de caracteres codificados ou codificação de caracteres (que detalha como representar caracteres deste conjunto usando códigos inteiros).

Nos primórdios da computação, a introdução de repertórios de caracteres tais como o ASCII (1963) e o EBCDIC (1964) deram início ao processo de padronização. A limitação de tais conjuntos logo se mostrou aparente, e uma quantidade de métodos ad hoc foram desenvolvidos para estendê-los. A necessidade de suportar múltiplos sistemas de escrita, incluindo a família CJK dos caracteres leste-asiáticos, exigia suporte

Page 27: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

27

a um número bem maior de caracteres e demandava uma abordagem sistemática diferente das anteriores para a codificação de caracteres.

Por exemplo, o repertório completo do Unicode compreende mais de cem mil caracteres. Cada um destes caracteres possui um código inteiro único no intervalo de 0 a 10FFFF hexadecimal (pouco acima de 1,1 milhão, embora nem todos os inteiros neste intervalo representem caracteres). Outros repertórios comuns incluem o ASCII e o ISO 8859-1 que espelham, respectivamente, os primeiros 128 e 256 caracteres do Unicode.

Extended Binary Coded Decimal Interchange Code (EBCDIC) é uma codificação de caracteres 8-bit que descende diretamente do código BCD com 6-bit e foi criado pela IBM como um padrão no início dos anos 1960 e usado no ibm 360. Como consequência daquela descendência direta o código EBCDIC podia ser truncado para 6 bit dando origem ao código BCD com 6 bit.

Representa uma primeira tentativa de normalização em paralelo com a normalização ASCII utilizada pelo governo dos Estados Unidos da América no final dos anos 1960.

No EBCDIC são utilizados pela primeira vez 8 bit - 1 byte - para codificar um estado existindo assim a possibilidade de codificar 256 estados diferentes.

6. SISTEMAS DE NUMERAÇÃO

Observe que alguns números decimais a possuem uma representação muito curiosa no sistema binário:

1 decimal = 1 binário; 2 decimal = 10 binário 3 decimal = 11 binário 4 decimal = 100 binário Tentaremos mostrar como os vários sistemas de numeração podem ser utilizados para facilitar a

leitura e o armazenamento de informação nas palavras do computador. E destacada a notação posicional dos sistemas de numeração que e o elo entre os sistemas de diferentes bases. Os conceitos de bit, byte e palavra, fundamentais na computação, são também apresentados.

6.1 Numero e numeral

Quando dizemos o “número 10” estamos cometendo um abuso de linguagem, e para sermos corretos deveríamos dizer: “o número que representamos pelo numeral 10”. O numeral o símbolo gráfico que usamos para representar a idéia comum aos dois conjuntos que estamos comparando: o número. Assim, três, 2 + 1, Treis, Three, 3, ....,III, são numerais distintos que representam a mesma idéia, o número três.

6.2 Os sistemas de numeração na historia

Alguns historiadores supõem que o sistema foi adotado pelo homem primitivo por compatibilidade com o número de dedos das mãos, artifício usado no princípio para contar as coisas do mundo, como seus bens, rebanho e dinheiro.

O sistema base 10 competiu, para se tornar o sistema padrão, durante uma fase longa da história da humanidade com o sistema de numeração base 60, cujos resquícios ainda são vistos no sistema de divisão do tempo, 1 minuto de sessenta segundos e 1 hora de sessenta minutos, e na trigonometria, onde o círculo dividido em 360 graus (660).

O sistema baseado em 60 é interessante porque 60 é divisível por 2, 3, 4, 5, 6,10, 12, 15, 20 e 30, enquanto que 10 divisível somente por 2 e 5. O maior número de divisores torna o sistema em base 60 muito mais prático para a divisão de grandezas (pesos, medidas, etc).

Na figura ao lado, podemos ver o formato e seqüência correta da grafia manuscrita medieval dos números ou algarismos arábicos do sistema decimal que aparecem na página de título do livro "Libro Intitulado Arithmetica Practica" por Juan

Page 28: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

28

de Yciar, matemático e calígrafo Basco, Saragossa 1549. No início dos anos 1600, ocorreu uma importante modificação no formato da grafia do décimo

número ou do zero, que inicialmente tinha o formato pequeno e circular “o”. Posteriormente, evoluiu para o formato oval atual “0” desta forma foi possível a sua distinção quanto à grafia da letra “o” minúscula, ou da letra “O” maiúscula.

6.3 Notação posicional e o sistema de base decimal

Valor atribuído a um símbolo dependente da posição em que ele se encontra no conjunto de símbolos que representa uma quantidade. O valor total do número e a soma dos valores relativos de cada algarismo (decimal). Ou seja, a ordem dos algarismos (números) que estamos acostumados a usar; 1, 2, 3, 4, 5, 6, 7, 8, 9, 0.

No sistema de numeração decimal, 735=700+30+5 Neste exemplo temos que o algarismo 5 representa 5 unidades. E o algarismo 3 representa 3

dezenas (ou 3 grupos de dez unidades). E por que o algarismo 7 representa 7 centenas (ou 7 grupos de cem unidades).

573=500+70+3 Neste outro exemplo temos que o algarismo 3 representa 3 unidades. E o algarismo 7 representa 7

dezenas (ou 7 grupos de dez unidades). E, finalmente, que o algarismo 5 representa 5 centenas (ou 5 grupos de cem unidades).

6.4 O Sistema Binário

O sistema binário e um sistema de numeração posicional em que todas as quantidades se representam utilizando como base o n dois, com o que se dispõe das cifras: zero e um (0 e 1).

Os computadores digitais trabalham internamente com dois níveis de tensão, pelo que o seu sistema de numeração natural o sistema binário (aceso, apagado). Com efeito, num sistema simples como este e possível simplificar o cálculo, com o auxílio da lógica booleana.

Em computação, chama-se um dígito binário (0 ou 1) de bit, que vem do inglês Binary Digit. Um agrupamento de 8 bits corresponde a um byte (Binary Term). Um agrupamento de 4 bits chamado de nibble.

O sistema binário base para a booleana (de George Boole - matemático inglês), que permite fazer operações lógicas e aritméticas usando-se apenas dois dígitos ou dois estados (sim e não, falso e verdadeiro, tudo ou nada, 1 ou 0, ligado e desligado).

Toda eletrônica digital e computação está baseada nesse sistema binário e na lógica de Boole, que permite representar por circuitos eletrônicos digitais (portas lógicas) os números, caracteres, realizar operações lógicas e aritméticas. Os programas de computadores são codificados sob forma binária e armazenados nas mídias (memórias, discos, etc.) sob esse formato.

Matematicamente o sistema mis natural de todos seria o binário, com apenas dois dígitos o 0 e o 1. Como expressar 1968 no sistema binário?

Solução: 111101100000 , de fato 1 0 0 0 0 0 0 0 0 0 0 + : 1 x 210 = 1024 +

1 0 0 0 0 0 0 0 0 0 : 1 x 29 = 512 1 0 0 0 0 0 0 0 0 : 1 x 28 = 256

1 0 0 0 0 0 0 0 : 1 x 27 = 128 0 0 0 0 0 0 0 : 0 x 26 = 0

1 0 0 0 0 0 : 1 x 25 = 32 1 0 0 0 0 : 1 x 24 = 16

0 0 0 0 : 0 x 23 = 0 0 0 0 : 0 x 22 = 0

0 0 : 0 x 21 = 0 0 : 0 x 20 = 0

1 1 1 1 0 1 1 0 0 0 0 1968

Page 29: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

29

O processo de conversão de decimal para binário consiste em representar o número decimal como uma soma de potências de dois. Isto pode ser feito através de divisões sucessivas por 2, até que o quociente seja igual a zero. O resto da divisão representa o dígito menos significativo (mais a direita) do número binário, o resto da próxima divisão o próximo dígito e assim por diante.

Observe que o resto da divisão por 2 será sempre 0 ou 1:

Logo 196810 = 1 1 1 1 0 1 1 0 0 0 0 2 O sistema binário extremamente prático quanto às operações de soma e multiplicação (ao

contrário das 200 fórmulas, no sistema decimal, só existem 8 para serem decoradas) . As Operações são definidas pelas tabelas.

6.5 Sistema Hexadecimal

O sistema de numeração hexadecimal utiliza 16 dígitos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) cujas correspondências aos sistemas decimal e binário estão abaixo, na próxima página.

Observe que com quatro dígitos binários podemos representar todos os dígitos hexadecimais. Com isto, a conversão binário hexadecimal é feita simplesmente separando-se o número

binário em grupos de 4 dígitos e substituindo-se cada grupo pelo dígito hexadecimal equivalente (ver tabela abaixo).

A conversão hexadecimal binário igualmente simples. Cada dígito hexadecimal substituído pelo número binário de 4 dígitos equivalente.

+ 1 0 x 1 0

1 10 1 1 1 0

0 1 0 0 0 0

Page 30: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

30

Para somar números hexadecimais a tabela a seguir será de grande valia.

Tabela para multiplicação.

6.6 Sistema Octal

Sistema Octal um sistema de numeração cuja base 8, ou seja, utiliza 8 símbolos para a representação de quantidade. No ocidente, estes símbolos são os algarismos arábicos: 0 1 2 3 4 5 6 7

O octal foi muito utilizado em informática como uma alternativa mais compacta ao binário na programação em linguagem de máquina. Hoje, o sistema hexadecimal mais utilizado como alternativa ao binário. Este sistema também um sistema posicional e a posição de seus algarismos determinada em relação vírgula decimal. Caso isso não ocorra, supõe-se implicitamente colocada direita do número. A aritmética desse sistema semelhante a dos sistemas decimal e binário, o motivo pelo qual não será apresentada.

Exemplo: Qual o número decimal representado pelo número octal 4701? Utilizar o TFN. 4 x 8³ + 7 x 8² + 0 x 8¹ + 1 x 8° = = 2048 + 448 + 0 + 1 = 2497

Page 31: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

31

7. CONVERSÃO DE BASE

Como a base 10 a que nos mais familiar, serão mostrados a seguir procedimentos para conversão de números numa base b qualquer para a base 10 e vice-versa. Serão consideradas as partes inteiras e fracionárias dos números.

7.1 Conversão de Decimal para Base b

1) Parte Inteira: Dividir o número decimal pela base b obtendo quociente e resto. Dividir o quociente obtido pela base b obtendo novo quociente e novo resto. Repetir o processo até que o quociente seja 0.

2) Parte Fracionária: Multiplicar a parte fracionária por base b. Multiplicar a nova parte fracionária

obtida por base b. Repetir o processo até que a parte fracionária seja nula ou atingir a precisão desejada.

7.2 Conversão da base b para Decimal

1) Parte Inteira: Multiplique o dígito mais a esquerda pela base b e some o próximo dígito a direita. Multiplique a soma pela base b e some o próximo dígito. Repita o processo até que o dígito mais a direita tenha sido adicionado.

24015 N10 N10 = 351

Page 32: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

32

2) Parte Fracionária: Multiplique o dígito mais a direita por 1/b e some o próximo dígito a esquerda. Multiplique a soma por 1/b e adicione o próximo dígito. Repita o processo até que o dígito tenha sido adicionado e a soma multiplicada por 1/b.

8. OPERAÇÕES COM BINÁRIOS

8.1 Binários a decimais

Dado um número N, binário, para expressá-lo em decimal, devem-se escrever cada número que o compõe (bit), multiplicado pela base do sistema (base = 2), elevado posição que ocupa. Uma posição esquerda da vírgula representa uma potência positiva e direita uma potência negativa. A soma de cada multiplicação de cada dígito binário pelo valor das potências resulta no número real representado. Exemplo:

1011(binário) 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11 Portanto, 1011 e 11 em decimal

8.2 Decimais em binários

Dado um número decimal inteiro, para convertê-lo em binário, basta dividi-lo sucessivamente por 2, anotando o resto da divisão inteira:

12(dec) bin 12 / 2 = 6 + 0 06 / 2 = 3 + 0 03 / 2 = 1 + 1 01 / 2 = 0 + 1 12(dec) = 1100(bin) Observe que os números devem ser lidos de baixo para cima: 1100 e 12 em decimal. Existe um método muito simples para converter binário em decimal, e vice-versa.

128 64 32 16 8 4 2 1 0 0 0 0 1 0 1 0 = 10 (2+8=10) 0 0 0 1 1 0 0 0 = 24 (8+16=24) 1 1 0 0 0 0 0 0 = 192 (64+128=192) 1 0 1 1 1 0 1 0 = 186 (2+8+16+32+128=186)

8.3 Decimais fracionários em binários

Exemplo I 0.562510 Parte inteira = 0 10 = 02 Parte fracionária = 0.562510 Multiplica-se a parte fracionária por 2 sucessivamente, até que ela seja igual a zero ou cheguemos à

precisão desejada.

Page 33: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

33

fração x 2 = vai-um + fração seguinte 0.5625 x 2 = 1 + 0.1250 0.1250 x 2 = 0 + 0.2500 0.2500 x 2 = 0 + 0.5000 0.5000 x 2 = 1 + 0.0000 nesta linha a fração zerou, finalizamos a conversão. Anotando a seqüência de vai-um (carry) na ordem de cima para baixo, temos: 1001. Portanto,

0.562510 = 0.10012 No entanto, e mais comum nunca zerarmos a fração seguinte da multiplicação. Neste caso,

devemos parar as multiplicações quando atingirmos uma certa precisão desejada. Exemplo II 67.57510 Parte inteira = 6710 = 10000112 Parte fracionária = 0.5752 fração x 2 = vai-um + fração seguinte 0.5750 x 2 = 1 + 0.1500 0.1500 x 2 = 0 + 0.3000 0.3000 x 2 = 0 + 0.6000 esta fração e suas subseqüentes serão repetidas em breve. 0.6000 x 2 = 1 + 0.2000 0.2000 x 2 = 0 + 0.4000 0.4000 x 2 = 0 + 0.8000 0.8000 x 2 = 1 + 0.6000 a partir daqui repetimos a fração 0.6000 e suas subseqüentes 0.6000 x 2 = 1 + 0.2000 Ou seja, entramos em um ciclo sem fim. Escolhemos uma precisão e finalizamos o processo quando

esta precisão for atingida, então na ordem de cima para baixo, temos: 100100112

8.4 Soma de Binários

Para somar dois números binários, o procedimento o seguinte: Exemplo 1: * 1100 + 111 = 10011 Explicando: Os números binários são base 2, ou seja, há apenas dois algarismos: 0 (zero) ou 1 (um).

Na soma de 0 com 1 o total 1. Quando se soma 1com 1, o resultado 2, mas como 2 em binário 10, o resultado 0 (zero) e passa-se o outro 1 para a "frente", ou seja, para ser somado com o próximo elemento, conforme assinalado pelo asterisco.

Exemplo 2: ** 1100 + 1111 = 11011 Explicando: Nesse caso acima (exemplo 2), na quarta coluna da direita para a esquerda, nos

deparamos com uma soma de 1 com 1 mais a soma do 1 ( * ) que veio da soma anterior. Quando temos esse caso (1 + 1 + 1), o resultado 1 e passa-se o outro 1 para frente.

8.5 Subtração de Binários

Para subtrair dois números binários, o procedimento o seguinte: * *** 1101110 - 10111 = 1010111

Page 34: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

34

Explicando: Quando temos 0 menos 1, precisamos "emprestar" do elemento vizinho. Esse

empréstimo vem valendo 2 (dois), pelo fato de ser um número binário. Então, no caso da coluna 0 - 1 = 1, porque na verdade a operação feita foi 2 - 1 = 1. Esse processo se repete e o elemento que cedeu o "empréstimo" e valia 1 passa a valer 0. Os asteriscos marcam os elementos que "emprestaram" para seus vizinhos. Perceba que, logicamente, quando o valor for zero, ele não pode "emprestar" para ninguém, então o "pedido" passa para o próximo elemento e esse zero recebe o valor de 1.

8.6 Multiplicação de Binários

A multiplicação entre binários é similar a realizada normalmente. A única diferença está no momento de somar os termos resultantes da operação:

1 0 1 1 x 1 0 1 0 0 0 0 0 + 1 0 1 1 + 0 0 0 0 + 1 0 1 1 = 1 1 0 1 1 1 0 * Perceba que na soma de 0 e 1 o resultado será 1, mas na soma de 1 com 1, ao invés do resultado

ser 2, ele será 0 (zero) e passa-se o 1 para a próxima coluna, conforme assinalado pelo asterisco. Nota que se a soma passar de 2, deve-se somar o número em binário correspondente ( ex. 4 = 100, 3 =11).

1 1 1 x 1 1 1

1 1 1 + 1 1 1 + 1 1 1 = 1 1 0 0 0 1 No caso, a terceira coluna a soma dá 4 (com mais um da anterior), que adiciona um "1" duas

colunas depois (100).

8.7 Divisão de Binários

Essa operação também similar a realizada entre números decimais:

110 10

- 10 11 010 - 10 00 Deve-se observar somente a regra para subtração entre binários. Nesse exemplo a divisão de 110

por 10 teve como resultado 11. Atividades 1. Converter para o equivalente no sistema decimal: a) 11001100 b) 110110 c) 111000111 d) 11011 e) 101010

Page 35: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

35

2. Converter os números decimais abaixo para os binários equivalentes: a) 285 b) 473 c) 694 3. Achar as diferenças binárias: a) 11100111 x 11 b) 111011 x 1011 c) 11101 x 1101 4. Converter para decimal: a) 42056 b) 1420325 c) 153B16 5. O que está errado? a) 15324 b) 21937 c) 10132 6. Reescreva o número decimal 3263 nas bases: a) 83 b) 4 c) 12 (use A = 10 e B = 11)

9. SISTEMAS COMPUTACIONAIS

Um sistema computacional é entendido como uma junção de três componentes básicos: Hardware, Software Peopleware (pessoas ligadas à área ou usuários). Podemos chamar de sistema, todo conjunto identificável e coerente de elementos que interagem

coesivamente, onde cada elemento pode ser um sistema. Quando chamamos alguma coisa de sistema, traçamos uma fronteira virtual (conceitual) separando

esse contexto do resto do mundo. A palavra sistema envolve, de fato, amplo espectro de idéias. Pode-se pensar em sistema solar ou no corpo humano como um sistema. Diariamente, nos deparamos com sistemas de transporte, de comunicação, biológicos, econômicos, de processamento de dados, etc.

Considera-se sistema um conjunto de elementos interdependentes, ou partes que interagem formando um todo unitário e complexo, que possui um objetivo. No entanto, é preciso distinguir sistemas fechados, como máquinas, relógio, etc., dos sistemas abertos, como os sociais e biológicos: o homem, a sociedade, a empresa e os sistemas de informação.

Os sistemas abertos envolvem a idéia de que determinadas entradas são introduzidas no sistema e que, depois de processadas, geram certas saídas.

9.1 Sistema de informação

Há muitas formas de se conceituar informação, dependendo do ângulo de observação e do campo de conhecimento em estudo. Do ponto de vista mais específico do Sistema de Informação, podemos partir do entendimento de que informação é o resultado do tratamento de dados. Neste caso, entende-se um dado como um item elementar de informação (um conjunto de idéias ou fatos expressos através de letras, dígitos ou outros símbolos), que tomado isoladamente não transmite nenhum conhecimento, ou seja, não possui nenhum significado intrínseco.

Partindo-se do conceito acima, pode-se definir informação como o resultado de fatos ou idéias relevantes, ou seja, dados que foram transformados (processados) numa forma inteligível para quem os recebe com valor (utilidade) real ou aparente.

Um sistema de informações é um conjunto de componentes inter-relacionados que coleta, processa, armazena e dissemina informações (processa dados), para apoiar a tomada de decisões, a coordenação e o controle. No contexto atual, torna-se cada vez mais imprescindível automatizar o sistema de informações. Uma empresa não informatizada, por exemplo, corre o risco de se tornar menos competitiva diante o mercado em que atua.

Em um sistema de informação automatizado, isto é, que utiliza recursos da tecnologia de informática, existem quatro componentes essenciais:

Page 36: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

36

Hardware - composto pelos equipamentos de informática utilizados pelo sistema: computadores e demais equipamentos auxiliares, como impressoras, scanner, etc.

Pode ser entendido como um sistema de computação (um subsistema do sistema de informação) Software - formado pelos diversos programas de computador que fornecem instruções

específicas sobre tarefas que o hardware deve executar para gerar a informação desejada (um subsistema do sistema de informação).

Dados - fatos ou idéias relevantes. Peopleware - Constituído por pessoas que realizam as tarefas necessárias para o

funcionamento dos outros componentes do sistema de forma a atingirem seu objetivo (profissionais de informática) e pelas pessoas que solicitam e utilizam as informações por ele geradas (Usuários).

9.2 Sistemas de Computação

É toda a estrutura de operação dos sistemas de computadores, abrangendo o processamento, a memória, a comunicação de dados, os dispositivos de entrada e saída, os sistemas operacionais e compiladores, enfim abrange tanto o Hardware quanto Software em um Sistema de Informação.

9.3 Funcionamento de um Sistema Genérico (sistema aberto)

Entrada, Processamento e Saída: Independente da complexidade de um sistema aberto, os elementos básicos são funcionalmente e operacionalmente os mesmos.

Entrada: é o componente inicial, sobre o qual o sistema opera (matéria prima). A entrada de um sistema pode ser à saída de outro sistema.

Processamento: atividade que transforma as entradas em saídas. Saída: o resultado de um processamento, o propósito para o qual o sistema foi projetado. Qualquer sistema aberto pode ser definido em termos destes elementos, formando a Tríade de

Processamento.

ENTRADA PROCESSAMENTO SAÍDA

Esquema Simplificado de um Computador Digital

Partindo do Modelo de Babbage...

...e chegando ao Modelo de Von Neumamm

Page 37: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

37

9.4 A função do computador

A função de um computador é processar dados. Para processá-los é preciso: Movê-los até a unidade central de processamento, Armazenar resultados intermediários e finais em locais onde eles possam ser encontrados mais

tarde e Controlar estas funções de transporte, armazenamento Processamento. Portanto, tudo que um computador faz pode ser classificado como uma destas quatro ações

elementares: processar, armazenar e mover dados ou controlar estas atividades. Por mais complexas que pareçam as ações executadas por um computador, elas nada mais são que combinações destas quatro funções básicas.

A função de mover dados é executada através do fluxo da corrente elétrica ao longo de condutores que ligam os pontos de origem e destino e não depende de elementos ativos. As funções de controle são igualmente executadas através de pulsos de corrente, ou "sinais", propagados em condutores elétricos (estes pulsos são interpretados pelos componentes ativos, fazendo-os atuar ou não dependendo da presença ou ausência dos sinais).

Portanto estas duas funções, transporte e controle, para serem executadas só dependem da existência de condutores elétricos (fios, cabos, filetes metálicos nas placas de circuito impresso, etc.) e não exigem o concurso de componentes ativos.

9.5 As funções de Armazenar e Processar dados.

Processar dados consiste basicamente em tomar decisões lógicas do tipo "faça isso em função daquilo". Por exemplo: "compare dois valores e tome um curso de ação se o primeiro for maior, um curso diferente se ambos forem iguais ou ainda um terceiro curso se o primeiro for menor". Todo e qualquer processamento de dados, por mais complexo que seja nada mais é que uma combinação de ações elementares baseadas neste tipo de tomada de decisões simples. O circuito eletrônico elementar capaz de tomar decisões é denominado "porta lógica", ou simplesmente "porta".

Armazenar dados consiste em manter um dado em um certo local enquanto ele for necessário, de tal forma que ele possa ser recuperado quando o sistema precisar dele. O circuito lógico elementar capaz de armazenar um dado (expresso sob a forma do elemento mínimo de informação, o "bit", que pode exprimir apenas os valores numéricos "um" ou "zero" ou ainda os valores lógicos equivalentes, "verdadeiro" ou "falso") é a célula de memória – um dispositivo capaz de assumir um dentre dois estados possíveis e manter-se nesse estado até que alguma ação externa venha a alterá-lo (dispositivo "bi-estável").

Tendo isto em vista, pode-se concluir que todo computador digital, por mais complexo que seja, pode ser concebido como uma combinação de um número finito de apenas dois dispositivos básicos, portas lógicas e células de memória, interligados por condutores elétricos.

Page 38: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

38

10. COMPONENTES BÁSICOS DE UM COMPUTADOR

10.1 Hardware

Chamamos de hardware todo o conjunto de componentes físicos de um computador e os periféricos ligados a ele. Como componentes físicos podemos destacar a título de exemplo, o teclado, os monitores, as impressoras, os scanners entre outros.

Os principais elementos de hardware num sistema computacional podem ser agrupados nas seguintes categorias:

Dispositivos de entrada de dados; Dispositivos de saída; CPU; Memória principal; Memória Auxiliar. Numa visão externa de grande parte dos usuários, um computador é composto de CPU, teclado,

vídeo e mouse. É lógico que esta é uma visão extremamente superficial até para alguns usuários.

Para um melhor detalhamento, abordaremos os principais a seguir:

10.2 A CPU - Unidade Central de Processamento...

Um primeiro equívoco aparece nesta divisão, ao chamar-se o gabinete do microcomputador, seja ele em formato torre (o formato vertical) ou desktop (o horizontal), de CPU. O mais correto é chamá-lo mesmo de torre ou gabinete. O nome, ou melhor, a sigla CPU, vem do inglês Central Prossessing Unit, para designar o componente ou o conjunto de componentes do computador responsável pela execução das instruções dos programas. O nome CPU sugere, então, um elemento essencial no funcionamento do computador, o Microprocessador, sem ele o computador não poderia funcionar e está montado na placa principal chamada de placa-mãe (motherboard).

10.3 Os Microprocessadores

Desde o início dos anos 70, os processadores ou microprocessadores, elementos de base dos computadores, são produzidos em circuitos integrados. Na maior parte dos estudos dos microprocessadores, encontra-se uma divisão clássica de sua estrutura interna considerando três grandes unidades:

A Unidade de Controle, responsável de tarefas nobres como a interpretação das instruções de máquina a ser executadas pelo computador, a sincronização destas instruções, o atendimento a eventos de hardware, etc. Esta unidade assume toda a tarefa de controle das ações a serem realizadas pelo computador, comandando todos os demais componentes de sua arquitetura, garantindo a correta execução dos programas e a utilização dos dados corretos nas operações que as manipulam.

A Seção de Registros, uma memória de alta velocidade, que, como o nome indica, abriga o conjunto de registros dos microprocessadores, essenciais para a realização das instruções dos programas do computador;

A Unidade Lógica e Aritmética ou ALU (Aritmethic and Logic Unit), que assume todas as tarefas relacionadas às operações booleanas (ou, e, negação, etc.) e aritméticas (adições, subtrações, etc.) a serem realizadas no contexto de uma tarefa realizada através dos computadores;

Considerada o "cérebro" do computador, a CPU é encarregada da execução dos programas armazenados na memória central, através do carregamento das instruções, sua decodificação e execução seqüencial.

De forma simplificada, podem-se descrever os passos que envolvem a execução de um programa, como realizada internamente pela CPU:

Carregamento da instrução a executar para o registro de instrução;

Page 39: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

39

Modificação do valor do contador de programa para que ele aponte a palavra de memória seguinte;

Decodificação da instrução armazenada no registro de instrução; Localização, em memória, dos eventuais valores utilizados pela instrução; Carregamento dos dados, se necessário, nos registros internos da CPU; Execução da instrução; Armazenamento dos resultados em seus destinos respectivos; Retorna para o Carregamento da instrução seguinte. A esta seqüência de etapas, chamamos ciclo de Carregamento-Decodificação-Execução, que é o

ciclo de base no funcionamento de todo processador.

10.4 Memória

O conceito de memória está associado a sua finalidade. Basta pensarmos na memória do ser humano. O seu objetivo fundamental é o de guardar dados para serem utilizados oportunamente.

A capacidade do microprocessador é muito limitada. Não podemos armazenar um programa inteiro dentro dele. Por essa razão os programas são transferidos de uma memória secundária, para a memória principal.

Nos computadores de uso geral, é possível encontrar diferentes denominações para as diferentes categorias de memória que neles são encontradas:

A memória principal, ou memória de trabalho, onde normalmente ficam armazenados temporariamente os programas e dados a serem manipulados pelo processador;

A memória secundária que permite armazenar fisicamente uma maior quantidade de dados e instruções por um período de tempo mais longo; os discos rígidos são exemplos mais imediatos de memória secundária de um computador;

A memória cache, conceito introduzido mais recentemente, que se constitui de uma pequena porção de memória com curto tempo de resposta, normalmente integrada aos processadores (cache interno), que incrementa o desempenho durante a realização de um programa.

10.4.1 Memória Principal

Ou RAM (Random Access Memory), está fisicamente localizada na placa-mãe, atualmente possui os tamanhos típicos de 1, 2 ou 4GB.

É na memória principal que o microprocessador acessa programas e armazena os dados. Quando digitamos um texto por exemplo, é na memória principal que ele será inicialmente armazenado e depois oportunamente transferido para a memória secundária, pois, como uma simples calculadora, ela é volátil e perde tudo o que está armazenado assim que desligamos o computador.

Antigamente a memória era encaixada diretamente na placa-mãe, o que dificultava a sua manutenção. Hoje em dia os fabricantes desenvolveram módulos de memória, pequenas placas de circuito impresso que podem ser facilmente encaixadas no que chamamos Banco de Memória, facilitando tanto a substituição quanto a expansão por parte do usuário.

Há ainda um tipo de memória ligada à placa-mãe, a ROM Read Only Memory (ou Memória Somente de Leitura), que armazena dados vitais para o microcomputador. Na ROM encontram=se armazenados três programas:

A BIOS - Basic Input Output System (Sistema Básico de Entrada e Saída) - Executa tarefas básicas tais como acessar a unidade de disco, colocar um caractere no vídeo ou ainda programar os circuitos de apoio existentes na placa-mãe;

POST - Power On Self Test (Autoteste) - Responsável pelo autoteste (em todos os periféricos ligados ao micro) executado toda a vez que ligamos o microcomputador;

SETUP (Configuração) - Responsável por atualizar a configuração do microcomputador. A configuração é armazenada em um chip de memória CMOS, que é alimentado diretamente por

Page 40: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

40

uma pequena bateria recarregável de Niquel-Cádmio, de forma que as informações nela gravadas, não se apaguem quando desligamos o microcomputador.

10.4.2 Memória Secundária

Ou de Massa, são unidades de armazenamento físico dos dados, podem ser internos ao gabinete ou externos, podem ainda serem magnéticos (disquete, Hard Disk, Fita, ZIP, HD Externos, Pen Drives) ou ópticos (CD-ROM, CD-RW, Dvd-R, Dvd-RW, Blue Ray).

Atualmente estão em uso, com larga utilização, os DVDs que são utilizados através de Drives com largura de 5 ¼ e possuem e capacidade de 4,7 GB ou 9,4GB. Sua camada magnética dura aproximadamente 5 anos, dependendo das condições de uso e local em que é guardado

O Hard Disk (ou simplesmente HD) é o principal meio de armazenamento de dados, pela velocidade de acesso e capacidade de armazenamento. Atualmente os HDs possuem capacidade de armazenamento superior aos 200 GB, mas podendo chegar à ordem dos Tb (Tera Bytes).

As fitas magnéticas são semelhantes às fitas de áudio comuns, contudo os dados armazenados são armazenados seqüencialmente. A grande desvantagem é que caso desejarmos ter acesso a um determinado trecho da fita, teremos que avançar toda a fita até o ponto desejado. O que demanda tempo.

10.4.3 Memórias Cache

Muitos estudos realizados revelaram que os programas não realizam acesso à memória de maneira completamente aleatória. Se um programa contém uma instrução que efetua um acesso à memória num endereço X, é muito provável que o próximo acesso fará referência a um endereço próximo de X.

O fato de que as referências à memória são realizadas, durante um curto intervalo de tempo, sobre uma fração bem definida da memória total do sistema é o princípio (princípio da localidade) sobre o qual é baseada a existência das memórias cache. A idéia consiste em fazer com que uma palavra de memória (ou um conjunto de palavras de memória) seja(m) copiada(s) da memória principal para a cache de forma que o acesso a ela seja feito de forma muito mais rápida no momento em que ela tiver de ser acessada numa próxima vez.

10.4.4 O Acesso Direto à Memória

O mecanismo de Acesso Direto à Memória (ou DMA, de Direct Memory Access) corresponde a uma técnica que permite o acesso a dados que estão presentes na memória do computador sem a necessidade de intervenção da unidade central de processamento (CPU), sendo que a gestão da comunicação é assumida por um dispositivo controlador, que é composto de pelo menos quatro registros acessíveis à CPU.

O mecanismo de DMA segue os seguintes procedimentos: Inicialmente, o processador programa o controlador de DMA, escrevendo nos seus registros os

parâmetros da comunicação, particularmente: o endereço inicial de/para onde a informação vai ser transferida; a quantidade de informação a ser transferida; o endereço do dispositivo com o qual a comunicação será realizada e, finalmente, o sentido do fluxo de informação. Esta é a fase de inicialização do controlador de DMA;

Cabe agora ao controlador de DMA iniciar a etapa de transferência de dados para o dispositivo periférico;

Uma vez obtida a palavra de memória, o controlador requisita ao controlador de terminal a escritura do dado considerado, concretizando assim a transferência de uma palavra dado;

Finalmente, a continuidade da transferência da informação é assegurada pela seqüência dos seguintes procedimentos, antecipando a retomada dos dois procedimentos descritos acima: decremento do registro contador de palavras de memória; incremento do registro apontador de endereço;

Page 41: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

41

Quando o contador de palavras de memória atinge o valor zero, o controlador de DMA considera terminada a fase de transferência de dados, informando o processador através de um sinal gerando um pedido de interrupção.

Os circuitos de DMA são geralmente circuitos relativamente rápidos e possuem normalmente vários grupos de registros o que lhes permite efetuar a realização de várias transferências ao mesmo tempo.

10.4.5 Memória Virtual

A idéia da paginação parte da distinção entre dois importantes conceitos: o espaço de endereçamento e do posicionamento em memória. Antes do aparecimento da noção de memória virtual, uma distinção deveria então ser feita entre os endereços inferiores a 4096 (endereços úteis) e os endereços iguais ou superiores a 4096 (os endereços inúteis, uma vez que eles não correspondem a endereços reais). Existia então uma forte correspondência entre espaço de endereçamento e endereços físicos.

Porém, se uma distinção é feita entre estes dois conceitos, a noção de memória passa a ser diferente, considerando que poderemos endereçar a cada instante 4096 palavras de memória sem corresponder necessariamente aos endereços reais de 0 a 4095.

Em outras palavras, pode-se informar ao processador que estamos acessando a palavra de memória 0 quando endereçamos a posição 4096, a palavra de memória 1 quando endereçamos a posição 4097 e a palavra 4095 quando acessamos a posição 8191. A esta técnica nós chamamos de mapeamento do espaço de endereçamento sobre a memória física.

Quando um programa faz referência a um endereço de memória, seja para carregar ou armazenar um dado, carregar uma instrução, ou mesmo dar um salto, ele gera pelas técnicas clássicas de endereçamento indireto ou indexado um endereço virtual compreendido entre 0 e 65535. A determinação do endereço é feita através de consulta à tabela de páginas que permite indicar o endereço em memória principal que deve corresponder ao endereço virtual indicado.

10.5 Como os dados entram e saem? ... Os dispositivos de Entrada e Saída

Há vários dispositivos de Entrada e Saída. Alguns somente de entrada, que apenas levam os dados para o microprocessador, como teclado, mouse e escaner. Outros somente de saída, que unicamente transportam dados para o mundo exterior, como monitor e alto-falante.

Existem outros ainda que funcione tanto como dispositivos de entrada quanto de saída, como o modem (e, dentre estes, alguns dispositivos especiais, os de armazenamento, (DVD, CD-R, Pendrive, fitas magnéticas, discos rígidos ou flexíveis - os disquetes lembra?) que além de trocar dados com a CPU e memória, armazena-os para futura utilização.

Na verdade, todo o universo dos computadores consiste apenas destes poucos elementos: microprocessador, memória, dispositivos de entrada, de saída e de armazenamento. E sua única função é processar dados trocados com o mundo exterior, através de "portas".

Portas são um dos meios usados pelos dispositivos de entrada e saída para intercambiar dados com o microprocessador. Como qualquer outra, estas portas servem para um único fim: entrar e sair.

Os circuitos que possibilitam a troca de dados com o ambiente externo ao computador (usuário, periféricos ou outros equipamentos) são conhecidas como portas de E/S (ou I/O de Input/Output),

As portas de E/S (Entrada/Saída da CPU) é o elo de ligação entre a CPU e o restante do circuito do computador. Essencialmente ela comunica a CPU com a memória principal e com os dispositivos de Entrada e Saída (do computador).

A CPU é ligada ao mundo exterior por três barramentos distintos: o de dados, o de endereços e o de controle. Os dois primeiros transportam valores correspondentes, respectivamente, a dados e endereços e o terceiro os sinais de controle.

Page 42: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

42

10.6 Barramento de Controle

Para a CPU executar uma operação (leitura ou escrita), são necessários três parâmetros: o endereço da posição de memória, o dado a ser lido ou escrito e um sinal de controle indicando o tipo da operação.

10.7 Barramento de Dados

Corresponde às vias de comunicação entre a CPU e os demais elementos compondo a arquitetura de um computador. Como o nome indica, este barramento é utilizado para permitir a troca de dados bidirecionais (leitura e escrita) entre o microprocessador e os demais elementos da arquitetura do computador como memória e dispositivos de E/S.

10.8 Barramento de Endereços

O barramento de endereços de um microprocessador é o conjunto de pinos presentes em sua interface através dos quais informa aos demais componentes da arquitetura do computador os endereços nos quais uma operação de comunicação será realizada. Por exemplo, durante um ciclo de leitura em memória, um dos passos é a colocação, neste barramento, do endereço de memória onde está armazenado o dado a ser lido.

10.9 A unidade de Entrada/Saída - Canais

A unidade de Entrada/Saída (E/S ou I/O, de “Input/Output”), também chamadas de Canais, tem duas funções básicas:

1) Transferir valores (endereços ou dados) entre os componentes externos e os internos da CPU. 2) Adequar os sinais de controle para transitar de dentro para fora da CPU e vice-versa, pois os

componentes internos da CPU são delicados e não suportariam as tensões e correntes elétricas usadas para transportar os sinais através do barramento.

Enquanto os circuitos internos da CPU se comunicam diretamente com o barramento de controle através da unidade de E/S, a comunicação com os barramentos de dados e endereços é feita através de dois registradores específicos que fazem parte da unidade de E/S, o Registrador de Dados da Memória (RDM) e Registrador de Endereços da Memória (REM), respectivamente.

A unidade de E/S pode ser simples, composta apenas pelos registradores REM, RDM e de um amortecedor de sinais, até unidades muito complexas, que incluem cache de memória interno.

10.10 O processo de leitura/escrita na memória principal

Para ilustrar o funcionamento de uma CPU, vamos examinar o procedimento adotado para efetuar a leitura ou a escrita de um dado em uma posição de memória.

Vamos examinar, inicialmente, a operação de escrita na memória. Como a única forma da CPU se comunicar com os barramentos de dados e endereços é através dos

registradores RDM e REM, os valores do dado a ser escrito e do endereço da posição da memória que irá armazenar o dado deverão ter sido previamente escritos no RDM e REM, respectivamente. Por sua vez, os circuitos internos da Unidade de Controle aplicam um sinal na linha do barramento de controle correspondente à escrita na memória (Memory Write), já que se trata de uma operação de escrita.

A operação, tipicamente, é executada em duas etapas que duram pelo menos um ciclo de máquina cada (podendo durar mais dependendo do tipo de memória e dos tempos de acesso à memória; ver adiante).

Na primeira etapa, duas ações ocorrem simultaneamente. Numa delas, o circuito externo que controla a memória lê o valor contido no REM e “aponta” os circuitos que efetuarão a escrita para o endereço correspondente. Na outra, o circuito de controle da memória consulta o barramento de controle

Page 43: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

43

e verifica que há um sinal presente na linha de escrita de memória, preparando-se então para uma operação de escrita.

Na segunda etapa, os mesmos circuitos lerão o dado contido no RDM e o copiarão na posição de memória para a qual estão “apontados”.

No caso da operação de leitura, as coisas se passam de forma semelhante. Preliminarmente, os circuitos de controle escrevem no REM o endereço de onde o dado será lido e aplicam um sinal na linha do barramento de controle correspondente à leitura de memória (Memory Read).

Também nesse caso a operação transcorre em duas etapas. Na primeira, o circuito externo que controla a memória lê o valor contido no REM e “aponta” os circuitos que efetuarão a leitura para o endereço correspondente, enquanto ao mesmo tempo consulta o barramento de controle e encontra um sinal na linha de leitura de memória, preparando-se para uma operação de leitura.

Na segunda etapa o dado contido na posição de memória para a qual estão “apontados” os circuitos de leitura é lido e copiado no RDM.

Este mecanismo permite entender porque a CPU não consegue executar instruções que impliquem operações binárias (com dois operandos) nas quais ambos os operandos estão armazenados na memória principal (por exemplo: somar dois números, cada um armazenado em uma posição de memória principal).

A razão é que a CPU somente consegue “enxergar” o conteúdo de uma posição de memória de cada vez (aquele cujo endereço está no RDM), e para realizar uma operação binária, a CPU deve alimentar a ULA com ambos os operandos simultaneamente. Assim, é possível somar com uma única instrução, por exemplo, o valor contido no Acumulador com o de uma determinada posição de memória (cujo valor é lido e copiado no RDM), já que a ULA pode ser alimentada simultaneamente com ambos os valores, posto que estejam contidos em dois registradores (Acumulador e RDM). Mas não é possível fazer o mesmo com dois valores armazenados na memória principal (é claro que esta operação pode ser viabilizada em dois passos, cada um correspondendo a uma instrução: no primeiro, um dado é lido da memória e copiado no acumulador, no segundo este valor é somado com o conteúdo da segunda posição de memória, copiado no RDM; o que é impossível é realizar esta operação com uma única instrução em linguagem de máquina).

Pode haver diversos projetos de CPU, como conseqüência, conjuntos diferenciados de instruções. Mesmo as CPUs fabricadas pela mesma empresa podem ter conjuntos diferentes de instruções, porém de maneira geral os fabricantes criam "famílias" de processadores, assim, quando um novo projeto de CPU é criado, procura-se preservar a compatibilidade de suas instruções com a do projeto anterior.

Existem diversos outros termos relacionados que devem ser compreendidos:

10.11 Pilha (Stack)

É a área da memória principal do computador alocada para fins de armazenamento temporário de dados. Como exemplos de dados que utilizam a Pilha temos parâmetros de sub-rotinas e endereços de retorno para a finalização de sub-rotinas.

10.12 Interrupção

Mecanismo implementado em praticamente todos os microprocessadores para o tratamento de eventos relacionados à operação de um computador. O mecanismo implica na possibilidade de interromper a execução de uma seqüência de instruções de programa para executar uma rotina de tratamento, a partir da ativação por hardware (modificação do estado de um sinal digital num pino do microprocessador) ou por software (instrução específica de chamada).

10.13 Pipeling

Mecanismo implementado em alguns microprocessadores mais recentes, onde a execução de um conjunto de instruções de um programa é antecipada de modo a se obter um melhor desempenho do sistema.

Page 44: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

44

11. LINGUAGENS DE PROGRAMAÇÃO

Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias.

O conjunto de palavras (tokens), compostos de acordo com essas regras, constitui o código fonte de um software. Esse código fonte é depois traduzido para código de máquina, que é executado pelo processador.

Uma das principais metas das linguagens de programação é permitir que programadores tenham uma maior produtividade, permitindo expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (código de máquina). Assim, linguagens de programação são projetadas para adotar uma sintaxe de nível mais alto, que pode ser mais facilmente entendida por programadores humanos. Linguagens de programação são ferramentas importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez.

Linguagens de programação também tornam os programas menos dependentes de computadores ou ambientes computacionais específicos (propriedade chamada de portabilidade). Isto acontece porque programas escritos em linguagens de programação são traduzidos para o código de máquina do computador no qual será executado em vez de ser diretamente executado. Uma meta ambiciosa do Fortran, uma das primeiras linguagens de programação, era esta independência da máquina onde seria executada.

11.1 História

O primeiro projeto de linguagem de programação surgiu para um computador que não existia, sendo idealizada por Ada Lovelace, esposa de William King-Noel. O projeto do primeiro computador foi idealizado por Charles Babbage que, após gastar fortunas e um longo tempo, não conseguiu concretizar o projeto. A linguagem de programação ADA foi batizada em homenagem a esta primeira programadora.

Uma das primeiras linguagens de programação para computadores foi provavelmente Plankalkül, criada por Konrad Zuse na Alemanha Nazista, mas que teve pouco ou nenhum impacto no futuro das linguagens de programação.

A primeira linguagem de programação de alto nível amplamente usada foi Fortran, criada em 1954. Em 1957 foi criada B-0, que daria origem a Flow-Matic (1958), antecessor imediato de COBOL, de

1959. Lisp e ALGOL foram criadas em 1958.

11.2 Interpretação e compilação

Uma linguagem de programação pode ser convertida, ou traduzida, em código de máquina por compilação ou interpretação, que juntas podem ser chamadas de tradução.

Se o método utilizado traduz todo o texto do programa (também chamado de código), para só depois executar (ou rodar, como se diz no jargão da computação) o programa, então se diz que o programa foi compilado e que o mecanismo utilizado para a tradução é um compilador (que por sua vez nada mais é do que um programa). A versão compilada do programa tipicamente é armazenada, de forma que o programa pode ser executado um número indefinido de vezes sem que seja necessária nova compilação, o que compensa o tempo gasto na compilação. Isso acontece com linguagens como Pascal e C.

Se o texto do programa é traduzido à medida que vai sendo executado, como em JavaScript, Python ou Perl, num processo de tradução de trechos seguidos de sua execução imediata, então se diz que o programa foi interpretado e que o mecanismo utilizado para a tradução é um interpretador. Programas interpretados são geralmente mais lentos do que os compilados, mas são também geralmente mais flexíveis, já que podem interagir com o ambiente mais facilmente.

Page 45: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

45

Embora haja essa distinção entre linguagens interpretadas e compiladas, as coisas nem sempre são tão simples. Há linguagens compiladas para um código de máquina de uma máquina virtual (sendo esta máquina virtual apenas mais um software, que emula a máquina virtual sendo executado em uma máquina real), como o Java e o Parrot. E também há outras formas de interpretar em que os códigos-fontes, ao invés de serem interpretados linha-a-linha, têm blocos "compilados" para a memória, de acordo com as necessidades, o que aumenta o desempenho dos programas quando os mesmos módulos são chamados várias vezes, técnica esta conhecida como JIT.

Como exemplo, podemos citar a linguagem Java. Nela, um compilador traduz o código java para o código intermediário (e portável) da JVM. As JVMs originais interpretavam esse código, de acordo com o código de máquina do computador hospedeiro, porém atualmente elas compilam, segundo a técnica JIT o código JVM para código hospedeiro.

A tradução é tipicamente feita em várias fases, sendo as mais comuns a Análise léxica, a Análise sintática ou Parsing, a Geração de código e a Otimização. Em compiladores também é comum a Geração de código intermediário. Veja também Compilador.

11.3 Linguagens de alto nível

São aquelas que se encontram mais próximas à linguagem natural que à linguagem máquina. Estão dirigidas a solucionar problemas mediante o uso de EDD's.

Nota: EDD's são as abreviaturas de Estruturas Dinâmicas de Dados, algo muito utilizado em todas as linguagens de programação. São estruturas que podem mudar de tamanho durante a execução do programa. Permitem-nos criar estruturas de dados que se adaptem às necessidades reais de um programa.

Trata-se de linguagens independentes da arquitetura do computador. Sendo assim, a princípio, um programa escrito em uma linguagem de alto nível, pode ser migrado de uma máquina a outra sem nenhum tipo de problema.

Estas linguagens permitem ao programador se esquecer completamente do funcionamento interno da máquina/s para a que está desenhando o programa. Somente necessitam de um tradutor que entenda o código fonte como as características da máquina.

Costumam usar tipos de dados para a programação e existem linguagens de propósito geral (qualquer tipo de aplicação) e de propósito específico (como FORTRAN para trabalhos científicos).

11.4 Linguagens de Médio nível

Trata-se de um termo não aceito por todos, porém certamente vocês já devem ter escutado. Estas linguagens se encontram em um ponto médio entre as duas anteriores. Dentro destas linguagens poderia se situar C já que pode acessar aos registros do sistema, trabalhar com endereços de memória, todas elas características de linguagens de baixo nível e ao mesmo tempo realizar operações de alto nível.

11.5 Conceitos

11.5.1 Técnica de Programação Linear

Em matemática, problemas de Programação Linear são problemas de otimização nos quais a função objetivo e as restrições são todas lineares. Programação Linear é uma importante área da otimização por várias razões. Muitos problemas práticos em pesquisa operacional podem ser expressos como problemas de programação linear. Certos casos especiais de programação linear, tais como problemas de network flow e problemas de multicommodity flow são considerados importantes o suficiente para que se tenha gerado muita pesquisa em algoritmos especializados para suas soluções. Vários algoritmos para outros tipos de problemas de otimização funcionam resolvendo problemas de PL como subproblemas. Historicamente, idéias da programação linear

Page 46: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

46

inspiraram muitos dos conceitos centrais de teoria da otimização, tais como dualidade, decomposição, e a importância da convexidade e suas generalizações.

11.5.2 Técnica de Programação Modular

Programação modular é um paradigma de programação no qual o desenvolvimento das rotinas de programação é feito através de módulos, que são interligados entre si através de uma interface comum. Foi apresentado originalmente pela Information & Systems Institute, Inc. no National Symposium on Modular Programming em 1968, com a liderança de Larry Constantine.

11.5.3 Técnica de 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 iteração. Tendo, na prática, sido transformada na Programação modular, 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.

11.5.4 Técnica de Programação Orientada a Objeto

Orientação a objetos, também conhecida como Programação Orientada a Objetos (POO) ou ainda em inglês Object-Oriented Programming (OOP) é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos. Em alguns contextos, prefere-se usar modelagem orientada ao objeto, em vez de programação. De fato, o paradigma "orientação a objeto" tem bases conceituais e origem no campo de estudo da cognição, que influenciou a área de inteligência artificial e da lingüística no campo da abstração de conceitos do mundo real. Na qualidade de método de modelagem, é tida como a melhor estratégia, e mais natural, para se eliminar o "gap semântico", dificuldade recorrente no processo de modelar o mundo real, no domínio do problema, em um conjunto de componentes de software que seja o mais fiel na sua representação deste domínio. Facilitaria a comunicação do profissional modelador e do usuário da área alvo, na medida em que a correlação da simbologia e conceitos abstratos do mundo real e da ferramenta de modelagem (conceitos, terminologia, símbolos, grafismo e estratégias) fosse a mais óbvia, natural e exata possível. A análise e projeto orientados a objetos tem como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos. Na programação orientada a objetos, implementa-se um conjunto de classes que definem os objetos presentes no sistema de software. Cada classe determina o comportamento (definido nos métodos) e estados possíveis (atributos) de seus objetos, assim como o relacionamento com outros objetos.

11.6 Classificação

As linguagens de programação podem ser classificadas e sub-classificadas de várias formas.

11.6.1 Classificação da ACM(Association for Compuing Machinery)

A ACM mantém um sistema de classificação com os seguintes subitens:

Page 47: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

47

Linguagens aplicativas, ou de aplicação Linguagens concorrentes, distribuídas e paralelas; Linguagens de fluxo de dados; Linguagens de projeto; Linguagens extensíveis; Linguagens de montagem e de macro; Linguagens de micro programação; Linguagens não determinísticas; Linguagens não procedurais; Linguagens orientadas a objeto; Linguagens de aplicação especializada; Linguagens de altíssimo nível;

11.6.2 Quanto ao paradigma

Diferentes linguagens de programação podem ser agrupadas segundo o paradigma que seguem para abordar a sua sintaxe:

Linguagem funcional; Linguagem natural; Programação lógica; Programação imperativa; Programação estruturada; Linguagem orientada a objetos.

11.6.3 Quanto à estrutura de tipos

Fracamente tipada, como Smalltalk, onde o tipo da variável muda dinamicamente conforme a situação;

Fortemente tipada, como Java, Ruby, onde o tipo da variável, uma vez atribuído, se mantém o mesmo até ser descartada da memória;

Dinamicamente tipada, como Perl, Python ou Ruby, onde o tipo da variável é definido em tempo de execução;

Estaticamente tipada, como Java e C, onde o tipo da variável é definido em tempo de compilação;

11.6.4 Quanto ao grau de abstração

Linguagem de programação de baixo nível, cujos símbolos são uma representação direta do código de máquina que será gerado, onde cada comando da linguagem equivale a um "opcode" do processador, como Assembly;

Linguagem de programação de médio nível, que possui símbolos que podem ser convertidos diretamente para código de máquina (goto, expressões matemáticas, atribuição de variáveis), mas também símbolos complexos que são convertidos por um compilador. Exemplo: C, C++;

Linguagem de programação de alto nível, composta de símbolos mais complexos, inteligível pelo ser humano e não-executável diretamente pela máquina, no nível da especificação de algoritmos, como Pascal, Fortran, ALGOL e SQL.

11.6.5 Quanto à geração

Primeira geração, as linguagens de baixo nível (Assembly); Segunda geração, as primeiras linguagens (Fortran, ALGOL,...); Terceira geração, as procedurais e estruturadas (Pascal, C);

Page 48: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco

48

Quarta geração, linguagens que geram programas em outras linguagens (Java, C++), linguagens de consulta (SQL);

Quinta geração, linguagens lógicas (Prolog).

Page 49: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco
Page 50: Sumário - UNEPIunepi.sisacad.com.br/repositorio/unepi/arquivos/1751... · 2016. 7. 1. · 8.5 Subtração de Binários ... A variante do ábaco mais conhecida é o SOROBAN, ábaco