Your SlideShare is downloading. ×
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Aula 08-oac-execucao-de-programas

604

Published on

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

No Downloads
Views
Total Views
604
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
39
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Cristiano  Pires  Martins EXECUÇÃO  DE  PROGRAMASsegunda-feira, 30 de maio de 2011 1
  • 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. 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. 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. 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. 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. 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. 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. 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. Fluxograma  de  Compilaçãosegunda-feira, 30 de maio de 2011 10
  • 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. 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. 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. 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. Ligação  ou  Linkediçãosegunda-feira, 30 de maio de 2011 15
  • 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

×