Hopp til innhold

Funksjon (programmering)

Fra Wikipedia, den frie encyklopedi
Sideversjon per 5. mai 2010 kl. 18:47 av LaaknorBot (diskusjon | bidrag) (robot legger til: bs, cs, da, de, el, es, et, fa, fi, fr, he, hu, is, it, ja, ko, nl, pl, pt, ru, sk, sr, sv, uk, vi, zh)

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.