SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
Cristiano	
  Pires	
  Martins

           EXECUÇÃO	
  DE	
  PROGRAMAS



segunda-feira, 30 de maio de 2011          1
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
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
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
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
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
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
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	
  programa




segunda-feira, 30 de maio de 2011                                                                              8
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
Fluxograma	
  de	
  Compilação




segunda-feira, 30 de maio de 2011           10
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
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
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
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
Ligação	
  ou	
  Linkedição




segunda-feira, 30 de maio de 2011        15
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

Contenu connexe

Tendances

Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
Adriano Teixeira de Souza
 
Aula 2 programas e linguagens de programação
Aula 2   programas e linguagens de programaçãoAula 2   programas e linguagens de programação
Aula 2 programas e linguagens de programação
LCCIMETRO
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Adriano Teixeira de Souza
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
Ray Fran Pires
 
Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadores
LCCIMETRO
 
Material iae aula 2
Material iae   aula 2Material iae   aula 2
Material iae aula 2
negasousa
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
12anogolega
 

Tendances (20)

Software
SoftwareSoftware
Software
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
 
Gerador de Código-Objeto - Compiladores
Gerador de Código-Objeto - CompiladoresGerador de Código-Objeto - Compiladores
Gerador de Código-Objeto - Compiladores
 
Programação de Microprocessadores
Programação de MicroprocessadoresProgramação de Microprocessadores
Programação de Microprocessadores
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
 
Aula 2 programas e linguagens de programação
Aula 2   programas e linguagens de programaçãoAula 2   programas e linguagens de programação
Aula 2 programas e linguagens de programação
 
Linguagem assembly
Linguagem assemblyLinguagem assembly
Linguagem assembly
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadores
 
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
 
Material iae aula 2
Material iae   aula 2Material iae   aula 2
Material iae aula 2
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativo
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
 
Manual robotec
Manual robotecManual robotec
Manual robotec
 
Apontamentos teóricos de Fundamentos de Programação (para 1º Teste)
Apontamentos teóricos de Fundamentos de Programação (para 1º Teste)Apontamentos teóricos de Fundamentos de Programação (para 1º Teste)
Apontamentos teóricos de Fundamentos de Programação (para 1º Teste)
 

En vedette

Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2
Cristiano Pires Martins
 
Aula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacaoAula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacao
Cristiano Pires Martins
 

En vedette (20)

Aula 01-introducao-ao-so
Aula 01-introducao-ao-soAula 01-introducao-ao-so
Aula 01-introducao-ao-so
 
Aula 05-entrada e-saida
Aula 05-entrada e-saidaAula 05-entrada e-saida
Aula 05-entrada e-saida
 
Aula 01-oac-introducao-a-oac
Aula 01-oac-introducao-a-oacAula 01-oac-introducao-a-oac
Aula 01-oac-introducao-a-oac
 
Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2
 
Aula 03-deadlock
Aula 03-deadlockAula 03-deadlock
Aula 03-deadlock
 
Aula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoriaAula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoria
 
Aula 10-oac-arquitetura-risc
Aula 10-oac-arquitetura-riscAula 10-oac-arquitetura-risc
Aula 10-oac-arquitetura-risc
 
Aula 06 textos na web
Aula 06   textos na webAula 06   textos na web
Aula 06 textos na web
 
Aula 07 - lista linear
Aula 07 - lista linearAula 07 - lista linear
Aula 07 - lista linear
 
Aula 06-sistemas de-arquivo
Aula 06-sistemas de-arquivoAula 06-sistemas de-arquivo
Aula 06-sistemas de-arquivo
 
Aula 07 acessibilidade
Aula 07  acessibilidadeAula 07  acessibilidade
Aula 07 acessibilidade
 
Java script aula 07 - eventos
Java script   aula 07 - eventosJava script   aula 07 - eventos
Java script aula 07 - eventos
 
Java script aula 06 - dom
Java script   aula 06 - domJava script   aula 06 - dom
Java script aula 06 - dom
 
Java script aula 10 - angularjs
Java script   aula 10 - angularjsJava script   aula 10 - angularjs
Java script aula 10 - angularjs
 
