SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
Prof. Adriano Teixeira de Souza
   O escopo de uma variável é a faixa de
    comandos em que a mesma é visível

    ◦ Uma variável é visível em um comando se puder ser
      referenciada naquele comando

    ◦ Uma variável é local a uma unidade de programa se
      foi declarada nela

    ◦ Uma variável é não-local a uma unidade de
      programa se for visível mas não tiver sido declarada
      nela


                            Prof. Adriano Teixeira de Souza
   As regras de escopo de uma linguagem
    determinam:

    ◦ como uma ocorrência de um nome é associada a
      uma variável

    ◦ como referências a variáveis declaradas fora da
      unidade em execução são associadas a suas
      declarações

   Escopo pode ser:
    ◦ estático
    ◦ dinâmico


                            Prof. Adriano Teixeira de Souza
   A vinculação do tipo de dados de uma
    variável pode ser especificada de forma
    estática ou dinâmica.

    ◦ Vinculação estática: quando a vinculação ocorrer
      antes do tempo de execução e permanecer
      inalterada durante todo o tempo de execução do
      programa.

    ◦ Vinculação dinâmica: quando a vinculação ocorre
      durante a execução ou é alterada durante a
      execução do programa.


                            Prof. Adriano Teixeira de Souza
   Em LPs com escopo estático (ou léxico), o
    escopo é determinado através da estrutura
    textual do programa.

   Em LPs com escopo dinâmico, o escopo é
    determinado através da linha de execução do
    programa, sendo dependente portanto da
    ordem de execução das rotinas.




                        Prof. Adriano Teixeira de Souza
   Usando escopo estático, a vinculação de um
    nome no ambiente é determinada pelo seguinte
    algoritmo:

    ◦ i) Se o nome foi declarado no bloco em execução, aquela
      vinculação será usada. Caso contrário,

    ◦ ii) Se o nome não foi declarado no bloco em execução,
      ele deve ser buscado nos blocos que o envolvem, do
      imediatamente envolvente até o mais distante. Se todos
      os blocos envolventes tiverem sido verificados e a
      declaração não encontrada,

    ◦ iii) Se o nome está no ambiente global, aquela
      vinculação será usada, caso contrário não há vinculação
      para aquele nome no ambiente.


                              Prof. Adriano Teixeira de Souza
   Pode-se informalmente dizer que o trecho de
    código onde um nome é visível é o bloco
    onde foi declarado e todos os blocos
    aninhados dentro dele, e por este motivo
    muitas vezes usa-se “escopo léxico” como
    sinônimo de “escopo estático”.




                        Prof. Adriano Teixeira de Souza
   Usando escopo dinâmico, a vinculação válida
    para um nome é a criada mais recentemente
    durante a execução do programa.

   Baseado em sequências de chamadas de
    unidades de programas, não no leiaute
    textual.

   Referências a variáveis estão conectadas a
    declarações através da busca invertida
    através da sequência de chamadas de
    subprogramas.

                         Prof. Adriano Teixeira de Souza
x: integer
procedure print_x()
begin
    print(x);
end                      Se o escopo for dinâmico
procedure p2
    x: integer;
                          o programa imprime 4
begin
    x= 4;                Se o escopo for estático, o
    print_x();
end
                          programa imprime 3
begin
    x = 3;
    p2();
end


                      Prof. Adriano Teixeira de Souza

Mais conteúdo relacionado

Mais procurados

Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completothomasdacosta
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosMauro Pereira
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memóriaPAULO Moreira
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosHélio Jovo
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaArthur Emanuel
 
Gerência de Processos: Deadlocks
Gerência de Processos: DeadlocksGerência de Processos: Deadlocks
Gerência de Processos: DeadlocksAlexandre Duarte
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no WindowsFee Kosta
 
Complexidade do Algoritmo: Caminho mínimo Floyd Warshall
Complexidade do Algoritmo: Caminho mínimo Floyd WarshallComplexidade do Algoritmo: Caminho mínimo Floyd Warshall
Complexidade do Algoritmo: Caminho mínimo Floyd WarshallLucas Vinícius
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisLeandro Júnior
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Leinylson Fontinele
 
Linux - Sistema Operacional
Linux - Sistema Operacional Linux - Sistema Operacional
Linux - Sistema Operacional Carine Furlanetto
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas OperativosPmpc10
 

Mais procurados (20)

Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
 
Caso De Uso
Caso De UsoCaso De Uso
Caso De Uso
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memória
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidos
 
Aula gerenciamento de arquivos e pastas
Aula   gerenciamento de arquivos e pastasAula   gerenciamento de arquivos e pastas
Aula gerenciamento de arquivos e pastas
 
informatica-basica-1.4.ppt
informatica-basica-1.4.pptinformatica-basica-1.4.ppt
informatica-basica-1.4.ppt
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
 
Gerência de Processos: Deadlocks
Gerência de Processos: DeadlocksGerência de Processos: Deadlocks
Gerência de Processos: Deadlocks
 
UML - Diagrama de Pacotes
UML - Diagrama de PacotesUML - Diagrama de Pacotes
UML - Diagrama de Pacotes
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no Windows
 
Complexidade do Algoritmo: Caminho mínimo Floyd Warshall
Complexidade do Algoritmo: Caminho mínimo Floyd WarshallComplexidade do Algoritmo: Caminho mínimo Floyd Warshall
Complexidade do Algoritmo: Caminho mínimo Floyd Warshall
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas Operacionais
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 
Linux - Sistema Operacional
Linux - Sistema Operacional Linux - Sistema Operacional
Linux - Sistema Operacional
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Linux
LinuxLinux
Linux
 
Aula 06-sistemas de-arquivo
Aula 06-sistemas de-arquivoAula 06-sistemas de-arquivo
Aula 06-sistemas de-arquivo
 

Destaque

Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoAdriano Teixeira de Souza
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoSidney Roberto
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativoTony Alexander Hild
 
Plp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoPlp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoJosé Meirelles
 
Programação Concorrente - Objetos e Concorrência
Programação Concorrente - Objetos e ConcorrênciaProgramação Concorrente - Objetos e Concorrência
Programação Concorrente - Objetos e ConcorrênciaFabio Moura Pereira
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Ismar Silveira
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Ismar Silveira
 
Lista funcões e recursividade
Lista funcões e recursividadeLista funcões e recursividade
Lista funcões e recursividadeAnielli Lemes
 
Paradigma Educacional Emergente
Paradigma Educacional EmergenteParadigma Educacional Emergente
Paradigma Educacional EmergenteNorma Almeida
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Valmon Gaudencio
 

Destaque (16)

Amarração e escopo
Amarração e escopoAmarração e escopo
Amarração e escopo
 
Unidade04
Unidade04Unidade04
Unidade04
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Heap
HeapHeap
Heap
 
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de Programação
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativo
 
Plp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoPlp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliação
 
Programação Concorrente - Objetos e Concorrência
Programação Concorrente - Objetos e ConcorrênciaProgramação Concorrente - Objetos e Concorrência
Programação Concorrente - Objetos e Concorrência
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 
Lista funcões e recursividade
Lista funcões e recursividadeLista funcões e recursividade
Lista funcões e recursividade
 
Paradigma Educacional Emergente
Paradigma Educacional EmergenteParadigma Educacional Emergente
Paradigma Educacional Emergente
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
Paradigmas de Linguagem
Paradigmas de LinguagemParadigmas de Linguagem
Paradigmas de Linguagem
 
Modelo de von neumann
Modelo de von neumannModelo de von neumann
Modelo de von neumann
 

Semelhante a Paradigmas de Linguagens de Programação - Escopo estático/dinâmico

Resumo vinculacao aula lp1 10 a
Resumo vinculacao   aula lp1 10 aResumo vinculacao   aula lp1 10 a
Resumo vinculacao aula lp1 10 aPedro Augusto
 
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de VariaveisAlgoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de VariaveisRodrigo Kiyoshi Saito
 
Apresentação final
Apresentação finalApresentação final
Apresentação finalvalmon
 
ApresentacaoProjetoManutencaoEvolucaoSoftware.ppt
ApresentacaoProjetoManutencaoEvolucaoSoftware.pptApresentacaoProjetoManutencaoEvolucaoSoftware.ppt
ApresentacaoProjetoManutencaoEvolucaoSoftware.pptGiacomelliFerrarezzi
 
Introdução a Linguagem de Programação
Introdução a Linguagem de ProgramaçãoIntrodução a Linguagem de Programação
Introdução a Linguagem de ProgramaçãoJessica Ribeiro
 
Introdução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHPIntrodução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHPLeonardo Soares
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Sérgio Souza Costa
 
Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a AspectosRegina Macedo
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleAdriano Teixeira de Souza
 
Modulo3_0_Apontamentos_1.pdf
Modulo3_0_Apontamentos_1.pdfModulo3_0_Apontamentos_1.pdf
Modulo3_0_Apontamentos_1.pdfssuser234cf7
 
Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2Flávio Lisboa
 

Semelhante a Paradigmas de Linguagens de Programação - Escopo estático/dinâmico (14)

