sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #18252
Re: Sv: Sv: [OT] Sprog - Re: [TEKNIK] Delphi?
"Keld Laursen" <kl@xxxxxxxxxx> writes:
> Så forskellen skulle være at den første version er nødt til at kalde hele
> vejen til bunden af rekursiviteten(?), hvorimod den anden version kan
> "returnere" til sig selv med nye parametre, så for stor stakbrug kan
> undgåes? Den endelige, terminerende, rutine må så finde ud at returnere til
> det kaldende sted.
Ja cirka. Eller noget i stil med at man kun behøver at sætte en
stackframe op en gang for alle rekursive instanser (et eller andet
sted ligger returaddressen) og de rekursive kald bliver bare til
hop. Til sidst kan man returnere til returaddressen. Det bliver derfor
meget lig en for-konstruktion i C. Man skal lige passe på med lokale
variable (der jo ikke må overskrives fra kald til kald).
> Det kræver vist lidt gennemgang af assemblerkode at finde ud af om min Gnu C
> kan gøre det på nogle targetmaskiner, hvor jeg ikke har for meget
> hukommelse.
Et *gæt* vil være at den ikke gør det. Forskellen ligger i at
funktionssprog bruger funktioner over det hele (og derfor er
optimeringen vigtig), mens C ikke gør (og derfor er det ikke nær så
vigtigt).
Mvh
--Henning Niss
Follow ups
References