Java script aula 05 - funções
Java script   aula 05 - funçõesJava script   aula 05 - funções
Java script aula 05 - funções
 
Aula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacaoAula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacao
 
Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
OAC Aula 09 - Entrada e Saída
OAC Aula 09 - Entrada e SaídaOAC Aula 09 - Entrada e Saída
OAC Aula 09 - Entrada e Saída
 
Java script aula 04 - objeto array
Java script   aula 04 - objeto arrayJava script   aula 04 - objeto array
Java script aula 04 - objeto array
 
Java script aula 08 - formulários
Java script   aula 08 - formuláriosJava script   aula 08 - formulários
Java script aula 08 - formulários
 

Similaire à Aula 08-oac-execucao-de-programas

Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
essa
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
Wagner Zaparoli
 
53392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-200953392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-2009
starley lobo
 

Similaire à Aula 08-oac-execucao-de-programas (20)

paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
 
Curso Gratuito de Shell Script
Curso Gratuito de Shell ScriptCurso Gratuito de Shell Script
Curso Gratuito de Shell Script
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Isc aula 7
Isc   aula 7Isc   aula 7
Isc aula 7
 
Aula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdfAula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdf
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Pho Aula 02
Pho Aula 02Pho Aula 02
Pho Aula 02
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
 
The Language VolcanX - ABMSL
The Language VolcanX - ABMSLThe Language VolcanX - ABMSL
The Language VolcanX - ABMSL
 
53392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-200953392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-2009
 
Code Masters
Code MastersCode Masters
Code Masters
 
Apostila c
Apostila cApostila c
Apostila c
 
Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
Processo de Desenvolvimento de Software - Linguagens Compiladas x InterpretadasProcesso de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Engenharia Reversa no Linux
Engenharia Reversa no LinuxEngenharia Reversa no Linux
Engenharia Reversa no Linux
 
Introdução a Exploração de Software
Introdução a Exploração de SoftwareIntrodução a Exploração de Software
Introdução a Exploração de Software
 
Compiladores
CompiladoresCompiladores
Compiladores
 

Plus de Cristiano Pires Martins (14)

Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
Java script - funções
Java script - funçõesJava script - funções
Java script - funções
 
Java script aula 09 - JQuery
Java script   aula 09 - JQueryJava script   aula 09 - JQuery
Java script aula 09 - JQuery
 
Aula 05 layout e composição do site
Aula 05   layout e composição do siteAula 05   layout e composição do site
Aula 05 layout e composição do site
 
Aula 04 layout e composição do site
Aula 04   layout e composição do siteAula 04   layout e composição do site
Aula 04 layout e composição do site
 
Aula 02 semiótica e cores
Aula 02   semiótica e coresAula 02   semiótica e cores
Aula 02 semiótica e cores
 
Aula 01 introdução
Aula 01   introduçãoAula 01   introdução
Aula 01 introdução
 
Aula 03 esquema de cores
Aula 03   esquema de coresAula 03   esquema de cores
Aula 03 esquema de cores
 
WDI - aula 07 - css com html
WDI - aula 07 - css com htmlWDI - aula 07 - css com html
WDI - aula 07 - css com html
 
Java script aula 07 - j-query
Java script   aula 07 - j-queryJava script   aula 07 - j-query
Java script aula 07 - j-query
 
Aula 07-oac-processadores
Aula 07-oac-processadoresAula 07-oac-processadores
Aula 07-oac-processadores
 
Aula 06-oac-memoria-principal
Aula 06-oac-memoria-principalAula 06-oac-memoria-principal
Aula 06-oac-memoria-principal
 
Aula 05-oac-conceitos-de-logica-digital
Aula 05-oac-conceitos-de-logica-digitalAula 05-oac-conceitos-de-logica-digital
Aula 05-oac-conceitos-de-logica-digital
 
Aula 02-oac-historia-da-computacao-part1
Aula 02-oac-historia-da-computacao-part1Aula 02-oac-historia-da-computacao-part1
Aula 02-oac-historia-da-computacao-part1
 

Aula 08-oac-execucao-de-programas

  • 1. Cristiano  Pires  Martins EXECUÇÃO  DE  PROGRAMAS segunda-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  programa segunda-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
  • 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
  • 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