Tommy Hallgren <[EMAIL PROTECTED]> writes: >Har alltid trott att ett statisk typat språk kan klara sig utan >taggade värden, men blev förvånad när jag läste om ghc och att de har >tags på alla objekt.
>För skräpsamlaren antar jag, men ändå, är det inte åtminstone >teoretiskt möjligt att vara utan tags i en Haskell-miljö? Det har skrivits tagglösa implementationer av statiskt typade språk (bl.a. olika ML-varianter), och visst har det fördelar. Anledningen till att O'Caml använder taggar är tvåfald: dels underlättar det för vissa inbyggda ad hoc-polymorfiska operationer (jämförelser), och dels gör det skräpsamlaren mätbart snabbare. Det är en avvägning, men eftersom allokeringar (och därmed skräpsamlingar) är så vanliga i ML ansågs det vara värt den extra kostnad som taggning medför. Det skall observeras att O'Camls kompilator kan optimera bort många taggningsoperationer inuti en funktion så denna kostnad är inte så stor i praktiken. Det finns dessutom tagglösa flyttalsarrayer. Däremot saknar jag ibland möjligheten till oboxade fullordsvärden (32 eller 64 bitar). Den traditionella Lisplösningen är att automatiskt gå över till bignums när det behövs, men det gör det lite svårare att optimera heltalshanteringen när man inte statiskt vet om bignum-operationer krävs. Ett annat alternativ till taggning är att använda en konservativ skräpsamlare, men senast jag undersökte så var det inte förenligt med riktigt höga krav på allokeringsprestanda. _______________________________________________ Lisp mailing list Lisp@lisp.se http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp