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

Biblioteca de interface grafica
Biblioteca de interface graficaBiblioteca de interface grafica
Biblioteca de interface graficaLeonardo Lima
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de ProgramaçãoRicardo Terra
 
Proteção e segurança de sistemas operacionais
Proteção e segurança de sistemas operacionaisProteção e segurança de sistemas operacionais
Proteção e segurança de sistemas operacionaiscleber_opo
 
Segurança e protecção dos sistemas operativos
Segurança e protecção dos sistemas operativosSegurança e protecção dos sistemas operativos
Segurança e protecção dos sistemas operativosRodrigovieira99
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Leinylson Fontinele
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareSuzana Viana Mota
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoLeinylson Fontinele
 
Sistema operacional windows_10
Sistema operacional windows_10Sistema operacional windows_10
Sistema operacional windows_10Oseas_Lima
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação Marcos Gregorio
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao PythonMarcio Palheta
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisvini_campos
 

Mais procurados (20)

Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
Informática Básica - Aula 03 - Hardware
Informática Básica - Aula 03 - HardwareInformática Básica - Aula 03 - Hardware
Informática Básica - Aula 03 - Hardware
 
Biblioteca de interface grafica
Biblioteca de interface graficaBiblioteca de interface grafica
Biblioteca de interface grafica
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de Programação
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Proteção e segurança de sistemas operacionais
Proteção e segurança de sistemas operacionaisProteção e segurança de sistemas operacionais
Proteção e segurança de sistemas operacionais
 
Linguagem SQL
Linguagem SQLLinguagem SQL
Linguagem SQL
 
Segurança e protecção dos sistemas operativos
Segurança e protecção dos sistemas operativosSegurança e protecção dos sistemas operativos
Segurança e protecção dos sistemas operativos
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e Software
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
Sistema operacional windows_10
Sistema operacional windows_10Sistema operacional windows_10
Sistema operacional windows_10
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
Requisitos De Software
Requisitos De SoftwareRequisitos De Software
Requisitos De Software
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 

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
 

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)
 
Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)
 
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 - 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