SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
3/31/11




                                                                        Aula	
  1:	
  Introdução	
  
Algoritmos	
  e	
  Estruturas	
  de	
  Dados	
  I	
     •    Modelo	
  de	
  computador	
  simplificado	
  
                   (AEDS	
  I)	
                        •    Instruções	
  
                                                        •    Dados	
  
          Prof.	
  Olga	
  N.	
  Goussevskaia	
  
                                                        •    Memória	
  
              olga@dcc.ufmg.br	
                        •    Linguagens	
  de	
  programação	
  




                                                                                      Obs: Alguns slides por Profa Mirella M. Moro




      Por	
  que	
  computação?	
                                    Por	
  que	
  computação?	
  




      Por	
  que	
  computação?	
                                    Por	
  que	
  computação?	
  




                                                                                                                                          1
3/31/11




                  Por	
  que	
  computação?	
                                                                                                                       Computador	
  
                                                                                                                               •  Máquina	
  que	
  processa	
  dados	
  em	
  menos	
  tempo	
  e	
  com	
  mais	
  
                                                                                                                                  segurança	
  
                                                                                                                                    –  “Processamento	
  eletrônico	
  de	
  dados.”	
  
                                                                                                                               •  Funções	
  básicas	
  do	
  computador:	
  
                                                                                                                                    –    Entrada	
  de	
  dados	
  
                                                                                                                                    –    Processamento	
  de	
  dados	
  
                                                                                                                                    –    Saída	
  de	
  informações	
  
                                                                                                                                    –    Armazenamento	
  de	
  informações	
  
                                                                                                                               •  Informá(ca	
  (Informação	
  Automá(ca)	
  
                                                                                                                                    –  Ciência	
  que	
  abrange	
  todas	
  as	
  aWvidades	
  relacionadas	
  com	
  o	
  
                                                                                                                                       processamento	
  automáWco	
  de	
  informações	
  


                                                                                                                                                                                                                                                    8	
  




                                   Terminologia	
                                                                                                                  Terminologia	
  
•  Dado	
                                                                                                                      •  Programa	
  
    –  Informação	
  que	
  será	
  trabalhada	
  durante	
  o	
  processamento	
                                                   –  roteiro	
  que	
  orienta	
  o	
  computador,	
  mostrando-­‐lhe	
  a	
  seqüência	
  de	
  
        •  Exemplos	
                                                                                                                  operações	
  necessárias	
  para	
  executar	
  uma	
  determinada	
  tarefa	
  
               –  10	
  (idade),	
  12	
  x	
  8	
  (pressão	
  arterial),	
  1.99	
  (altura	
  em	
  metros)	
                    –  seqüência	
  de	
  instruções	
  que	
  dirigem	
  a	
  CPU	
  (Central	
  Processing	
  Unit)	
  na	
  
•  Instrução	
                                                                                                                         execução	
  de	
  alguma	
  tarefa	
  
    –  Operação	
  elementar	
  que	
  o	
  computador	
  tem	
  a	
  capacidade	
                                                  –  composto	
  por	
  uma	
  série	
  de	
  comandos	
  ou	
  instruções	
  
       de	
  processar	
                                                                                                       •  Hardware	
  
    –  Conjunto	
  básico,	
  comum	
  à	
  maioria	
  das	
  linguagens:	
                                                         –  conjunto	
  de	
  componentes	
  mecânicos,	
  elétricos	
  e	
  eletrônicos	
  com	
  os	
  
        •    Entrada	
  e	
  saída	
  (E/S)	
  de	
  dados	
                                                                           quais	
  são	
  construídos	
  os	
  computadores	
  e	
  equipamentos	
  periféricos	
  
        •    Movimentação	
  de	
  dados	
  (transferência)	
                                                                  •  Soiware	
  
        •    AritméWca:	
  adição,	
  mulWplicação,	
  etc.	
                                                                       –  conjunto	
  de	
  programas	
  e	
  procedimentos	
  que	
  permitem	
  usufruir	
  da	
  
        •    Testes:	
  verificação	
  de	
  certas	
  condições	
  (comparação)	
                                                      capacidade	
  de	
  processamento	
  fornecida	
  pelo	
  hardware	
  
        •    RepeWção	
  de	
  ações,	
  em	
  geral,	
  com	
  algumas	
  variações	
  
                                                                                                                       9	
                                                                                                                        10	
  




                                                                                                                                                    Organização	
  funcional	
  
                 Organização	
  funcional	
  	
  
•  Sistema	
  Central	
  
    –  Unidade	
  Central	
  de	
  Processamento	
  (UCP/CPU/
       microprocessador)	
  
        •  Unidade	
  de	
  Controle	
  
        •  Unidade	
  AritméWca	
  e	
  Lógica	
  

    –  Clock	
  
    –  Memória	
  Principal	
  
    –  Interfaces	
  
•  Unidades	
  de	
  Entrada	
  e	
  Saída	
  (E/S)	
  

                                                                                                                     11	
                                                                                                                         12	
  




                                                                                                                                                                                                                                                                 2
3/31/11




                                        Sistema	
  central	
                                                                                                                         Sistema	
  central	
  
•  CPU/microprocessador	
  
      –  Unidade	
  de	
  Controle	
  
                                                                                                                                                        •  Memória	
  principal	
  
             •  Controla	
  o	
  fluxo	
  de	
  informações	
  entre	
  todas	
  as	
  unidades	
  do	
  computador	
  e	
  executa	
  as	
  
                instruções	
  na	
  seqüência	
  correta	
  
                                                                                                                                                             –  Armazena	
  temporariamente	
  as	
  informações	
  
      –  Unidade	
  Aritmé(ca	
  e	
  Lógica	
  (UAL)	
                                                                                                         (instruções	
  e	
  dados)	
  
             •  Realiza	
  operações	
  aritmé(cas	
  (cálculos)	
  e	
  lógicas	
  (decisões),	
  comandada	
  por	
  instruções	
  
                armazenadas	
  na	
  memória	
                                                                                                               –  Dados	
  ficam	
  disponíveis	
  ao	
  processamento	
  (pela	
  
      –  Fica	
  em	
  uma	
  placa	
  de	
  circuitos	
  chamada	
  placa-­‐mãe	
  (“motherboard”)	
                                                           ULA)	
  e	
  para	
  transferência	
  para	
  os	
  equipamentos	
  
                                                                                                                                                                de	
  saída	
  
•  Clock	
  (relógio)	
  
      –  Os	
  microprocessadores	
  trabalham	
  regidos	
  por	
  um	
  padrão	
  de	
  tempo	
                                                            –  Organizada	
  em	
  porções	
  de	
  armazenamento,	
  cada	
  
             •  determinado	
  por	
  um	
  clock	
  
      –  Gera	
  pulsos	
  a	
  intervalos	
  regulares	
  
                                                                                                                                                                qual	
  com	
  um	
  endereço	
  
      –  A	
  cada	
  pulso	
  uma	
  ou	
  mais	
  instruções	
  internas	
  são	
  realizadas	
                                                            –  Dois	
  Wpos	
  de	
  circuito:	
  ROM	
  e	
  RAM	
  

                                                                                                                                               13	
                                                                                                              14	
  




                                        Sistema	
  central	
                                                                                                                         Sistema	
  central	
  
Memória	
  principal	
                                                                                                                                  Memória	
  principal	
  
•  ROM	
  (Read	
  Only	
  Memory)	
  
      –    Tipicamente	
  menor	
  que	
  a	
  RAM	
  
                                                                                                                                                        •  RAM	
  (Random	
  Access	
  Memory)	
  
      –    Não	
  depende	
  de	
  energia	
  para	
  manter	
  o	
  seu	
  conteúdo	
                                                                       –  Memória	
  temporária	
  
      –    Memória	
  permanente	
                                                                                                                           –  UWlizada	
  pelo	
  usuário	
  para	
  desenvolver	
  seus	
  programas	
  
      –    Informações	
  não	
  podem	
  ser	
  apagadas	
  (casos	
  especiais)	
  
                                                                                                                                                             –  Uso	
  restringe-­‐se	
  ao	
  período	
  em	
  que	
  o	
  equipamento	
  está	
  
      –    Geralmente	
  vem	
  gravada	
  do	
  fabricante	
  
      –    Apenas	
  de	
  leitura	
  
                                                                                                                                                                em	
  funcionamento	
  
      –    Programas	
  em	
  memória	
  ROM	
  	
                                                                                                           –  Memória	
  é	
  voláWl	
  (seu	
  conteúdo	
  pode	
  ser	
  apagado)	
  	
  
             •  RoWna	
  de	
  inicialização	
  do	
  computador,	
  reconhecimento	
  do	
  hardware,	
  idenWficação	
                                            •  Armazenar	
  programas	
  e	
  dados	
  
                do	
  sistema	
  operacional,	
  contagem	
  de	
  memória	
  
                                                                                                                                                                   •  Guardar	
  resultados	
  intermediários	
  do	
  processamento	
  
             •  Orientar	
  o	
  computador	
  nas	
  primeiras	
  operações	
  
                                                                                                                                                             –  Podem	
  ser	
  lidas	
  ou	
  gravadas	
  informações	
  


                                                                                                                                               15	
                                                                                                              16	
  




                                        Sistema	
  central	
                                                                                                                Sistemas	
  de	
  E/S	
  (I/O)	
  
Barramentos	
                                                                                                                                           Periféricos	
  (ou	
  Unidades	
  de	
  Entrada	
  e	
  Saída,	
  (Input/Output))	
  
•  Transportam	
  sinais	
  de	
  dados,	
  endereço	
  e	
  controle	
                                                                                 •  DisposiWvos	
  conectados	
  a	
  um	
  computador	
  que	
  possibilitam	
  a	
  
                                                                                                                                                           comunicação	
  do	
  computador	
  com	
  o	
  mundo	
  externo	
  
                                                                                                                                                        •  Unidades	
  de	
  entrada	
  
                                                                                                                                                             –  Permitem	
  que	
  informações	
  sejam	
  introduzidas	
  na	
  memória	
  do	
  
                                                                                                                                                                computador	
  
                                                                                                                                                             –  Exemplo:	
  mouse	
  
                                                                                                                                                             –  Forma	
  armazenável	
  internamente	
  (bits)	
  
                                                                                                                                                        •  Unidades	
  de	
  saída	
  
                                                                                                                                                             –  Transformam	
  a	
  codificação	
  interna	
  dos	
  dados	
  em	
  uma	
  forma	
  legível	
  
                                                                                                                                                                pelo	
  usuário	
  
                                                                                                                                                             –  Exemplo:	
  Impressora	
  


                                                                                                                                               17	
                                                                                                              18	
  




                                                                                                                                                                                                                                                                               3
3/31/11




                                                     Instruções	
                                                                                                                             Instruções	
  
•  Programa	
                                                                                                                              •  Uma	
  instrução	
  é	
  consWtuída	
  basicamente	
  de:	
  
                                                                                                                                                  –  código	
  de	
  operação	
  
      –  seqüência	
  de	
  instruções	
                                                                                                          –  endereço	
  dos	
  operandos	
  
•  Computador	
  analisa	
  e	
  executa	
  uma	
  a	
  uma	
  	
  
                                                                                                                                                           0 1 1 0 0 1 0 1                        0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1
•  Execução	
  ocorre	
  na	
  ULA,	
  sob	
  coordenação	
  da	
                                                                                          Cód. de operação                    End. do 1º operando            End. do 2º operando

   UC	
  
                                                                                                                                                  –  Da	
  seção	
  de	
  controle,	
  seguem	
  para	
  a	
  memória	
  os	
  endereços	
  dos	
  
•  Na	
  execução:	
                                                                                                                                 operandos	
  
                                                                                                                                                  –  Operandos	
  são	
  localizados	
  e	
  transferidos	
  para	
  a	
  ULA	
  
      –  instruções	
  e	
  dados	
  estão	
  na	
  memória	
  
                                                                                                                                                  –  A	
  úlWma	
  etapa	
  consiste	
  em	
  transferir	
  o	
  conteúdo	
  do	
  registrador	
  que	
  
      –  são	
  trazidos	
  da	
  memória	
  para	
  a	
  CPU	
                                                                                      contém	
  o	
  resultado	
  para	
  a	
  memória	
  
      –  UC	
  analisa	
  a	
  instrução	
  
                                                                                                                                  19	
                                                                                                                                 20	
  




                                                     Instruções	
                                                                                              Representação	
  dos	
  dados	
  
                                                                                                                                           •  Bit	
  
Categorias	
  de	
  Instruções	
                                                                                                                  –     BInary	
  digiT	
  
•  Instruções	
  de	
  E/S	
                                                                                                                      –     Componente	
  básico	
  da	
  memória	
  	
  
                                                                                                                                                  –     É	
  a	
  menor	
  unidade	
  de	
  informação	
  
      –  leituras	
  de	
  fita,	
  disco	
  magnéWco,	
  gravação	
  etc	
                                                                        –     Pode	
  	
  assumir	
  	
  dois	
  	
  valores	
  ou	
  senWdos	
  
•  Instruções	
  de	
  transferência	
                                                                                                                       •  1	
  =	
  ligado	
  	
  
                                                                                                                                                             •  0	
  	
  =	
  desligado	
  
      –  da	
  memória	
  pra	
  CPU,	
  de	
  um	
  registrador	
  para	
  outro	
  
                                                                                                                                           •  Byte	
  
•  Instruções	
  AritméWcas	
                                                                                                                     –  Agrupamento	
  de	
  8	
  bits	
  
      –  adição,	
  subtração,	
  mulWplicação,	
  divisão	
                                                                                      –  Normalmente	
  corresponde	
  a	
  um	
  caractere:	
  letra,	
  dígito	
  numérico,	
  caractere	
  
                                                                                                                                                     de	
  pontuação,...	
  
•  Instruções	
  Lógicas	
                                                                                                                        –  Com	
  um	
  byte	
  é	
  possível	
  representar-­‐se	
  até	
  256	
  símbolos	
  diferentes	
  
      –  E	
  (AND),	
  OU	
  (OR),	
  NÃO	
  (NOT)	
                                                                                      •  Palavra	
  de	
  memória	
  
                                                                                                                                                  –  número	
  de	
  bits	
  que	
  o	
  computador	
  lê	
  ou	
  grava	
  em	
  uma	
  única	
  operação	
  (tanto	
  
                                                                                                                                                     dados	
  como	
  instruções)	
  
                                                                                                                                                  –  tamanho	
  da	
  palavra	
  de	
  memória	
  pode	
  variar	
  de	
  computador	
  para	
  
                                                                                                                                                     computador:	
  32	
  ou	
  64	
  bits	
  


                                                                                                                                  21	
                                                                                                                                 22	
  




                 Representação	
  dos	
  dados	
                                                                                                                Representação	
  de	
  Dados	
  
 •    Códigos	
  de	
  representação	
  de	
  dados	
                                                                                      •    Kilobyte	
  (Kb):	
  1024	
  (210)	
  bytes.	
  	
  
        –  Caractere	
  é	
  a	
  unidade	
  básica	
  de	
  armazenamento	
  na	
  maioria	
  dos	
  sistemas	
  
        –  Armazenamento	
  de	
  caracteres	
  (letras,	
  números	
  e	
  outros	
  símbolos)	
  é	
  feito	
  através	
  de	
  um	
            –  Capacidade	
  de	
  memória	
  dos	
  computadores	
  pessoais	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
           esquema	
  de	
  codificação	
  	
  
               •  certos	
  conjuntos	
  de	
  bits	
  representam	
  certos	
  caracteres	
  
                                                                                                                                                     mais	
  anWgos.	
  
        –  Bastante	
  uWlizados:	
  ASCII,	
  EBCDIC,	
  UNICODE	
                                                                        •    Megabyte	
  (Mb):	
  aproximadamente,	
  um	
  milhão	
  (220)	
  de	
  bytes.	
  
               •  ASCII	
  (American	
  Standard	
  Code	
  for	
  Informa6on	
  Interchange)	
  
                     –  Código	
  uWlizado	
  pela	
  maioria	
  dos	
  microcomputadores	
                                                       –  Memória	
  de	
  computadores	
  pessoais.	
  	
  
                                                                                                                                                  –  DisposiWvos	
  de	
  armazenamento	
  portáteis	
  (disquetes,	
  CD-­‐
                                                                                                                                                     ROMs).	
  
                                                                                                                                           •    Gigabyte	
  (Gb):	
  aproximadamente,	
  um	
  bilhão	
  (230)	
  de	
  bytes.	
  
 •    Unidades	
  de	
  Medida	
                                                                                                                  –  DisposiWvos	
  de	
  armazenamento	
  (discos	
  rígidos).	
  
        –  QuanWficar	
  a	
  memória	
  principal	
  do	
  equipamento	
  
        –  Indicar	
  a	
  capacidade	
  de	
  armazenamento	
  (disco,	
  CD-­‐ROM,	
  fita,	
  etc.)	
  	
                                       –  Memória	
  de	
  mainframes	
  e	
  servidores	
  de	
  rede.	
  
                                                                                                                                           •    Terabyte	
  (Tb):	
  aproximadamente,	
  um	
  trilhão	
  (240)	
  de	
  bytes.	
  
                                                                                                                                                  –  DisposiWvos	
  de	
  armazenamento	
  para	
  sistemas	
  muito	
  
                                                                                                                                                     grandes.	
  
                                                                                                                                  23	
                                                                                                                                 24	
  




                                                                                                                                                                                                                                                                                     4
3/31/11




                          Representação	
  de	
  Dados	
  	
                                                                                                                                  Níveis	
  de	
  memória	
  
•    1	
  página	
  txt	
  ASCII	
  	
  	
   	
  :	
  	
  	
  	
  	
  	
  	
  2	
  Kbytes	
                                                                           •  Diferentes	
  velocidades	
  de	
  acesso	
  
•    1	
  página	
  Word	
  	
  	
  	
  	
  	
  	
  	
  	
   	
  :	
  	
  	
  	
  	
  28	
  Kbytes	
  
•    100	
  páginas	
  Word	
  	
  	
  	
  	
   	
  :	
  	
  	
  300	
  Kbytes	
  
•    1	
  disquete	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   	
  :	
  	
  	
  1,44	
  Mbytes	
  
•    Dicionário	
  completo	
  	
   	
  :	
  	
  	
  	
  	
  	
  24	
  Mbytes	
  
•    1	
  CD	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   	
  :	
  	
  	
  	
  700	
  Mbytes	
  
•    1	
  DVD	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   	
  :	
  	
  	
  	
  	
  	
  	
  	
  4	
  Gbytes	
  
•    1	
  HD	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   	
  :	
  	
  	
  	
  	
  	
  80	
  Gbytes	
  
                                                                                                                                                             25	
                                                                                                              26	
  




                                          Níveis	
  de	
  memória	
                                                                                                                                         Soiware	
  	
  
•  Memória	
  Cache	
  
                                                                                                                                                                      •  Soiware	
  básico	
  
       –  Alyssima	
  velocidade	
  de	
  acesso	
  	
                                                                                                                     –  Conjunto	
  de	
  soiwares	
  que	
  permite	
  ao	
  usuário	
  
       –  Acelerar	
  o	
  processo	
  de	
  busca	
  de	
  informações	
  na	
  memória	
  
                                                                                                                                                                              criar,	
  depurar	
  e	
  modificar	
  	
  as	
  aplicações	
  criadas	
  
       –  Localizada	
  logicamente	
  entre	
  o	
  processador	
  e	
  a	
  memória	
  principal	
  	
  
       –  Pode	
  tanto	
  integrar	
  o	
  microprocessador	
  (cache	
  interna),	
  como	
  consisWr	
  de	
  chips	
                                                      por	
  ele	
  
          adicionais	
  instalados	
  na	
  placa-­‐mãe	
  do	
  micro	
  (cache	
  externa)	
                                                                                   •  Sistema	
  operacional,	
  linguagens	
  de	
  programação,	
  compiladores,	
  
       –  Tamanho	
  Wpicamente	
  pequeno:	
  cache	
  interna:	
  até	
  512K;	
  cache	
  externa:	
  até	
                                                                      uWlitários	
  
          2Mb	
  
•  Memórias	
  	
  Auxiliar	
  	
  e	
  Auxiliar-­‐Backup	
                                                                                                           •  Soiware	
  aplicaWvo	
  
       –  Discos,	
  CDs	
  e	
  fitas	
                                                                                                                                    –  Aplicações	
  criadas	
  para	
  solucionar	
  problemas	
  
                                                                                                                                                                              específicos	
  
                                                                                                                                                                                 •  Exemplos:	
  web	
  browser,	
  mp3	
  player,	
  video	
  player,	
  contabilidade,	
  
                                                                                                                                                                                    folha	
  de	
  pagamento,	
  correção	
  de	
  provas	
  	
  

                                                                                                                                                             27	
                                                                                                              28	
  




                Soiware	
  Básico	
  –	
  Sistema	
  Operacional	
                                                                                                              Soiware	
  Básico	
  –	
  Sistema	
  Operacional	
  
SISTEMA	
  OPERACIONAL	
  
•  Conjunto	
  de	
  programas	
  supervisores	
  que	
  gerenciam	
  os	
  
   recursos	
  (hw	
  e	
  sw)	
  de	
  um	
  sistema	
  de	
  computação	
  
•  Funções:	
  
       –      Gerência	
  de	
  memória	
  
       –      Gerência	
  de	
  processador	
  
       –      Gerência	
  de	
  arquivos	
  
       –      Gerência	
  de	
  disposiWvos	
  de	
  E/S	
  (periféricos)	
  
•  Tarefas	
  específicas:                                              	
  	
                                                                                                                                                                                S.O.
       –  Ler	
  a	
  tecla	
  pressionada	
  no	
  teclado	
  	
  	
  
       –  Transferir	
  um	
  arquivo	
  do	
  disquete	
  para	
  a	
  memória	
  principal,	
  etc	
  
•  Ex.:	
  MS-­‐DOS,	
  Windows,	
  Linux,	
  MacOS,	
  Unix,	
  ...	
  


                                                                                                                                                             29	
                                                                                                              30	
  




                                                                                                                                                                                                                                                                                             5
3/31/11




             Soiware	
  Básico	
  –	
  Ling.	
  de	
  Programação	
                                                              Soiware	
  Básico	
  –	
  Ling.	
  de	
  Programação	
  

   LINGUAGENS	
  DE	
  PROGRAMAÇÃO	
                                                                                   VISÃO	
  GLOBAL	
  
                                                                                                                       1a	
  geração	
  -­‐	
  Linguagens	
  de	
  máquina	
  
   •  Conjunto	
  de	
  convenções	
  e	
  regras	
  que	
                                                                   –  0010	
  0001	
  0110	
  1100	
  
      especificam	
  como	
  instruir	
  o	
  computador	
  a	
                                                         2a	
  geração	
  -­‐	
  Linguagens	
  de	
  montagem	
  (assembly)	
  
                                                                                                                             –  ADD	
  R1,	
  TOTAL	
                                                                    BAIXO NÍVEL
      executar	
  determinadas	
  tarefas	
                                                                            3a	
  geração	
  -­‐	
  Linguagens	
  orientadas	
  ao	
  usuário	
                                ALTO NÍVEL
   •  Serve	
  como	
  meio	
  de	
  comunicação	
  entre	
  o	
                                                             –  LET	
  SOMA	
  =	
  VAR1	
  +	
  TOTAL	
  
                                                                                                                             –  IF	
  SOMA	
  >	
  3	
  THEN	
  EXIT	
  
      indivíduo	
  que	
  deseja	
  resolver	
  um	
  determinado	
                                                    4a	
  geração	
  -­‐	
  Linguagens	
  orientadas	
  à	
  aplicação	
  
      problema	
  e	
  o	
  computador	
  	
                                                                                 –  LIST	
  ALL	
  NOME,	
  ENDERECO,	
  TELEFONE	
  
                                                                                                                             –  FOR	
  CIDADE	
  =	
  “PORTO	
  ALEGRE”	
  
                                                                                                                       5a	
  geração	
  -­‐	
  Linguagens	
  de	
  conhecimento	
  (IA)	
  


                                                                                                              31	
                                                                                                                      32	
  




                 1a	
  geração	
  -­‐	
  Linguagens	
  de	
  Máquina	
                                                            2a	
  geração	
  -­‐	
  Linguagens	
  de	
  Montagem	
  

   •  Linguagem	
  de	
  máquina	
  escrita	
  em	
  notação	
  binária	
                                              •  Linguagem	
  de	
  baixo	
  nível	
  
         –  Exemplo:	
                                                                                                 •  Minimizar	
  as	
  dificuldades	
  da	
  programação	
  em	
  notação	
  binária	
  
                           	
  	
  	
  0010	
  0001	
  0110	
  1100	
                                                        –  Assemblers	
  (montadores)	
  
                                                                                                                       •  Usam	
  códigos	
  mnemônicos	
  com	
  letras	
  e	
  números	
  para	
  
                                                                           Endereço da posição de memória
                                                                                                                          representar	
  os	
  comandos,	
  por	
  exemplo:	
  
                                                                           que contém o dado
                                                                                                                             –  LOAD	
  B:	
  carrega	
  no	
  registrador	
  o	
  dado	
  que	
  está	
  no	
  endereço	
  B	
  
                                                                            Endereço do registrador                          –  ADD	
  A:	
  adiciona	
  ao	
  registrador	
  o	
  dado	
  que	
  está	
  no	
  endereço	
  A	
  
                                                                                                                             –  ADD	
  R1,	
  TOTAL:	
  R1	
  representa	
  o	
  registrador	
  1	
  e	
  TOTAL	
  é	
  o	
  nome	
  
                                                                            Código da operação: Adição                          atribuído	
  ao	
  endereço	
  de	
  memória	
  108	
  
         –  soma	
  do	
  dados	
  armazenado	
  no	
  registrador	
  0001	
  com	
  o	
  dado	
                       •  Processamento	
  requer	
  tradução	
  para	
  linguagem	
  de	
  máquina	
  
            armazenado	
  na	
  posição	
  de	
  memória	
  0110	
  1100	
  
   •  Programa	
  =	
  seqüência	
  de	
  zeros	
  e	
  uns	
  
         –  Programação	
  trabalhosa,	
  cansaWva	
  e	
  fortemente	
  sujeita	
  a	
  erros	
              33	
                                                                                                                      34	
  




           3a	
  geração	
  –	
  Lings.	
  Orientadas	
  ao	
  Usuário	
                                                      4a	
  geração	
  –	
  Lings.	
  Orientadas	
  à	
  Aplicação	
  
•  Linguagem	
  genérica	
  de	
  alto	
  nível	
  
•  Usam	
  comandos	
  com	
  nomes	
  geralmente	
                                                                    •    Linguagem	
  orientada	
  à	
  aplicação	
  	
  
   auto-­‐explanaWvos	
  	
                                                                                            •    Gera	
  código	
  a	
  parWr	
  de	
  expressões	
  de	
  alto	
  nível	
  
    –  Exemplo:	
  read,	
  write,	
  if,	
  open…	
                              Exemplo em Pascal                    •    Facilita	
  o	
  uso	
  da	
  linguagem	
  
                                                                          program Exemplo;
•  Principais	
  linguagens	
                                             var a,b: integer;                            •    Exemplo:	
  DBASE,	
  SQL	
  
    –    Fortran	
  (1954)	
                                              begin
    –    Cobol	
  (1959)	
                                                  write ('Digite um número para A');                                    Exemplo em DBASE
    –    Basic	
  (1965)	
                                                  readln (a);                                                   List All Nome, Endereco, Telefone
                                                                            write ('Digite o número para B');
    –    Pascal	
  (1975)	
                                                 readln (b);
                                                                                                                                          For Cidade = “Porto Alegre”
    –    C	
  (1980)	
                                                           if (a > b) then
                                                                                     writeln ('A é maior que B')                        Lê todos os registros que compõem um
                                                                                 else                                                   arquivo e, para cada lido, seleciona
                                                                                     writeln ('B é maior que A');                       aqueles cuja cidade = “Porto Alegre”.
                                                                          end.
                                                                                                              35	
                                                                                                                      36	
  




                                                                                                                                                                                                                                                      6
3/31/11




       5a	
  geração	
  –	
  Linguagens	
  de	
  Conhecimento	
                                                                 Linguagens	
  de	
  programação	
  

•  Mecanismos	
  da	
  área	
  de	
  Inteligência	
  ArWficial	
                                                          C:	
  uma	
  linguagem	
  de	
  programação	
  de	
  alto	
  
      –  São	
  criadas	
  bases	
  de	
  conhecimentos,	
  obWdas	
  a	
  parWr	
  de	
  especialistas,	
                nível	
  
         e	
  as	
  linguagens	
  fazem	
  deduções,	
  inferências	
  e	
  Wram	
  conclusões	
  
         baseadas	
  nas	
  bases	
  de	
  conhecimento.	
                                                                     Outros	
  exemplos:	
  Java,	
  Pascal,	
  C++	
  
•  Exemplos:	
  Prolog,	
  Lisp,	
  Art	
                                                                                      Vantagens:	
  simplifica	
  muuito	
  o	
  trabalho	
  do	
  
                                                                                                                                programador;	
  código	
  mais	
  curto,	
  mais	
  simples	
  de	
  
                                                                                                                                ler;	
  independente	
  de	
  plataforma	
  (HW,	
  SO)	
  
             PS: no site
             http://www2.latech.edu/~acm/HelloWorld.shtml
             você pode encontrar o programa ‘Hello World’
             implementado em dezenas de linguagens                                                                       Linguagens	
  de	
  baixo	
  nível:	
  
                                                                                                                               Linguagem	
  de	
  máquina,	
  de	
  montagem	
  (assemply)	
  
                                                                                                           37	
  




            Linguagens	
  de	
  programação	
                                                                                   Tradutores	
  de	
  linguagens	
  de	
  
                                                                                                                                       programação	
  	
  
     A	
  grande	
  maioria	
  de	
  programas	
  são	
  escritos	
  
      em	
  linguagens	
  de	
  alto	
  nível	
  
     Mas	
  computadores	
  só	
  podem	
  executar	
  
      programas	
  escritos	
  em	
  linguagem	
  de	
  baixo	
  
      nível!	
  
     Programas	
  escritos	
  em	
  linguagem	
  de	
  alto	
  nível	
                                                                                UCP
      deve	
  ser	
  traduzido	
  por	
  um:	
  
           Interpretador	
  ou	
  
           Compilador	
  

                                                                                                                                                                                                                                               40	
  




            Tradutores	
  de	
  linguagens	
  de	
                                                                              Tradutores	
  de	
  linguagens	
  de	
  
                   programação	
                                                                                                       programação	
  
                                                                                                                    •  Compilador	
  
•  Tradutor	
                                                                                                             –  Traduz	
  um	
  programa	
  escrito	
  	
  em	
  linguagem	
  de	
  alto	
  nível	
  
                                                                                                                          –  Produz	
  um	
  programa	
  em	
  linguagem	
  objeto	
  (linguagem	
  executável,	
  ou	
  seja,	
  
      –  Recebe	
  como	
  entrada	
  um	
  programa	
  escrito	
  em	
  uma	
  linguagem	
  de	
                            linguagem	
  de	
  máquina)	
  
         programação	
  (dita	
  linguagem	
  fonte)	
  	
                                                                      •  Pode	
  ser	
  executado	
  uma	
  ou	
  mais	
  vezes	
  no	
  futuro	
  
      –  Produz	
  	
  como	
  resultado	
  as	
  instruções	
  deste	
  programa	
  traduzidas	
  para	
                       •  Enquanto	
  o	
  código	
  fonte	
  do	
  programa	
  não	
  for	
  alterado,	
  ele	
  poderá	
  ser	
  
         linguagem	
  de	
  máquina	
  (i.e.	
  linguagem	
  objeto)	
                                                             executado	
  sucessivas	
  vezes,	
  sem	
  necessidade	
  de	
  nova	
  compilação	
  
•  Se	
  a	
  linguagem	
  do	
  programa	
  fonte	
  é	
  uma	
  linguagem	
  de	
                                 •  Interpretador	
  	
  
                                                                                                                          –  Traduz	
  um	
  programa	
  escrito	
  em	
  linguagem	
  fonte,	
  instrução	
  a	
  instrução,	
  
   montagem	
  (Assembly)	
                                                                                                  enquanto	
  ele	
  vai	
  sendo	
  executado	
  
      –  Tradutor	
  é	
  chamado	
  de	
  Montador	
  (Assembler)	
                                                      –  Cada	
  vez	
  que	
  um	
  programa	
  interpretado	
  Wver	
  que	
  ser	
  re-­‐executado,	
  todo	
  o	
  
                                                                                                                             processo	
  de	
  	
  interpretação	
  deverá	
  ser	
  refeito,	
  independentemente	
  de	
  ter	
  
•  Tradutores	
  que	
  traduzem	
  os	
  programas	
  escritos	
  em	
  linguagem	
                                         havido	
  ou	
  não	
  modificações	
  no	
  código	
  fonte	
  do	
  programa	
  desde	
  sua	
  úlWma	
  
   de	
  alto	
  nível	
  	
                                                                                                 execução	
  
      –  Compiladores	
  e	
  os	
  interpretadores	
                                                               •  Programas	
  compilados	
  tendem	
  a	
  ser	
  executados	
  mais	
  rapidamente	
  que	
  
                                                                                                                       seus	
  correspondentes	
  interpretados	
  


                                                                                                           41	
                                                                                                                                42	
  




                                                                                                                                                                                                                                                             7
3/31/11




Tradutores	
  de	
  linguagens	
  de	
                        Linguagens	
  de	
  programação	
  
       programação	
  
                                                        Exemplos	
  de	
  linguagens	
  interpretadas:	
  
                                                             MATLAB,	
  Javascript,	
  Python,	
  Perl,	
  PHP	
  (scripts)	
  
                                                        Exemplos	
  de	
  linguagens	
  compiladas:	
  
                                                             Pascal,	
  C,	
  C++,	
  C#,	
  Java	
  (JVM	
  bytecode)	
  




                                           43	
  




   Próxima	
  aula:	
  Lógica	
  de	
  
        Programação	
  




                                                                                                                                        8

Contenu connexe

Tendances

Apontamentos conceitos introdutórios
Apontamentos conceitos introdutóriosApontamentos conceitos introdutórios
Apontamentos conceitos introdutóriosAp Vilaboim Oitavob
 
Introdução ao estudo de Arquitetura de Computadores - (baseado em Stallings, ...
Introdução ao estudo de Arquitetura de Computadores - (baseado em Stallings, ...Introdução ao estudo de Arquitetura de Computadores - (baseado em Stallings, ...
Introdução ao estudo de Arquitetura de Computadores - (baseado em Stallings, ...Isabel Mendes Pedrosa
 
Powerpoint José e Francisco
Powerpoint José e FranciscoPowerpoint José e Francisco
Powerpoint José e FranciscoJPSeidi226
 
AE Tondela TIC 7ano apresentação 2
AE Tondela TIC 7ano apresentação 2AE Tondela TIC 7ano apresentação 2
AE Tondela TIC 7ano apresentação 2João Leal
 
Conceitos básicos tic
Conceitos básicos ticConceitos básicos tic
Conceitos básicos ticcmtb31
 
Aula1 conceitos básicos informática
Aula1 conceitos básicos informáticaAula1 conceitos básicos informática
Aula1 conceitos básicos informáticaTimoteo Silva
 
Introduçao à Informática
Introduçao à InformáticaIntroduçao à Informática
Introduçao à Informáticamarie1961
 
Aula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de ComputadoresAula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de ComputadoresMarco Silva
 
Informática 1-conceitos e componentes
Informática  1-conceitos e componentesInformática  1-conceitos e componentes
Informática 1-conceitos e componentesMauro Pereira
 

Tendances (17)

Apontamentos conceitos introdutórios
Apontamentos conceitos introdutóriosApontamentos conceitos introdutórios
Apontamentos conceitos introdutórios
 
Sistema Operativo
Sistema OperativoSistema Operativo
Sistema Operativo
 
Introdução ao estudo de Arquitetura de Computadores - (baseado em Stallings, ...
Introdução ao estudo de Arquitetura de Computadores - (baseado em Stallings, ...Introdução ao estudo de Arquitetura de Computadores - (baseado em Stallings, ...
Introdução ao estudo de Arquitetura de Computadores - (baseado em Stallings, ...
 
Arquitetura 8
Arquitetura 8Arquitetura 8
Arquitetura 8
 
Powerpoint José e Francisco
Powerpoint José e FranciscoPowerpoint José e Francisco
Powerpoint José e Francisco
 
AE Tondela TIC 7ano apresentação 2
AE Tondela TIC 7ano apresentação 2AE Tondela TIC 7ano apresentação 2
AE Tondela TIC 7ano apresentação 2
 
Informática
InformáticaInformática
Informática
 
Conceitos básicos tic
Conceitos básicos ticConceitos básicos tic
Conceitos básicos tic
 
apostila básica informática
apostila básica informáticaapostila básica informática
apostila básica informática
 
Informática
InformáticaInformática
Informática
 
Introducao informatica
Introducao informaticaIntroducao informatica
Introducao informatica
 
Hardware
HardwareHardware
Hardware
 
Aula1 conceitos básicos informática
Aula1 conceitos básicos informáticaAula1 conceitos básicos informática
Aula1 conceitos básicos informática
 
Introduçao à Informática
Introduçao à InformáticaIntroduçao à Informática
Introduçao à Informática
 
Aula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de ComputadoresAula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de Computadores
 
Arq orgcomp
Arq orgcompArq orgcomp
Arq orgcomp
 
Informática 1-conceitos e componentes
Informática  1-conceitos e componentesInformática  1-conceitos e componentes
Informática 1-conceitos e componentes
 

En vedette

Desenvolvimento de Aplicação Social - Tarefa II
Desenvolvimento de Aplicação Social - Tarefa IIDesenvolvimento de Aplicação Social - Tarefa II
Desenvolvimento de Aplicação Social - Tarefa IIWender Higinotsumi
 
Desenvolvimento de Aplicação Social- Tarefa I
Desenvolvimento de Aplicação Social- Tarefa IDesenvolvimento de Aplicação Social- Tarefa I
Desenvolvimento de Aplicação Social- Tarefa IWender Higinotsumi
 
Grupo Azul- Comunidades Virtuais
Grupo Azul- Comunidades VirtuaisGrupo Azul- Comunidades Virtuais
Grupo Azul- Comunidades VirtuaisWender Higinotsumi
 
Introdução a Algoritmos e Estruturas de Dados
Introdução a Algoritmos e Estruturas de DadosIntrodução a Algoritmos e Estruturas de Dados
Introdução a Algoritmos e Estruturas de DadosWender Higinotsumi
 

En vedette (6)

Stad Ronse
Stad RonseStad Ronse
Stad Ronse
 
Desenvolvimento de Aplicação Social - Tarefa II
Desenvolvimento de Aplicação Social - Tarefa IIDesenvolvimento de Aplicação Social - Tarefa II
Desenvolvimento de Aplicação Social - Tarefa II
 
SharePoint Saturday NH: 5 ways SharePoint can Benefit the PMO
SharePoint Saturday NH: 5 ways SharePoint can Benefit the PMOSharePoint Saturday NH: 5 ways SharePoint can Benefit the PMO
SharePoint Saturday NH: 5 ways SharePoint can Benefit the PMO
 
Desenvolvimento de Aplicação Social- Tarefa I
Desenvolvimento de Aplicação Social- Tarefa IDesenvolvimento de Aplicação Social- Tarefa I
Desenvolvimento de Aplicação Social- Tarefa I
 
Grupo Azul- Comunidades Virtuais
Grupo Azul- Comunidades VirtuaisGrupo Azul- Comunidades Virtuais
Grupo Azul- Comunidades Virtuais
 
Introdução a Algoritmos e Estruturas de Dados
Introdução a Algoritmos e Estruturas de DadosIntrodução a Algoritmos e Estruturas de Dados
Introdução a Algoritmos e Estruturas de Dados
 

Similaire à Introdução a Algoritmos e Estruturas de Dados

Fluxo de dados nos hardwares
Fluxo de dados nos hardwaresFluxo de dados nos hardwares
Fluxo de dados nos hardwaresVinicius Buffolo
 
Informatica Básica Aplicada no Contexto das Desigualdades sociais
Informatica Básica Aplicada no Contexto das Desigualdades sociaisInformatica Básica Aplicada no Contexto das Desigualdades sociais
Informatica Básica Aplicada no Contexto das Desigualdades sociaisRICARDO81499
 
Dado e informação
Dado e informaçãoDado e informação
Dado e informaçãocabaldreams
 
Dado e informação
Dado e informaçãoDado e informação
Dado e informaçãodgtavares
 
01 - Informatica Basica.pdf
01 - Informatica Basica.pdf01 - Informatica Basica.pdf
01 - Informatica Basica.pdfNiltonRaice
 
8 d 20_mariana pereira_19_marco morais_tic (2)
8 d 20_mariana pereira_19_marco morais_tic (2)8 d 20_mariana pereira_19_marco morais_tic (2)
8 d 20_mariana pereira_19_marco morais_tic (2)Mariana Pereira
 
Noções de Processamento de Dados.pptx
Noções de Processamento de Dados.pptxNoções de Processamento de Dados.pptx
Noções de Processamento de Dados.pptxSamara Santos
 
Introdução a informática jessicafernandes-turma2012-polopinheiral
Introdução a informática jessicafernandes-turma2012-polopinheiralIntrodução a informática jessicafernandes-turma2012-polopinheiral
Introdução a informática jessicafernandes-turma2012-polopinheiralJéssica Cristina Cardoso Fernandes
 
Princípios Básicos da Informática.ppt
Princípios Básicos da Informática.pptPrincípios Básicos da Informática.ppt
Princípios Básicos da Informática.pptBerXimenes
 
02 hardware e software
02   hardware e software02   hardware e software
02 hardware e softwaremorgannaprata
 
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES IORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Ipaulocoob
 
Arquitetura básica de um computador
Arquitetura básica de um computadorArquitetura básica de um computador
Arquitetura básica de um computadorNécio de Lima Veras
 
PowerPoint
PowerPointPowerPoint
PowerPointana.vaz
 
Conceitos básicos hardware TIC
Conceitos básicos hardware TICConceitos básicos hardware TIC
Conceitos básicos hardware TICemifer2012
 
Computação Científica.pdf
Computação Científica.pdfComputação Científica.pdf
Computação Científica.pdfTomasEdson2
 
Ádria e Francinaldo.pptx
Ádria e Francinaldo.pptxÁdria e Francinaldo.pptx
Ádria e Francinaldo.pptxYanSidnio
 
Apresentação TIC - Unidade 1 Introdução aos Computadores
Apresentação TIC - Unidade 1 Introdução aos ComputadoresApresentação TIC - Unidade 1 Introdução aos Computadores
Apresentação TIC - Unidade 1 Introdução aos Computadoreshenriquecorreiosapo
 

Similaire à Introdução a Algoritmos e Estruturas de Dados (20)

Fluxo de dados nos hardwares
Fluxo de dados nos hardwaresFluxo de dados nos hardwares
Fluxo de dados nos hardwares
 
Informatica Basica.pptx
Informatica Basica.pptxInformatica Basica.pptx
Informatica Basica.pptx
 
Informatica Básica Aplicada no Contexto das Desigualdades sociais
Informatica Básica Aplicada no Contexto das Desigualdades sociaisInformatica Básica Aplicada no Contexto das Desigualdades sociais
Informatica Básica Aplicada no Contexto das Desigualdades sociais
 
INFORMÁTICA BÁSICA.
INFORMÁTICA BÁSICA.INFORMÁTICA BÁSICA.
INFORMÁTICA BÁSICA.
 
Dado e informação
Dado e informaçãoDado e informação
Dado e informação
 
Dado e informação
Dado e informaçãoDado e informação
Dado e informação
 
01 - Informatica Basica.pdf
01 - Informatica Basica.pdf01 - Informatica Basica.pdf
01 - Informatica Basica.pdf
 
8 d 20_mariana pereira_19_marco morais_tic (2)
8 d 20_mariana pereira_19_marco morais_tic (2)8 d 20_mariana pereira_19_marco morais_tic (2)
8 d 20_mariana pereira_19_marco morais_tic (2)
 
Noções de Processamento de Dados.pptx
Noções de Processamento de Dados.pptxNoções de Processamento de Dados.pptx
Noções de Processamento de Dados.pptx
 
Apresentação1.pptx
Apresentação1.pptxApresentação1.pptx
Apresentação1.pptx
 
Introdução a informática jessicafernandes-turma2012-polopinheiral
Introdução a informática jessicafernandes-turma2012-polopinheiralIntrodução a informática jessicafernandes-turma2012-polopinheiral
Introdução a informática jessicafernandes-turma2012-polopinheiral
 
Princípios Básicos da Informática.ppt
Princípios Básicos da Informática.pptPrincípios Básicos da Informática.ppt
Princípios Básicos da Informática.ppt
 
02 hardware e software
02   hardware e software02   hardware e software
02 hardware e software
 
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES IORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
 
Arquitetura básica de um computador
Arquitetura básica de um computadorArquitetura básica de um computador
Arquitetura básica de um computador
 
PowerPoint
PowerPointPowerPoint
PowerPoint
 
Conceitos básicos hardware TIC
Conceitos básicos hardware TICConceitos básicos hardware TIC
Conceitos básicos hardware TIC
 
Computação Científica.pdf
Computação Científica.pdfComputação Científica.pdf
Computação Científica.pdf
 
Ádria e Francinaldo.pptx
Ádria e Francinaldo.pptxÁdria e Francinaldo.pptx
Ádria e Francinaldo.pptx
 
Apresentação TIC - Unidade 1 Introdução aos Computadores
Apresentação TIC - Unidade 1 Introdução aos ComputadoresApresentação TIC - Unidade 1 Introdução aos Computadores
Apresentação TIC - Unidade 1 Introdução aos Computadores
 

Introdução a Algoritmos e Estruturas de Dados

  • 1. 3/31/11 Aula  1:  Introdução   Algoritmos  e  Estruturas  de  Dados  I   •  Modelo  de  computador  simplificado   (AEDS  I)   •  Instruções   •  Dados   Prof.  Olga  N.  Goussevskaia   •  Memória   olga@dcc.ufmg.br   •  Linguagens  de  programação   Obs: Alguns slides por Profa Mirella M. Moro Por  que  computação?   Por  que  computação?   Por  que  computação?   Por  que  computação?   1
  • 2. 3/31/11 Por  que  computação?   Computador   •  Máquina  que  processa  dados  em  menos  tempo  e  com  mais   segurança   –  “Processamento  eletrônico  de  dados.”   •  Funções  básicas  do  computador:   –  Entrada  de  dados   –  Processamento  de  dados   –  Saída  de  informações   –  Armazenamento  de  informações   •  Informá(ca  (Informação  Automá(ca)   –  Ciência  que  abrange  todas  as  aWvidades  relacionadas  com  o   processamento  automáWco  de  informações   8   Terminologia   Terminologia   •  Dado   •  Programa   –  Informação  que  será  trabalhada  durante  o  processamento   –  roteiro  que  orienta  o  computador,  mostrando-­‐lhe  a  seqüência  de   •  Exemplos   operações  necessárias  para  executar  uma  determinada  tarefa   –  10  (idade),  12  x  8  (pressão  arterial),  1.99  (altura  em  metros)   –  seqüência  de  instruções  que  dirigem  a  CPU  (Central  Processing  Unit)  na   •  Instrução   execução  de  alguma  tarefa   –  Operação  elementar  que  o  computador  tem  a  capacidade   –  composto  por  uma  série  de  comandos  ou  instruções   de  processar   •  Hardware   –  Conjunto  básico,  comum  à  maioria  das  linguagens:   –  conjunto  de  componentes  mecânicos,  elétricos  e  eletrônicos  com  os   •  Entrada  e  saída  (E/S)  de  dados   quais  são  construídos  os  computadores  e  equipamentos  periféricos   •  Movimentação  de  dados  (transferência)   •  Soiware   •  AritméWca:  adição,  mulWplicação,  etc.   –  conjunto  de  programas  e  procedimentos  que  permitem  usufruir  da   •  Testes:  verificação  de  certas  condições  (comparação)   capacidade  de  processamento  fornecida  pelo  hardware   •  RepeWção  de  ações,  em  geral,  com  algumas  variações   9   10   Organização  funcional   Organização  funcional     •  Sistema  Central   –  Unidade  Central  de  Processamento  (UCP/CPU/ microprocessador)   •  Unidade  de  Controle   •  Unidade  AritméWca  e  Lógica   –  Clock   –  Memória  Principal   –  Interfaces   •  Unidades  de  Entrada  e  Saída  (E/S)   11   12   2
  • 3. 3/31/11 Sistema  central   Sistema  central   •  CPU/microprocessador   –  Unidade  de  Controle   •  Memória  principal   •  Controla  o  fluxo  de  informações  entre  todas  as  unidades  do  computador  e  executa  as   instruções  na  seqüência  correta   –  Armazena  temporariamente  as  informações   –  Unidade  Aritmé(ca  e  Lógica  (UAL)   (instruções  e  dados)   •  Realiza  operações  aritmé(cas  (cálculos)  e  lógicas  (decisões),  comandada  por  instruções   armazenadas  na  memória   –  Dados  ficam  disponíveis  ao  processamento  (pela   –  Fica  em  uma  placa  de  circuitos  chamada  placa-­‐mãe  (“motherboard”)   ULA)  e  para  transferência  para  os  equipamentos   de  saída   •  Clock  (relógio)   –  Os  microprocessadores  trabalham  regidos  por  um  padrão  de  tempo   –  Organizada  em  porções  de  armazenamento,  cada   •  determinado  por  um  clock   –  Gera  pulsos  a  intervalos  regulares   qual  com  um  endereço   –  A  cada  pulso  uma  ou  mais  instruções  internas  são  realizadas   –  Dois  Wpos  de  circuito:  ROM  e  RAM   13   14   Sistema  central   Sistema  central   Memória  principal   Memória  principal   •  ROM  (Read  Only  Memory)   –  Tipicamente  menor  que  a  RAM   •  RAM  (Random  Access  Memory)   –  Não  depende  de  energia  para  manter  o  seu  conteúdo   –  Memória  temporária   –  Memória  permanente   –  UWlizada  pelo  usuário  para  desenvolver  seus  programas   –  Informações  não  podem  ser  apagadas  (casos  especiais)   –  Uso  restringe-­‐se  ao  período  em  que  o  equipamento  está   –  Geralmente  vem  gravada  do  fabricante   –  Apenas  de  leitura   em  funcionamento   –  Programas  em  memória  ROM     –  Memória  é  voláWl  (seu  conteúdo  pode  ser  apagado)     •  RoWna  de  inicialização  do  computador,  reconhecimento  do  hardware,  idenWficação   •  Armazenar  programas  e  dados   do  sistema  operacional,  contagem  de  memória   •  Guardar  resultados  intermediários  do  processamento   •  Orientar  o  computador  nas  primeiras  operações   –  Podem  ser  lidas  ou  gravadas  informações   15   16   Sistema  central   Sistemas  de  E/S  (I/O)   Barramentos   Periféricos  (ou  Unidades  de  Entrada  e  Saída,  (Input/Output))   •  Transportam  sinais  de  dados,  endereço  e  controle   •  DisposiWvos  conectados  a  um  computador  que  possibilitam  a   comunicação  do  computador  com  o  mundo  externo   •  Unidades  de  entrada   –  Permitem  que  informações  sejam  introduzidas  na  memória  do   computador   –  Exemplo:  mouse   –  Forma  armazenável  internamente  (bits)   •  Unidades  de  saída   –  Transformam  a  codificação  interna  dos  dados  em  uma  forma  legível   pelo  usuário   –  Exemplo:  Impressora   17   18   3
  • 4. 3/31/11 Instruções   Instruções   •  Programa   •  Uma  instrução  é  consWtuída  basicamente  de:   –  código  de  operação   –  seqüência  de  instruções   –  endereço  dos  operandos   •  Computador  analisa  e  executa  uma  a  uma     0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1 •  Execução  ocorre  na  ULA,  sob  coordenação  da   Cód. de operação End. do 1º operando End. do 2º operando UC   –  Da  seção  de  controle,  seguem  para  a  memória  os  endereços  dos   •  Na  execução:   operandos   –  Operandos  são  localizados  e  transferidos  para  a  ULA   –  instruções  e  dados  estão  na  memória   –  A  úlWma  etapa  consiste  em  transferir  o  conteúdo  do  registrador  que   –  são  trazidos  da  memória  para  a  CPU   contém  o  resultado  para  a  memória   –  UC  analisa  a  instrução   19   20   Instruções   Representação  dos  dados   •  Bit   Categorias  de  Instruções   –  BInary  digiT   •  Instruções  de  E/S   –  Componente  básico  da  memória     –  É  a  menor  unidade  de  informação   –  leituras  de  fita,  disco  magnéWco,  gravação  etc   –  Pode    assumir    dois    valores  ou  senWdos   •  Instruções  de  transferência   •  1  =  ligado     •  0    =  desligado   –  da  memória  pra  CPU,  de  um  registrador  para  outro   •  Byte   •  Instruções  AritméWcas   –  Agrupamento  de  8  bits   –  adição,  subtração,  mulWplicação,  divisão   –  Normalmente  corresponde  a  um  caractere:  letra,  dígito  numérico,  caractere   de  pontuação,...   •  Instruções  Lógicas   –  Com  um  byte  é  possível  representar-­‐se  até  256  símbolos  diferentes   –  E  (AND),  OU  (OR),  NÃO  (NOT)   •  Palavra  de  memória   –  número  de  bits  que  o  computador  lê  ou  grava  em  uma  única  operação  (tanto   dados  como  instruções)   –  tamanho  da  palavra  de  memória  pode  variar  de  computador  para   computador:  32  ou  64  bits   21   22   Representação  dos  dados   Representação  de  Dados   •  Códigos  de  representação  de  dados   •  Kilobyte  (Kb):  1024  (210)  bytes.     –  Caractere  é  a  unidade  básica  de  armazenamento  na  maioria  dos  sistemas   –  Armazenamento  de  caracteres  (letras,  números  e  outros  símbolos)  é  feito  através  de  um   –  Capacidade  de  memória  dos  computadores  pessoais                         esquema  de  codificação     •  certos  conjuntos  de  bits  representam  certos  caracteres   mais  anWgos.   –  Bastante  uWlizados:  ASCII,  EBCDIC,  UNICODE   •  Megabyte  (Mb):  aproximadamente,  um  milhão  (220)  de  bytes.   •  ASCII  (American  Standard  Code  for  Informa6on  Interchange)   –  Código  uWlizado  pela  maioria  dos  microcomputadores   –  Memória  de  computadores  pessoais.     –  DisposiWvos  de  armazenamento  portáteis  (disquetes,  CD-­‐ ROMs).   •  Gigabyte  (Gb):  aproximadamente,  um  bilhão  (230)  de  bytes.   •  Unidades  de  Medida   –  DisposiWvos  de  armazenamento  (discos  rígidos).   –  QuanWficar  a  memória  principal  do  equipamento   –  Indicar  a  capacidade  de  armazenamento  (disco,  CD-­‐ROM,  fita,  etc.)     –  Memória  de  mainframes  e  servidores  de  rede.   •  Terabyte  (Tb):  aproximadamente,  um  trilhão  (240)  de  bytes.   –  DisposiWvos  de  armazenamento  para  sistemas  muito   grandes.   23   24   4
  • 5. 3/31/11 Representação  de  Dados     Níveis  de  memória   •  1  página  txt  ASCII        :              2  Kbytes   •  Diferentes  velocidades  de  acesso   •  1  página  Word                    :          28  Kbytes   •  100  páginas  Word            :      300  Kbytes   •  1  disquete                                  :      1,44  Mbytes   •  Dicionário  completo      :            24  Mbytes   •  1  CD                                                  :        700  Mbytes   •  1  DVD                                              :                4  Gbytes   •  1  HD                                                  :            80  Gbytes   25   26   Níveis  de  memória   Soiware     •  Memória  Cache   •  Soiware  básico   –  Alyssima  velocidade  de  acesso     –  Conjunto  de  soiwares  que  permite  ao  usuário   –  Acelerar  o  processo  de  busca  de  informações  na  memória   criar,  depurar  e  modificar    as  aplicações  criadas   –  Localizada  logicamente  entre  o  processador  e  a  memória  principal     –  Pode  tanto  integrar  o  microprocessador  (cache  interna),  como  consisWr  de  chips   por  ele   adicionais  instalados  na  placa-­‐mãe  do  micro  (cache  externa)   •  Sistema  operacional,  linguagens  de  programação,  compiladores,   –  Tamanho  Wpicamente  pequeno:  cache  interna:  até  512K;  cache  externa:  até   uWlitários   2Mb   •  Memórias    Auxiliar    e  Auxiliar-­‐Backup   •  Soiware  aplicaWvo   –  Discos,  CDs  e  fitas   –  Aplicações  criadas  para  solucionar  problemas   específicos   •  Exemplos:  web  browser,  mp3  player,  video  player,  contabilidade,   folha  de  pagamento,  correção  de  provas     27   28   Soiware  Básico  –  Sistema  Operacional   Soiware  Básico  –  Sistema  Operacional   SISTEMA  OPERACIONAL   •  Conjunto  de  programas  supervisores  que  gerenciam  os   recursos  (hw  e  sw)  de  um  sistema  de  computação   •  Funções:   –  Gerência  de  memória   –  Gerência  de  processador   –  Gerência  de  arquivos   –  Gerência  de  disposiWvos  de  E/S  (periféricos)   •  Tarefas  específicas:     S.O. –  Ler  a  tecla  pressionada  no  teclado       –  Transferir  um  arquivo  do  disquete  para  a  memória  principal,  etc   •  Ex.:  MS-­‐DOS,  Windows,  Linux,  MacOS,  Unix,  ...   29   30   5
  • 6. 3/31/11 Soiware  Básico  –  Ling.  de  Programação   Soiware  Básico  –  Ling.  de  Programação   LINGUAGENS  DE  PROGRAMAÇÃO   VISÃO  GLOBAL   1a  geração  -­‐  Linguagens  de  máquina   •  Conjunto  de  convenções  e  regras  que   –  0010  0001  0110  1100   especificam  como  instruir  o  computador  a   2a  geração  -­‐  Linguagens  de  montagem  (assembly)   –  ADD  R1,  TOTAL   BAIXO NÍVEL executar  determinadas  tarefas   3a  geração  -­‐  Linguagens  orientadas  ao  usuário   ALTO NÍVEL •  Serve  como  meio  de  comunicação  entre  o   –  LET  SOMA  =  VAR1  +  TOTAL   –  IF  SOMA  >  3  THEN  EXIT   indivíduo  que  deseja  resolver  um  determinado   4a  geração  -­‐  Linguagens  orientadas  à  aplicação   problema  e  o  computador     –  LIST  ALL  NOME,  ENDERECO,  TELEFONE   –  FOR  CIDADE  =  “PORTO  ALEGRE”   5a  geração  -­‐  Linguagens  de  conhecimento  (IA)   31   32   1a  geração  -­‐  Linguagens  de  Máquina   2a  geração  -­‐  Linguagens  de  Montagem   •  Linguagem  de  máquina  escrita  em  notação  binária   •  Linguagem  de  baixo  nível   –  Exemplo:   •  Minimizar  as  dificuldades  da  programação  em  notação  binária        0010  0001  0110  1100   –  Assemblers  (montadores)   •  Usam  códigos  mnemônicos  com  letras  e  números  para   Endereço da posição de memória representar  os  comandos,  por  exemplo:   que contém o dado –  LOAD  B:  carrega  no  registrador  o  dado  que  está  no  endereço  B   Endereço do registrador –  ADD  A:  adiciona  ao  registrador  o  dado  que  está  no  endereço  A   –  ADD  R1,  TOTAL:  R1  representa  o  registrador  1  e  TOTAL  é  o  nome   Código da operação: Adição atribuído  ao  endereço  de  memória  108   –  soma  do  dados  armazenado  no  registrador  0001  com  o  dado   •  Processamento  requer  tradução  para  linguagem  de  máquina   armazenado  na  posição  de  memória  0110  1100   •  Programa  =  seqüência  de  zeros  e  uns   –  Programação  trabalhosa,  cansaWva  e  fortemente  sujeita  a  erros   33   34   3a  geração  –  Lings.  Orientadas  ao  Usuário   4a  geração  –  Lings.  Orientadas  à  Aplicação   •  Linguagem  genérica  de  alto  nível   •  Usam  comandos  com  nomes  geralmente   •  Linguagem  orientada  à  aplicação     auto-­‐explanaWvos     •  Gera  código  a  parWr  de  expressões  de  alto  nível   –  Exemplo:  read,  write,  if,  open…   Exemplo em Pascal •  Facilita  o  uso  da  linguagem   program Exemplo; •  Principais  linguagens   var a,b: integer; •  Exemplo:  DBASE,  SQL   –  Fortran  (1954)   begin –  Cobol  (1959)   write ('Digite um número para A'); Exemplo em DBASE –  Basic  (1965)   readln (a); List All Nome, Endereco, Telefone write ('Digite o número para B'); –  Pascal  (1975)   readln (b); For Cidade = “Porto Alegre” –  C  (1980)   if (a > b) then writeln ('A é maior que B') Lê todos os registros que compõem um else arquivo e, para cada lido, seleciona writeln ('B é maior que A'); aqueles cuja cidade = “Porto Alegre”. end. 35   36   6
  • 7. 3/31/11 5a  geração  –  Linguagens  de  Conhecimento   Linguagens  de  programação   •  Mecanismos  da  área  de  Inteligência  ArWficial     C:  uma  linguagem  de  programação  de  alto   –  São  criadas  bases  de  conhecimentos,  obWdas  a  parWr  de  especialistas,   nível   e  as  linguagens  fazem  deduções,  inferências  e  Wram  conclusões   baseadas  nas  bases  de  conhecimento.     Outros  exemplos:  Java,  Pascal,  C++   •  Exemplos:  Prolog,  Lisp,  Art     Vantagens:  simplifica  muuito  o  trabalho  do   programador;  código  mais  curto,  mais  simples  de   ler;  independente  de  plataforma  (HW,  SO)   PS: no site http://www2.latech.edu/~acm/HelloWorld.shtml você pode encontrar o programa ‘Hello World’ implementado em dezenas de linguagens   Linguagens  de  baixo  nível:     Linguagem  de  máquina,  de  montagem  (assemply)   37   Linguagens  de  programação   Tradutores  de  linguagens  de   programação       A  grande  maioria  de  programas  são  escritos   em  linguagens  de  alto  nível     Mas  computadores  só  podem  executar   programas  escritos  em  linguagem  de  baixo   nível!     Programas  escritos  em  linguagem  de  alto  nível   UCP deve  ser  traduzido  por  um:     Interpretador  ou     Compilador   40   Tradutores  de  linguagens  de   Tradutores  de  linguagens  de   programação   programação   •  Compilador   •  Tradutor   –  Traduz  um  programa  escrito    em  linguagem  de  alto  nível   –  Produz  um  programa  em  linguagem  objeto  (linguagem  executável,  ou  seja,   –  Recebe  como  entrada  um  programa  escrito  em  uma  linguagem  de   linguagem  de  máquina)   programação  (dita  linguagem  fonte)     •  Pode  ser  executado  uma  ou  mais  vezes  no  futuro   –  Produz    como  resultado  as  instruções  deste  programa  traduzidas  para   •  Enquanto  o  código  fonte  do  programa  não  for  alterado,  ele  poderá  ser   linguagem  de  máquina  (i.e.  linguagem  objeto)   executado  sucessivas  vezes,  sem  necessidade  de  nova  compilação   •  Se  a  linguagem  do  programa  fonte  é  uma  linguagem  de   •  Interpretador     –  Traduz  um  programa  escrito  em  linguagem  fonte,  instrução  a  instrução,   montagem  (Assembly)   enquanto  ele  vai  sendo  executado   –  Tradutor  é  chamado  de  Montador  (Assembler)   –  Cada  vez  que  um  programa  interpretado  Wver  que  ser  re-­‐executado,  todo  o   processo  de    interpretação  deverá  ser  refeito,  independentemente  de  ter   •  Tradutores  que  traduzem  os  programas  escritos  em  linguagem   havido  ou  não  modificações  no  código  fonte  do  programa  desde  sua  úlWma   de  alto  nível     execução   –  Compiladores  e  os  interpretadores   •  Programas  compilados  tendem  a  ser  executados  mais  rapidamente  que   seus  correspondentes  interpretados   41   42   7
  • 8. 3/31/11 Tradutores  de  linguagens  de   Linguagens  de  programação   programação     Exemplos  de  linguagens  interpretadas:     MATLAB,  Javascript,  Python,  Perl,  PHP  (scripts)     Exemplos  de  linguagens  compiladas:     Pascal,  C,  C++,  C#,  Java  (JVM  bytecode)   43   Próxima  aula:  Lógica  de   Programação   8