Título: | FINALIZADORES E REFERÊNCIAS FRACAS: INTERAGINDO COM O COLETOR DE LIXO | |||||||
Autor: |
MARCUS AMORIM LEAL |
|||||||
Colaborador(es): |
ROBERTO IERUSALIMSCHY - Orientador |
|||||||
Catalogação: | 03/JAN/2006 | Língua(s): | PORTUGUÊS - BRASIL |
|||||
Tipo: | TEXTO | Subtipo: | TESE | |||||
Notas: |
[pt] Todos os dados constantes dos documentos são de inteira responsabilidade de seus autores. Os dados utilizados nas descrições dos documentos estão em conformidade com os sistemas da administração da PUC-Rio. [en] All data contained in the documents are the sole responsibility of the authors. The data used in the descriptions of the documents are in conformity with the systems of the administration of PUC-Rio. |
|||||||
Referência(s): |
[pt] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=7645&idi=1 [en] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=7645&idi=2 |
|||||||
DOI: | https://doi.org/10.17771/PUCRio.acad.7645 | |||||||
Resumo: | ||||||||
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.
|
||||||||