Resumo vinculacao aula lp1 10 a
Resumo vinculacao   aula lp1 10 aResumo vinculacao   aula lp1 10 a
Resumo vinculacao aula lp1 10 a
 
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de VariaveisAlgoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
ApresentacaoProjetoManutencaoEvolucaoSoftware.ppt
ApresentacaoProjetoManutencaoEvolucaoSoftware.pptApresentacaoProjetoManutencaoEvolucaoSoftware.ppt
ApresentacaoProjetoManutencaoEvolucaoSoftware.ppt
 
Introdução a Linguagem de Programação
Introdução a Linguagem de ProgramaçãoIntrodução a Linguagem de Programação
Introdução a Linguagem de Programação
 
Introdução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHPIntrodução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHP
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++
 
Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a Aspectos
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de Controle
 
Padrões de Projeto (GoF)
Padrões de Projeto (GoF)Padrões de Projeto (GoF)
Padrões de Projeto (GoF)
 
Modulo3_0_Apontamentos_1.pdf
Modulo3_0_Apontamentos_1.pdfModulo3_0_Apontamentos_1.pdf
Modulo3_0_Apontamentos_1.pdf
 
Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2
 
Artigo Transp Sw
Artigo Transp SwArtigo Transp Sw
Artigo Transp Sw
 

Mais de Adriano Teixeira de Souza

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Adriano Teixeira de Souza
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasAdriano Teixeira de Souza
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Adriano Teixeira de Souza
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaAdriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Adriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Adriano Teixeira de Souza
 

Mais de Adriano Teixeira de Souza (20)

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
 

Paradigmas de Linguagens de Programação - Escopo estático/dinâmico

  • 2. O escopo de uma variável é a faixa de comandos em que a mesma é visível ◦ Uma variável é visível em um comando se puder ser referenciada naquele comando ◦ Uma variável é local a uma unidade de programa se foi declarada nela ◦ Uma variável é não-local a uma unidade de programa se for visível mas não tiver sido declarada nela Prof. Adriano Teixeira de Souza
  • 3. As regras de escopo de uma linguagem determinam: ◦ como uma ocorrência de um nome é associada a uma variável ◦ como referências a variáveis declaradas fora da unidade em execução são associadas a suas declarações  Escopo pode ser: ◦ estático ◦ dinâmico Prof. Adriano Teixeira de Souza
  • 4. A vinculação do tipo de dados de uma variável pode ser especificada de forma estática ou dinâmica. ◦ Vinculação estática: quando a vinculação ocorrer antes do tempo de execução e permanecer inalterada durante todo o tempo de execução do programa. ◦ Vinculação dinâmica: quando a vinculação ocorre durante a execução ou é alterada durante a execução do programa. Prof. Adriano Teixeira de Souza
  • 5. Em LPs com escopo estático (ou léxico), o escopo é determinado através da estrutura textual do programa.  Em LPs com escopo dinâmico, o escopo é determinado através da linha de execução do programa, sendo dependente portanto da ordem de execução das rotinas. Prof. Adriano Teixeira de Souza
  • 6. Usando escopo estático, a vinculação de um nome no ambiente é determinada pelo seguinte algoritmo: ◦ i) Se o nome foi declarado no bloco em execução, aquela vinculação será usada. Caso contrário, ◦ ii) Se o nome não foi declarado no bloco em execução, ele deve ser buscado nos blocos que o envolvem, do imediatamente envolvente até o mais distante. Se todos os blocos envolventes tiverem sido verificados e a declaração não encontrada, ◦ iii) Se o nome está no ambiente global, aquela vinculação será usada, caso contrário não há vinculação para aquele nome no ambiente. Prof. Adriano Teixeira de Souza
  • 7. Pode-se informalmente dizer que o trecho de código onde um nome é visível é o bloco onde foi declarado e todos os blocos aninhados dentro dele, e por este motivo muitas vezes usa-se “escopo léxico” como sinônimo de “escopo estático”. Prof. Adriano Teixeira de Souza
  • 8. Usando escopo dinâmico, a vinculação válida para um nome é a criada mais recentemente durante a execução do programa.  Baseado em sequências de chamadas de unidades de programas, não no leiaute textual.  Referências a variáveis estão conectadas a declarações através da busca invertida através da sequência de chamadas de subprogramas. Prof. Adriano Teixeira de Souza
  • 9. x: integer procedure print_x() begin print(x); end  Se o escopo for dinâmico procedure p2 x: integer; o programa imprime 4 begin x= 4;  Se o escopo for estático, o print_x(); end programa imprime 3 begin x = 3; p2(); end Prof. Adriano Teixeira de Souza