Funksjon (programmering)
Utseende
Kildeløs: Denne artikkelen mangler kildehenvisninger, og opplysningene i den kan dermed være vanskelige å verifisere. Kildeløst materiale kan bli fjernet. Helt uten kilder. (10. okt. 2015) |
En funksjon, subrutine eller metode er en del av et dataprogram som returnerer tilbake til den delen av programmet som kalte funksjonen, kalleren. En funksjon har et privat sett av data å jobbe med, deriblant eventuelle returdata og eventuelle parametere som kalleren sendte med, rettere sagt initialiserte.
Hensikt
- Heve abstraksjonsnivået ved programmering.
- Gjenbruke deler av programmet, både kildekode og maskinkode.
Terminologi
- Innen objektorientert programmering brukes ordet "metode" om medlemsfunksjoner av klasser. Uformelt også synonymt med "funksjon".
- C- eller Pascal-calling convention: Om det er henholdsvis kalleren eller funksjonen som justerer stakkpekeren. Førstnevnte muliggjør variabel mengde parameterdata.
Virkemåte
Funksjonskall er mer kompliserte enn hopp. Mens hopp utføres med en enkelt jump- eller branch-prosessorinstruksjon, krever funksjonskall ekstra programvare:
- For at funksjonenes minne skal eksistere samtidig, må de plasseres på en stakk, altså en "sist inn, først ut"-kø. Stakkpekeren peker på toppen av stakken. Enten må hver funksjon ha sin egen stakkpeker, eller så må stakkpekeren justeres også ved retur.
- Hver funksjon må ha kallerens kopi av programtelleren. Funksjonen returnerer ved å kopiere denne tilbake i programtelleren, slik at neste instruksjon som hentes av styreenheten i CPU-en er den som ligger rett etter funksjonskallet. Dermed fortsetter kalleren der den slapp.