„Függvény (programozás)” változatai közötti eltérés

[ellenőrzött változat][ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
3. sor:
== A szubrutin ==
[[Kép:Illusztráció szubrutin.png|thumbnail|jobbra|A kék szubrutin három helyről van meghívva, és mindig a hívás helyéhez tér vissza]]
Ha egy adott műveletsorra egy programban több helyen is szükség van, az elemi megoldás az, hogy az adott kódrészletet mindenhol elhelyezzük, beillesztve a környezetébe. Ha újabb helyen merül fel rá igény, akkor a kódrészletet átmásoljuk a következő helyre is és így tovább. Ez terjengős és nehezen elemezhető forráskódot eredményezne, valamint nagyon sok fölösleges munkát. Ezért minden magasmár szintűa programnyelvlegkorábbi tartalmazszámítógépek olyankódkészlete is tartalmazott vezérlés átadó utasítást (Pl:[[Minszk–22]], amelyet oda kell elhelyezni, ahol az adott kódrészletnek szerepelnie kellene, maga a kódrészlet (''rutin'') pedig a programban tetszőleges, külön helyen lehet. A rutint helyettesítő utasítás végrehajtásakor a számítógép odaugrik a rutin kezdőpontjára, végrehajtja a benne levő utasításokat, majd amikor egy utasítás jelzi, hogy ez a rutin véget ért, automatikusan visszatér az előző helyre, és onnan folytatódik a program végrehajtása, ahonnan a külön rutinra való átirányítás volt. A rutint elindító utasítás szakkifejezéssel ''meghívta'' a külön programrészletet, amelyet, mivel logikailag alárendelt része lett az egész programnak, valójában a ''szubrutin'' (al-rutin) névvel illetnek. A módszer előnye az, hogy ha egy másik helyen van szükség ugyanerre a szubrutinra, oda is csak a meghívó utasítás kerül, és amikor a szubrutin véget ért, a program automatikusan onnan folytatódik, ahonnan ''most'' a szubrutint meghívták. Tehát a visszatérés mindig az éppen aktuális meghívás helyére történik. Ebből eredően a szubrutin tetszőleges helyről tetszőleges alkalommal használatba vehető, és a kódját csak egyszer kellett megírni. (A szubrutin kódja egyenértékű a többi kóddal, ezért a szubrutinból is meghívhatók újabb szubrutinok is.) Ha pedig a szubrutinban levő műveletsoron változtatni kellett, így egyetlen helyen is elég volt a változást elvégezni.
 
Ez a megoldás annyira alapvetővé vált a számítógépes programokban, hogy a legalacsonyabb szinten, magában a [[gépi kód]]ban is megvan a hívó és visszatérési utasítások megfelelője.