Buscar

Algoritmos_Computacionais_02

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

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais