Hopp til innhold

Funksjon (programmering)

Fra Wikipedia, den frie encyklopedi
Sideversjon per 28. mar. 2011 kl. 04:27 av KamikazeBot (diskusjon | bidrag) (r2.6.4) (robot legger til: pt:Sub-rotina)

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.