UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Introdução à Computação Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br
Histórico da Computação Prof. Yandre Maldonado - 2 Histórico da Computação: Ábaco Mesopotâmia, aprox. 3500 a.c. Computar: do latim computare, que significa calcular, avaliar, contar; Máquina de Babbage R.U., 1832. ENIAC E.U.A., 1945.
Histórico da Computação ENIAC, 1945: primeiro computador eletrônico de propósitos gerais Prof. Yandre Maldonado - 3
Evolução dos computadores Prof. Yandre Maldonado - 4
Introdução à Computação Prof. Yandre Maldonado - 5 Ciência da Computação Ênfase teórica: idéias fundamentais e modelos computacionais; Ênfase prática: projeto de sistemas computacionais; As tecnologias computacionais são construídas a partir de fundamentos da computação. Aquelas são passageiras, enquanto estes estão por trás da tecnologia em qualquer tempo.
Introdução à Computação Núcleos de disciplinas da Computação: SI Tecnologia da Computação FUNDAMENTOS DA COMPUTAÇÃO Prof. Yandre Maldonado - 6
Introdução à Computação Os fundamentos estão por trás da tecnologia em qualquer tempo. Prof. Yandre Maldonado - 7 Tecnologias Computacionais Fundamentos Teóricos da Computação Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais
Introdução à Computação Processar dados: papel central do computador Prof. Yandre Maldonado - 8 Dados de Entrada Computador Dados de Saída
O Computador Arquitetura de Von Neumann Prof. Yandre Maldonado - 9 Unidade de Entrada Unidade Lógica e Aritmética Unidade de Controle Memória (Principal) UCP Unidade de Saída
O Computador Prof. Yandre Maldonado - 10 Unidade de Entrada: codifica informações introduzidas por dispositivos de entrada para que a UCP possa entender; Memória: armazena dados e o programa em execução; Unidade Lógica e Aritmética: realiza cálculos aritméticos e manipulação de dados; Unidade de Controle: responsável pelo trafego dos dados: UE MEM MEM ULA MEM MEM US
O Computador Unidade de Saída: converte os dados processados para um formato que possa ser exibido em dispositivos de saída. Prof. Yandre Maldonado - 11 Hardware: parte física do computador. Formada pelos circuitos eletrônicos, dispositivos mecânicos, magnéticos e etc. Software: os programas que executam sobre o hardware. HARDWARE + SOFTWARE = COMPUTADOR
Hardware Principais dispositivos de Entrada/Saída: Prof. Yandre Maldonado - 12
Hardware Prof. Yandre Maldonado - 13
Hardware Prof. Yandre Maldonado - 14
Software Conceito: Prof. Yandre Maldonado - 15 Elementos de programação de um sistema de computação, isto é, todos os programas, sejam de aplicação ou básicos do sistema, contrastando com a parte física e visível do sistema - o hardware. Classificação: softwares básicos softwares aplicativos
Software Softwares básicos: Prof. Yandre Maldonado - 16 Programas que definem o padrão do equipamento, sendo necessários para o funcionamento do computador. Tipos: sistema operacional ambiente operacional linguagens de programação (tradutores) utilitários
Software Conceito de sistema operacional: Prof. Yandre Maldonado - 17
Software Sistema Operacional Prof. Yandre Maldonado - 18 Sistema Operacional Hardware
Software Exemplos de sistemas operacionais MS-DOS, System 7, Unix, Linux, OS-2, Windows, etc. Distribuição física na memória do computador: Prof. Yandre Maldonado - 19 ROM: gravadas as rotinas mais fundamentais de coordenação e tradução de fluxos de dados RAM do sistema em duas (2) etapas: 1ª. é totalmente transferida para a RAM quando o sistema é ligado 2ª. é carregada na memória à medida que é solicitada
Software Sistemas operacionais: programas que podem ser fornecidos pelo fabricante do equipamento. Prof. Yandre Maldonado - 20 O padrão é virem em disquetes ou já gravados no winchester Constituição do sistema operacional: programas escritos geralmente em linguagem de programação de baixo nível. Classificação de sistemas operacionais: sistema monousuário, sistema multiusuário sistema monotarefa, sistema multitarefa.
Software Ambiente operacional: ambientes que adicionam recursos ao sistema operacional para permitir uma interface gráfica com o usuário. Prof. Yandre Maldonado - 21 Exemplo: todas as versões do Windows, Linux, etc. incluem um abiente operacional. Linguagens de programação: conjunto de símbolos (vocabulário) e regras (gramática) que Divisão: especificam um padrão sintático para estabelecer a comunicação entre usuários (programadores) e computador. linguagem de baixo nível linguagem de alto nível linguagem de máquina linguagem simbólica
Software Linguagem de máquina: baseada em código binário, em 0s e 1s. Interpretada diretamente pelo computador. Prof. Yandre Maldonado - 22 Exemplo: Linguagem de máquina Significado 0010 0001 1110 carrega no registrador 1 o conteúdo da posição de memória 14 0010 0010 1111 carrega no registrador 2 o conteúdo da posição de memória 15 0001 0001 0010 soma o conteúdo do registrador 1 com o conteúdo do registrador 2 e coloca no registrador 1 0011 0001 1111 armazena o conteúdo do registrador 1 na posição de memória 15
Software Linguagem de baixo nível simbólica: simplificação da linguagem de máquina. Faz uso de códigos mnemônicos para expressar as instruções. Prof. Yandre Maldonado - 23 Exemplo: Assembly Linguagem de máquina Linguagem simbólica 0010 0001 1110 LOAD R1, val1 0010 0010 1111 LOAD R2, val2 0001 0001 0010 ADD R1, R2 0011 0001 1111 STORE R1, val2
Software Linguagem de alto nível: Prof. Yandre Maldonado - 24 combinação de um conjunto de símbolos de acordo com certas regras de sintaxe para expressar uma seqüência de operações de máquina. Linguagem que não exige conhecimento do código de máquina. Exemplos: FORTRAN, ALGOL, COBOL, BASIC, PASCAL, LOGO, C, LISP, PROLOG, etc. Linguagem de máquina Linguagem simbólica Linguagem de alto nível 0010 0001 1110 LOAD R1, val1 val2 = val1 + val2 0010 0010 1111 LOAD R2, val2 0001 0001 0010 ADD R1, R2 0011 0001 1111 STORE R1, val2
Software Principais tipos de tradutores: Prof. Yandre Maldonado - 25 Montador: lê uma linguagem de baixo nível simbólica e transforma para linguagem de máquina. Interpretador: lê uma linguagem de alto nível e coloca em execução. Compilador: lê uma linguagem de alto nível e transforma para linguagem nível mais baixo. Mecanismo de tradução híbrida: exemplo Java.
Software Compilador: 1) Lê e analisa todo o programa fonte (escrito em linguagem de alto nível) e traduz para linguagem de baixo nível. Prof. Yandre Maldonado - 26 2) Cria um programa objeto que corresponde às instruções em linguagem de máquina. 3) Executa-se direto o programa objeto. 4) Se encontrar erro, é preciso voltar ao programa fonte, corrigir, e recompilar obtendo-se um novo código objeto.
Conceitos de Linguagens de Programação Tradução de Linguagens de alto nível: Prof. Yandre Maldonado - 27 Programa Fonte Compilação Tradução para linguagem de máquina; Gera programas geralmente de execução mais rápida; Alto Nível Compilador Análise Síntese Baixo Nível Programa Alvo
Conceitos de Linguagens de Programação Prof. Yandre Maldonado - 28 Interpretação Decodifica instruções de alto nível em tempo de execução; O interpretador simula uma máquina virtual que busca (ciclo busca-decodifica-executa) as instruções em alto nível; Uma mesma instrução de alto-nível será traduzida tantas vezes quantas ela for executada; Tradicionalmente, apresentava execução 10 a 100 vezes mais lentas do que a de sistemas compilados;
Conceitos de Linguagens de Programação Prof. Yandre Maldonado - 29 Interpretação (cont.) Programa-fonte Dados de entrada O gargalo não fica entre o processador e a memória (como nos programas compilados) e sim na decodificação das instruções; Útil em depuração de código fonte; Interpretador Resultados
Conceitos de Linguagens de Programação Prof. Yandre Maldonado - 30 Programa-fonte Análise Léxica Interpretação Híbrida Traduzem a linguagem de alto-nível para uma representação intermediária; Mais rápido que a interpretação pura, pois as instruções são traduzidas uma única vez; Análise Sintática Código Intermediário Gerador de Código Intermediário Interpretador Resultados Dados de entrada
Conceitos de Linguagens de Programação Interpretação Híbrida (cont.) Prof. Yandre Maldonado - 31 A linguagem Java oferece interpretação híbrida Sua forma intermediária é o código de bytes (byte-code); Oferece portabilidade para qualquer máquina que tenha um interpretador de código de bytes; Máquina virtual Java Hoje existem sistemas que traduzem este código de bytes para código de máquina com execução mais rápida;
Conceitos de Linguagens de Programação Prof. Yandre Maldonado - 32 Ambientes de Programação Conjunto integrado de ferramentas de suporte a programação que dispõem de uma interface uniforme; Editor de Código Fonte AMBIENTE DE PROGRAMAÇÃO Compilador/Interpretador + + Linguagem de Programação Outras Ferramentas de Programação
Conceitos de Linguagens de Programação Exemplos de Ambientes de Programação: Prof. Yandre Maldonado - 33 AMBIENTE Turbo Pascal Turbo C C++ Builder Delphi Editplus, NetBeans LINGUAGEM Pascal C C++ Object Pascal Java
Software Utilitários: programas que ampliam os recursos do sistema facilitando o uso e auxiliando a manutenção de programas. Administram o ambiente oferecendo ferramentas ao usuário para organizar os Prof. Yandre Maldonado - 34 discos, verificar memória, corrigir falhas, etc. Exemplos: Save Smart, formatadores, programas de backup, compactadores de disco (zip, arj), desfragmentadores, antivírus, e outros. Estes programas recebem o nome de utilitários por serem úteis ao sistema computacional.
Software Softwares aplicativos: programas voltados para a solução de problemas do usuário. Prof. Yandre Maldonado - 35 Tipos: uso geral: programas que podem ser utilizados em vários tipos de aplicações. Exemplos: editores de texto, gráficos, planilhas, gerenciadores de banco de dados, etc. uso específico: se destinam exclusivamente a uma aplicação específica. Exemplos: folha de pagamento, crediário, imposto de renda, cadastro, contas a pagar e receber, etc.
Bibliografia Prof. Yandre Maldonado - 36 Brookshear, J. G.: Ciência da Computação Uma visão abrangente (7ª edição). Porto Alegre: Bookman, 2005; Fedeli, R. D.; Polloni, E. G. F.; Peres, F. E.: Introdução à Ciência da Computação. São Paulo: Pioneira Thomson Learning, 2003.