Aula 08-oac-execucao-de-programas

775 views
719 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
775
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
42
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Aula 08-oac-execucao-de-programas

  1. 1. Cristiano  Pires  Martins EXECUÇÃO  DE  PROGRAMASsegunda-feira, 30 de maio de 2011 1
  2. 2. Linguagem  de  Programação  (LP) § Linguagem  criada  para  instruir  um   computador  a  realizar  suas  tarefas; § Programa  completo  escrito  em  LP:  código; § Codificar  algoritmo:  converter  para  instrução   específica  de  uma  LP; § Tipo  mais  primitivo  de  LP:  linguagem  de   máquina;segunda-feira, 30 de maio de 2011 2
  3. 3. Linguagem  de  máquina § Para  criar  um  código  é  necessário:   ú Conhecer    todas  as  instruções  (códigos  de   operação  e  formato); ú Registradores; ú Endereços  das  células  de  memória  de  instruções  e   de  dados;segunda-feira, 30 de maio de 2011 3
  4. 4. Linguagem  de  Montagem § Para  tentar  minimizar  a  dificuldade  de   entendimento  da  Ling.  Máquina; § Para  usar  precisa  ter  um  conversor  de   símbolos  alfabéticos  para  código  de  máquina; § O  processo  de  conversão  (montagem):   montador  (assembler); § Montador  lê  cada  instrução  em  ling.  de   montagem  e  cria  uma  instrução  equivalente   em  ling.  de  máquina.segunda-feira, 30 de maio de 2011 4
  5. 5. Linguagens  de  Alto  Nível § Nível  afastado  da  máquina; § Não  se  preocupa  com  o  tipo  de  CPU  ou  de   memória; § Linguagem  orientada  ao  problema,  permite  que  o   programador  especifique    de  ações  com  menos   instruções. Exemplos: FORTRAN; PASCAL; ALGOL; C; COBOL; ADA; LISP; DELPHI BASIC; JAVA.segunda-feira, 30 de maio de 2011 5
  6. 6. Montagem § Tradução  mais  rápida  e  simples  que  existe; § Traduz  de  linguagem  de  montagem  para   linguagem  de  binária  (máquina),  executável;segunda-feira, 30 de maio de 2011 6
  7. 7. Funções  de  um  Montador § Substituir  códigos  de  operações  por  valores   numéricos; § Substituir  nomes  simbólicos  de  endereços  por   valores  numéricos  dos  endereços; § Reservar  espaço  de  memória  para  dados  e   instruções; § Converter  constantes  em  binário; § Examinar  a  correção  de  cada  instrução.segunda-feira, 30 de maio de 2011 7
  8. 8. Exemplo  de  um  programa  em   linguagem  de  montagem § NOTA:  ;  ‚  usado  para  fazer  comentários  em  programas  assembly   § .MODEL  SMALL  ;modelo  de  memória   § .STACK  ;espaço  de  memória  para  instruções  do  programa  na  pilha   § .CODE  ;as  linhas  seguintes  são  instruções  do  programa  mov  ah, 01h  ;move  o  valor  01h  para  o  registrador  ah   § mov  cx,07h  ;move  o  valor  07h  para  o  registrador  cx   § int  10h  ;interrupção  10h   § mov  ah,4ch  ;move  o  valor  4ch  para  o  registrador  ah   § int  21h  ;interrupção  21h   § END  ;finaliza  o  código  do  programasegunda-feira, 30 de maio de 2011 8
  9. 9. Compilação § Processo  de  análise  de  um  programa  escrito   em  linguagem  de  alto  nível  (código-­‐fonte)    e   sua  conversão  em  um  programa  equivalente   em  linguagem  binária  de  máquina  (programa-­‐ objeto); § Usa-­‐se  o  compilador; § É  semelhante  ao  de  montagem,  porém  mais   complexo  e  demorado;segunda-feira, 30 de maio de 2011 9
  10. 10. Fluxograma  de  Compilaçãosegunda-feira, 30 de maio de 2011 10
  11. 11. Processo § 1º  análise  do  código-­‐fonte  (pelo  front-­‐end); ú Análise  Léxica: ú Análise  Sintática: ú Análise  Semântica: § 2º  Gera-­‐se  um  código  intermediário  de   constrói-­‐se  vária  tabelas  (ex.  tabela  de   símbolos); § 3º  Aloca  memória  para  variáveis,  atribuição   dos  registradores  e  geração  do  código-­‐objeto   final.segunda-feira, 30 de maio de 2011 11
  12. 12. Análise  Léxica § Decompõe  o  programa-­‐fonte  em:  comandos,   operadores,  variáveis  etc. § Verifica  de  acordo  com  as  regras  da   linguagem; § Gera  mensagem  de  erro  se  encontrar  erro; § Ex.:  Sinal  de  atribuição  em  pascal  “:=”  e  não  só   “=”.segunda-feira, 30 de maio de 2011 12
  13. 13. Análise  Sintática § Criação  da  estrutura  de  cada  comando; § A  partir  de  cada  elemento  obtido  da  análise   léxica,  monta  uma  estrutura  apropriada  de   acordo  com  as  regras  gramaticais  da   linguagem;segunda-feira, 30 de maio de 2011 13
  14. 14. Análise  Semântica § Verifica  as  regras  semânticas  estáticas  da   linguagem; § São  a  necessidade  de  integridade  de  um  tipo   de  dado  em  uma  expressão  ;segunda-feira, 30 de maio de 2011 14
  15. 15. Ligação  ou  Linkediçãosegunda-feira, 30 de maio de 2011 15
  16. 16. Interpretação § Realiza  a  compilação,  ligação  e  execução   comando  a  comando,  do  programa-­‐fonte; § O  programa-­‐fonte  é  diretamente  executado   (interpretado)  por  um  outro  programa  (o   interpretador)  e  produz  o  resultado; § Cada  comando  é  lido  pelo  interpretador,   convertido  em  código  executável  e   imediatamente  executado,  antes  que  o   próximo  comando  seja  lido.segunda-feira, 30 de maio de 2011 16

×