sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #18250
Re: Re: Sv: [OT] Sprog - Re: [TEKNIK] Delphi?
Hej
Lad mig starte med at sige at jeg ikke er nogen oversætterhaj, men
koncentrerer mig mere om det Mads kalder ``matematiske beviser'' for
korrektheden af visse programanalyser.
Mads Bondo Dydensborg <madsdyd@xxxxxxxxxxxx> writes:
> Den funktion jeg oprindelig angav:
>
> fun fak 0 = 1
> | fak n = n * fak (n - 1)
>
> burde nu også kunne optimeres af en fornuftig oversætter. (Ikke
> Henning? Eller tager jeg fejl igen?)
Jeg er ikke helt sikker på hvad du mener. Tænker du på at oversætteren
skulle kunne generere den halerekursive version
fun akkfac 0 acc = acc
| akkfac n acc = fak (n-1) (n * acc)
eller noget i den stil? Det generelle problem, at generere en
halerekursive version af en funktion, tror jeg er *meget* svært at
løse. Jeg kender ikke til nogle SML oversættere der prøver det.
> Nogen af de der ML oversættere er djævelsk smart.
Det er de :-), men er moderne C oversættere og den slags ikke også det?
Standardargumentet med at funktionssprog er for langsomme til at kunne
bruges i ``den virkelige verden'' er iøvrigt ved at fortage sig. Der
er, f.eks., en gruppe folk indenfor funktionssprogsverdenen der laver
en omfattende benchmark af forskellige implementationer (men dog kun
på et enkelt program; pseudoknot). Her er konklusionen at moderne
funktionssprog ligger i samme størrelsesorden som imperative sprog
rent ydelsesmæssigt (jeg mener at man er nede omkring en faktor to,
eller så). Her skal man huske på at oversættelsestiden ofte er længere
for funktionssprog --- der skal arbejdes for at opnå den slags ydelse
:-)
ftp://ftp.wins.uva.nl/pub/computer-systems/functional/reports/JFP_pseudoknotI.ps.Z
> Et problem med den slags sprog er typisk at der er garbage collection -
> det vil sige at det kan være svært at forudsige hvor lang tid noget tager,
> fordi garbagecollectoren kan afbryde mit i det hele. Mads Tofte (direktør
> for ITU) har dog gjort meget med sine "ML Regioner", og har matematisk
> bevist en masse pæne egenskaber for den type oversættelse af ML.
Det er sandt. Der er virkelig fremtid i regioner. Læg mærke til at der
er to ting man ønsker at opnå med regioner: (1) (som du nævner) at det
fremgår eksplicit hvornår lager ``gendrives'' (deallokeres) *og* (2)
at man kan klare sig med mindre lager (argumentet er at man prøver at
nærme sig eksplicit lagerstyring fremfor spildopsamlerens meget
implicitte).
Mvh
--Henning
References