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

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