[Lisp] Re: Ray tracing

2007-04-18 tråd Cons T Åhs
At 17:38 + 2007-03-29, Mattias Engdegård wrote:
Lars Brinkhoff [EMAIL PROTECTED] writes:


Det inneb”r ofta att man fÂr l”gga till mÂnga deklarationer, vilket
f–rmodligen kan anses minska l”sbarheten.  Dock t”nker jag mig att kan
jag abstrahera bort mÂnga sÂdana detaljer genom ett l”mpligt
lager med makron.

Men att man –verhuvudtaget skall beh–va g–ra sÂdant manuellt ”r ju
inte s lyckat. Typinferens och funktionskloning/specialisering borde
v”l kunna eliminera behovet av de flesta deklarationer?

Det är det som gör ett språk som SML så väldigt trevligt.  Statisk typning via 
typinferens ger väldigt många fördelar, både vad det gäller utveckling 
(typinferensen fångar mycket) och läsbarhet (man slipper själv deklarera sina 
typer).

Att sedan SML inte har en lika vacker syntax som Lisp ligger den förstås i 
fatet.

Cons


___
Lisp mailing list
Lisp@lisp.se
http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp


SV: [Lisp] Re: Ray tracing

2007-04-18 tråd Tommy Hallgren
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ö?

Cons T Åhs [EMAIL PROTECTED] skrev: At 17:38 + 2007-03-29, Mattias 
Engdegård wrote:
Lars Brinkhoff  writes:


Det inneb”r ofta att man fÂr l”gga till mÂnga deklarationer, vilket
f–rmodligen kan anses minska l”sbarheten.  Dock t”nker jag mig att kan
jag abstrahera bort mÂnga sÂdana detaljer genom ett l”mpligt
lager med makron.

Men att man –verhuvudtaget skall beh–va g–ra sÂdant manuellt ”r ju
inte s lyckat. Typinferens och funktionskloning/specialisering borde
v”l kunna eliminera behovet av de flesta deklarationer?

Det är det som gör ett språk som SML så väldigt trevligt.  Statisk typning via 
typinferens ger väldigt många fördelar, både vad det gäller utveckling 
(typinferensen fångar mycket) och läsbarhet (man slipper själv deklarera sina 
typer).

Att sedan SML inte har en lika vacker syntax som Lisp ligger den förstås i 
fatet.

Cons


___
Lisp mailing list
Lisp@lisp.se
http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp


   
-

Stava rätt! Stava lätt! Yahoo! Mails stavkontroll tar hand om tryckfelen och 
mycket mer! Få den på http://se.mail.yahoo.com___
Lisp mailing list
Lisp@lisp.se
http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp


[Lisp] Re: SV: Re: Ray tracing

2007-04-18 tråd Mattias Engdegård
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