Article View: pl.comp.lang.funkcyjne
Article #117Re: Pewien problem z odsmiecaniem.
From: Tomasz Zielonka
Date: Wed, 11 Dec 2002 23:23
Date: Wed, 11 Dec 2002 23:23
47 lines
2391 bytes
2391 bytes
Lucifer napisał:
> Tomek Czajka wrote:
>
>> Zwykle raczej nie robi sie zadnego zliczania odniesien, bo moze byc np. tak
>> ze zmienna A odnosi sie do zmiennej B, a zmienna B do A, chociaz o obu
>> juz chcielibysmy zapomniec.
>
> Nie bardzo rozumiem. Co znaczy, ze A odnosi sie do B, A jest jakas
> struktura ktora zawiera B (lub na odwrot)? Jesli A i B sa ze soba w
> jakiejkolwiek relacji to zliczanie odniesien wydaje mi sie calkiem
> mozliwe, ale niezbyt efektywne.
Jeśli w grafie odwołań występują cykle, samo zliczanie odniesień nie
wystarcza.
Przykład: W bibliotece Boost dla C++ są sprytne-wskaźniki zliczające
odniesienia - boost::shared_ptr<T>. Nie są one odporne na cykle:
#include <boost/shared_ptr.hpp>
#include <iostream>
struct A
{
boost::shared_ptr<A> aptr;
A() { std::cout << "A()" << std::endl; }
~A() { std::cout << "~A()" << std::endl; }
};
int main()
{
boost::shared_ptr<A> ap (new A());
ap->aptr = ap; // Skompiluj z tą linią / bez tej linii - jest
// różnica?
}
Właściwie nie znam żadnej poważnej implementacji języka funkcyjnego,
która używałaby zliczania odniesień jako podstawowej metody odśmiecania.
Chyba, że mówimy od gwarantowaniu na poziomie systemu typów, że dla
pewnych obiektów ilość odniesień wynosi co najwyżej 1 - wtedy kłania się
Clean (i chyba Mercury?).
pozdrawiam,
tomek
--
.signature: Too many levels of symbolic links
Technical Details
Message-ID:
<slrnavfi6m.upi.t.zielonka@zodiac.mimuw.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!mimuw.edu.pl!news.mimuw.edu.pl!not-for-mailReferences:
<at84vp$n9r$1@news.tpi.pl> <3DF79931.36D889B@mimuw.edu.pl> <at8aut$8km$1@news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!mimuw.edu.pl!news.mimuw.edu.pl!not-for-mail From: Tomasz Zielonka <t.zielonka@students.mimuw.edu.pl> Newsgroups: pl.comp.lang.funkcyjne Subject: Re: Pewien problem z odsmiecaniem. Date: Wed, 11 Dec 2002 23:23:08 +0000 (UTC) Organization: MIMUW Lines: 47 Message-ID: <slrnavfi6m.upi.t.zielonka@zodiac.mimuw.edu.pl> References: <at84vp$n9r$1@news.tpi.pl> <3DF79931.36D889B@mimuw.edu.pl> <at8aut$8km$1@news.tpi.pl> Reply-To: t.zielonka@students.mimuw.edu.pl NNTP-Posting-Host: zodiac.mimuw.edu.pl Mime-Version: 1.0 X-Trace: kenny.mimuw.edu.pl 1039648988 3280 10.1.1.1 (11 Dec 2002 23:23:08 GMT) X-Complaints-To: abuse@news.mimuw.edu.pl NNTP-Posting-Date: Wed, 11 Dec 2002 23:23:08 +0000 (UTC) User-Agent: slrn/0.9.7.3 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit