Zásobník volání: Porovnání verzí

Smazaný obsah Přidaný obsah
MatSuBot (diskuse | příspěvky)
m WPCleaner v1.21 - Opraveno pomocí WP:WCW - Odkaz shodný se svým popisem
Radiosaltbird (diskuse | příspěvky)
m linkfix
Řádek 18:
; '''Uložení ukazatele na instanci objektu''': V [[objektově orientované programování|objektově orientovaném programování]] jsou obvykle podprogramy přiřazeny ke konkrétní [[instance třídy|instanci třídy]]. Některé [[objektově orientovaný jazyk|objektově orientované jazyky]], například [[C++]], informaci o této příslušnosti udržují tak, že umístěním na zásobník předávají podprogramům jako zvláštní parametr [[ukazatel]] na patřičnou instanci.
; '''Vyhodnocování výrazů''': Operandy a meziprodukty aritmetických a logických operací jsou obvykle udržovány v [[registr procesoru|registrech procesoru]], ale může dojít k situaci, že operandů je moc a registrů je málo. V takových případech může překladač odkládat některé operandy na zásobník (výpočet pak připomíná [[postfixová notace|postfixovou notaci]]).
; '''Zpřístupnění kontextu u vnořených funkcí''': Některé programovací jazyy (například [[Pascal (programovací jazyk)|Pascal]] nebo [[Ada (programovací jazyk)|Ada]]) podporují [[vnořené podprogramy]], kdy kód z vnitřního podprogramu má přístup k lokálním proměnným vnějšího podprogramu. To může být implemetováno například tak, že kromě samotných lokálních proměnných se na zásobníku při volání předává také ukazatel na místo uložení lokálních proměnných nadřazené funkce.
; '''Ukládání širšího kontextu''': V některých situacích je potřeba uchovat přes volání podprogramu víc hodnot, než jen adresu příští instrukce, například i jiné registry. V takových případech mohou být i ony uloženy na zásobník. Typickým příkladem je obsluha [[přerušení]], při které je zapotřebí uchovat například obsah [[registr příznaků|registru příznaků]].