Baixe o app para aproveitar ainda mais
Prévia do material em texto
P rof . Y a nd re M ald o n ad o -1 Introdução à Computação Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA P rof . Y a nd re M ald o n ad o -2 Histórico da Computação � Histórico da Computação: � Computar: do latim “computare”, que significa calcular, avaliar, contar; Ábaco – Mesopotâmia, aprox. 3500 a.c. Máquina de Babbage – R.U., 1832. ENIAC – E.U.A., 1945. P rof . Y a nd re M ald o n ad o -3 Histórico da Computação � ENIAC, 1945: primeiro computador eletrônico de propósitos gerais P rof . Y a nd re M ald o n ad o -4 Evolução dos computadores P rof . Y a nd re M ald o n ad o -5 Introdução à Computação � 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.” P rof . Y a nd re M ald o n ad o -6 Introdução à Computação � Núcleos de disciplinas da Computação: FUNDAMENTOS DA COMPUTAÇÃO T e c n o l o g i a d a C o m p u t a ç ã o SI P rof . Y a nd re M ald o n ad o -7 Introdução à Computação � Os fundamentos estão por trás da tecnologia em qualquer tempo. Anos 40 Anos 50 Anos 60 Anos 70 Tempos atuais Fundamentos Teóricos da Computação Tecnologias Computacionais P rof . Y a nd re M ald o n ad o -8 Introdução à Computação � Processar dados: papel central do computador ComputadorComputador Dados de Entrada Dados de Entrada Dados de Saída Dados de Saída P rof . Y a nd re M ald o n ad o -9 O Computador � Arquitetura de Von Neumann Unidade de Entrada UCP Memória (Principal) Unidade Lógica e Aritmética Unidade de Controle Unidade de Saída P rof . Y a nd re M ald o n ad o -10 O Computador � 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 P rof . Y a nd re M ald o n ad o -11 O Computador � Unidade de Saída: converte os dados processados para um formato que possa ser exibido em dispositivos de saída. � 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 P rof . Y a nd re M ald o n ad o -12 � Principais dispositivos de Entrada/Saída: Hardware P rof . Y a nd re M ald o n ad o -13 Hardware P rof . Y a nd re M ald o n ad o -14 Hardware P rof . Y a nd re M ald o n ad o -15 � Conceito: • 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 P rof . Y a nd re M ald o n ad o -16 � Softwares básicos: • 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 P rof . Y a nd re M ald o n ad o -17 � Conceito de sistema operacional: Software P rof . Y a nd re M ald o n ad o -18 Software � Sistema Operacional Sistema Operacional Hardware P rof . Y a nd re M ald o n ad o -19 � Exemplos de sistemas operacionais • MS-DOS, System 7, Unix, Linux, OS-2, Windows, etc. � Distribuição física na memória do computador: • 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 P rof . Y a nd re M ald o n ad o -20 � Sistemas operacionais: programas que podem ser fornecidos pelo fabricante do equipamento. • 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 P rof . Y a nd re M ald o n ad o -21 � Ambiente operacional: • ambientes que adicionam recursos ao sistema operacional para permitir uma interface gráfica com o usuário. • 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 especificam um padrão sintático para estabelecer a comunicação entre usuários (programadores) e computador. � Divisão: • linguagem de baixo nível • linguagem de alto nível linguagem de máquina linguagem simbólica Software P rof . Y a nd re M ald o n ad o -22 � Linguagem de máquina: • baseada em código binário, em 0s e 1s. Interpretada diretamente pelo computador. � 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 P rof . Y a nd re M ald o n ad o -23 � 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. � 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 P rof . Y a nd re M ald o n ad o -24 � Linguagem de alto nível: • 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 P rof . Y a nd re M ald o n ad o -25 � Principaistipos de tradutores: � 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 P rof . Y a nd re M ald o n ad o -26 � Compilador: 1) Lê e analisa todo o programa fonte (escrito em linguagem de alto nível) e traduz para linguagem de baixo nível. 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. Software P rof . Y a nd re M ald o n ad o -27 Conceitos de Linguagens de Programação � Tradução de Linguagens de alto nível: � Compilação • Tradução para linguagem de máquina; • Gera programas geralmente de execução mais rápida; Compilador Análise SíntesePrograma Fonte Programa Alvo Alto Nível Baixo Nível P rof . Y a nd re M ald o n ad o -28 Conceitos de Linguagens de Programação � 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; P rof . Y a nd re M ald o n ad o -29 Conceitos de Linguagens de Programação � Interpretação (cont.) • 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; InterpretadorPrograma-fontePrograma-fonte Dados de entrada Resultados P rof . Y a nd re M ald o n ad o -30 Conceitos de Linguagens de Programação � 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; Interpretador Dados de entrada ResultadosAnálise Léxica Análise Léxica Análise Sintática Análise Sintática Gerador de Código Intermediário Gerador de Código Intermediário Programa-fontePrograma-fonte Código Intermediário P rof . Y a nd re M ald o n ad o -31 Conceitos de Linguagens de Programação � Interpretação Híbrida (cont.) • 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; P rof . Y a nd re M ald o n ad o -32 Conceitos de Linguagens de Programação Linguagem de Programação Compilador/InterpretadorEditor de Código Fonte + + Outras Ferramentas de Programação AMBIENTE DE PROGRAMAÇÃO � Ambientes de Programação � Conjunto integrado de ferramentas de suporte a programação que dispõem de uma interface uniforme; P rof . Y a nd re M ald o n ad o -33 Conceitos de Linguagens de Programação � Exemplos de Ambientes de Programação: JavaEditplus, NetBeans Object PascalDelphi C++C++ Builder CTurbo C PascalTurbo Pascal LINGUAGEMAMBIENTE P rof . Y a nd re M ald o n ad o -34 � 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 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 P rof . Y a nd re M ald o n ad o -35 � Softwares aplicativos: • programas voltados para a solução de problemas do usuário. � 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. Software P rof . Y a nd re M ald o n ad o -36 Bibliografia � 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.
Compartilhar