Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* * * Clique para editar o estilo do título mestre Clique para editar o estilo do subtítulo mestre Algoritmos Computacionais Visão Geral da Computação Prof: Alexandre Silva alexadre.silva@area1fte.edu.br * * * Conceitos básicos O computador nada mais é do que uma máquina capaz de processar um conjunto de dados, “lembrar” do que foi computado e, ainda, pode ser adaptado para efetuar outros processamentos com um novo conjunto de dados. * * * Sistema Computacional Sistema capaz de solucionar problemas através de tarefas que lhe são fornecidas Tem três partes diferentes que funcionam em conjunto: Hardware Software Peopleware Outro conceito é o Firmware * * * * * * * * * * * * Arquitetura Básica do Computador Unidade Central de Processamento (UCP) Entrada Saída Envio dos dados para serem processados Obtenção dos resultados requeridos M E M Ó R I A * * * Armazena programas e dados que estão sendo processados Armazena endereços de instruções e dados que estão sendo processados Armazena programas que podem ser executados * * * Software Parte lógica que permite utilizar os recursos computacionais para a resolução de problemas específicos Finalidades determinadas previamente Tipos: Aplicativo Sistema Operacional Linguagem de Programação * * * Aplicativo Programa voltado para a solução de problemas do usuário Categorias: Uso Geral Podem ser utilizados em vários tipos de aplicações Ex: editores de texto, planilhas, gerenciadores de BD Uso Específico Destinam exclusivamente a um único tipo de aplicação Ex: folha de pagamento, imposto de renda * * * Sistema Operacional Tipo de programa especial, também chamado de programa básico Contém um conjunto de programas necessários ao funcionamento do computador É através do SO que o usuário interage com o sistema computacional Todo computador tem, em seu nível mais básico, uma camada de inteligência que dá vida à máquina * * * Programas do Usuário Usuário 1 Usuário 2 Usuário n ... Sistema Operacional Hardware * * * Ao ligar... Autoteste Identifica memória, discos, teclado, sistema de vídeo e qualquer dispositivo ligado a ele Boot Inicialização do sistema Procura o SO a ser inicializado Objetivo Colocar o computador em condições de funcionamento Carregar o computador com rotinas essenciais ao atendimento dos diversos programas de aplicação que lhe serão posteriormente submetidos * * * ... as instruções internas orientam-no para encontrar e executar o SO O SO opera todo o tempo em que a máquina estiver ligada * * * Definições “SO são programas que tornam o hardware usável. O SO tem o poder computacional do hardware disponível convenientemente para o usuário e gerencia o hardware cuidadosamente a fim de obter boa performance” “SO é um programa que age como um intermediário entre o usuário e o hardware, com o propósito de prover um ambiente no qual um usuário possa executar programas de forma conveniente e eficiente” * * * Definições “SO é um conjunto de módulos de software que servem como uma interface entre programas aplicativos e o sistema de hardware, objetivando alcançar um sistema computacional eficiente, seguro e fácil de usar” “SO provê meios para o uso apropriado dos recursos de hardware, software e dados durante a operação do sistema computacional” * * * Linguagem de programação O que é linguagem? Meio de comunicação Exemplos? E Linguagem de programação? Meio de comunicação entre usuário e computador, através do qual podemos desenvolver programas para informarmos ao computador o que queremos que seja feito * * * * * * Definições Notação para escrever programas, através dos quais podemos nos comunicar com o hardware e dar as ordens adequadas para a realização de um determinado processo Conjunto de regras que providencia a maneira de dizer a um computador que operações executar Conjunto de símbolos (vocabulário) e regras (gramática) que especifica como transmitir informações entre usuários e computador * * * Categorias Linguagem de Máquina - LM (ou Baixo Nível) Linguagem de Baixo Nível - LBN (ou Nível Intermediário) Linguagem de Alto Nível - LAN * * * Linguagem de máquina Única linguagem que o computador entende As instruções desta linguagem estão sob a forma de 0s e 1s Quando um programa está nesta linguagem, ele está pronto para ser executado Principais desvantagens: A programação é trabalhosa, complexa e exige um alto nível de detalhamento Própria para cada processador * * * * * * Linguagem de baixo nível Ou Linguagem Assembly Simplificação da linguagem de máquina Minimizar as dificuldades de programação em notação binária Manipulada com mais facilidade pelos programadores por que faz uso de códigos ao invés da notação binária Principais desvantagens: A programação continua sendo trabalhosa e exigindo um alto nível de detalhamento Própria para cada processador * * * * * * Linguagem de alto nível Linguagem simbólica Utiliza 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 Objetivos Independência em relação ao processador Afasta o programador da linguagem de máquina Aproximação da linguagem humana Redução de erros Definição de rotinas de uso frequente Reutilização de código O usuário pode dizer simplesmente o que deve ser feito sem ter que dizer como deve ser feito * * * * * * Mas, se os computadores trabalham internamente com a linguagem de máquina, como é que podemos fazer com que o computador entenda os programas desenvolvidos em linguagem de baixo ou de alto nível? Utilizando TRADUTORES! * * * Tradutores Lêem um programa em uma linguagem de baixo ou alto nível (LBN ou LAN) e o traduzem para a linguagem de máquina (LM) Compilador e Interpretador Tem como entrada o programa em LAN e produz como resultado um programa que pode ser executado. Uma instrução em LAN pode ser traduzida em um conjunto de instruções para execução Montador (ou Assembler) Tem como entrada o programa em LBN e produz como resultado um programa que pode ser executado Uma instrução em LBN é traduzida em uma instrução para execução * * * Compiladores Um compilador é capaz de ler um programa escrito em uma LAN e gerar um programa em LM equivalente ao programa inicial. O compilador deve analisar o programa lido tanto sintaticamente quanto semanticamente Tradução lenta. Execução veloz * * * Interpretação Analisa sintática e semanticamente um programa em uma LAN. Em vez de converter o programa que lhe é dado em LM, o interpretador executa o programa que lhe é dado, passo a passo. Assim é o interpretador que controla o comportamento do programa, facilitando a interação com o utilizador e a reescrita do programa (visto que o programa não tem de ser recompilado sempre que o desejamos executar). Não há tradução completa Execução lenta * * * Linguagens C&I Máquina virtual Existem linguagens que são compiladas em um determinado momento e depois interpretadas Por exemplo: JAVA * * * Uma vez compilado um programa de JAVA, este poderá depois correr em qualquer plataforma (hardware + sistema operacional da máquina), que tenha um interpretador de JAVA chamada a máquina Virtual de JAVA O compilador transforma o programa fonte em bytecodes Bytecodes são instruções reconhecidas pela máquina virtual A Máquina Virtual interpreta as instruções, transformando-as em linguagem de máquina * * * “Write once, run anywhere” Slogan criado pela Sun, para demonstrar a portabilidade da linguagem, graças aos Bytecodes * * * Sistemas híbridos Baixo custo de tradução Velocidade de execução média