Título
[pt] FINALIZADORES E REFERÊNCIAS FRACAS: INTERAGINDO COM O COLETOR DE LIXO
Título
[en] FINALIZERS AND WEAK REFERENCES: INTERFACING WITH THE GARBAGE COLLECTOR
Autor
[pt] MARCUS AMORIM LEAL
Vocabulário
[pt] SEMANTICA
Vocabulário
[pt] MODELOS FORMAIS
Vocabulário
[pt] COLETA DE LIXO
Vocabulário
[pt] REFERENCIAS FRACAS
Vocabulário
[pt] FINALIZADORES
Vocabulário
[pt] LINGUAGENS DE PROGRAMACAO
Vocabulário
[en] SEMANTICS
Vocabulário
[en] FORMAL MODELS
Vocabulário
[en] GARBAGE COLLECTION
Vocabulário
[en] WEAK REFERENCES
Vocabulário
[en] FINALIZERS
Vocabulário
[en] PROGRAMMING LANGUAGES
Resumo
[pt] Inúmeras linguagens de programação oferecem suporte a
finalizadores e referências fracas. Não obstante, de
maneira geral esses mecanismos são relativamente
pouco conhecidos e pouco usados por programadores. Mesmo
entre pesquisadores e desenvolvedores de linguagens não
existe muito consenso
quanto à sua semântica, que varia consideravelmente entre
diferentes
implementações. Neste trabalho buscamos explorar os
conceitos de finalizadores
e de referências fracas, suprindo a ausência de uma
especificação clara
e abrangente, e permitindo uma melhor compreensão,
implementação e uso
dos mecanismos correspondentes. Como ponto de partida
realizamos um
amplo levantamento sobre como é feito o suporte a
finalizadores e referências
fracas em diferentes linguagens de programação,
identificando as características comuns, os problemas, e
as questões semânticas mais relevantes associadas
às implementações consideradas. Para garantir uma maior
precisão
em nossa análise, utilizamos um modelo abstrato de uma
linguagem de programação com gerenciamento automático de
memória. Através deste modelo
especificamos formalmente a semântica de finalizadores e
referências fracas,
incluindo descrições das suas principais variantes e
mecanismos relacionados.
Além disso, provamos certas propriedades inerentes a
linguagens de
programação com gerenciamento automático de memória,
indicando como
estas são afetadas pela introdução de finalizadores e
referências fracas. Por
fim, consideramos possíveis estratégias de implementação
desses mecanismos
em diferentes tipos de sistemas. Algumas das opções
semânticas investigadas
impõe um custo de processamento expressivo, o que
frequentemente
inviabiliza a sua adoção na prática.
Resumo
[en] Most mainstream programming languages support finalizers
and weak
references. In spite of that, these abstractions are still
modestly known
by programmers in general. Even among language designers
there seems
to be no common view on how to define their semantics, and
language
implementations certainly reflect that. In this thesis we
explore the concepts
of finalizer and weak reference by discussing several
important issues that, as
far as we know, have not been explored by other authors.
After presenting
a survey on how finalizers and weak references are
supported by actual
programming languages, we thoroughly examine their
semantics and discuss
alternative implementation strategies. We also use an
operational approach
to develop a formal model for reasoning about garbage
collection and its
interaction with client programs. By explicitly
representing low-level details,
such as heap memory and its addresses, we were able to
clearly specify
memory management actions, and prove several important
memory-related
language invariants. Using this model we describe a formal
semantics for
finalizers and weak references, exploring some of its many
subtleties. We
believe that the topics covered here can serve as a
relevant reference for
further investigations, and also help to guide actual
implementations.
Orientador(es)
ROBERTO IERUSALIMSCHY
Banca
ROBERTO IERUSALIMSCHY
Banca
NOEMI DE LA ROCQUE RODRIGUEZ
Banca
CHRISTIANO DE OLIVEIRA BRAGA
Banca
EDWARD HERMANN HAEUSLER
Banca
ROBERTO DA SILVA BIGONHA
Banca
VITOR MANUEL DE MORAIS SANTOS COSTA
Catalogação
2006-01-03
Apresentação
2005-09-15
Tipo
[pt] TEXTO
Formato
application/pdf
Formato
application/pdf
Formato
application/pdf
Formato
application/pdf
Formato
application/pdf
Formato
application/pdf
Formato
application/pdf
Formato
application/pdf
Formato
application/pdf
Idioma(s)
PORTUGUÊS
Referência [pt]
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=7645@1
Referência [en]
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=7645@2
Referência DOI
https://doi.org/10.17771/PUCRio.acad.7645
Arquivos do conteúdo
CAPA, AGRADECIMENTOS, RESUMO, ABSTRACT, SUMÁRIO E LISTAS PDF CAPÍTULO 1 PDF CAPÍTULO 2 PDF CAPÍTULO 3 PDF CAPÍTULO 4 PDF CAPÍTULO 5 PDF CAPÍTULO 6 PDF CAPÍTULO 7 PDF REFERÊNCIAS BIBLIOGRÁFICAS E APÊNDICES PDF