Subprogramma: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
linkfix
Siebrand (overleg | bijdragen)
clean up, Replaced: gebruik gemaakt → gebruikgemaakt met AWB
Regel 27:
;''pass by name'' : Bij dit mechanisme wordt, bij aanroep van een subprogramma, de naam van een variabele doorgegeven. Tijdens het uitvoeren van het programma wordt in de programmatekst van het subprogramma de naam van de formele parameter vervangen door de doorgegeven variabelenaam. Dit mechanisme wordt eigenlijk niet meer gebruikt -- het is moeilijk te begrijpen en te volgen, het maakt recursie in subprogramma's moeilijk of onmogelijk, het introduceert fouten en moeilijkheden omdat subprogramma's feitelijk geen eigen [[naamruimte]] hebben en het is mogelijk om programma's te forceren waarvan het gedrag onverwacht is of waarvan de uitvoering zelfs vastloopt.
 
Soms wordt er gebruik gemaaktgebruikgemaakt van een combinatie van mechanismen, of van een neveneffect van een mechanisme waardoor meer dan één waarde doorgegeven wordt. De [[Programmeertaal Java|Java-taal]] bijvoorbeeld kent als typen voor programma-variabelen een aantal basis-typen en verder de "object referentie"; variabelen van dit type zijn doorzichtig en worden in de taal feitelijk behandeld alsof het de objecten zijn waarnaar zij verwijzen. Daarnaast kent Java als parametermechanisme pass by value. Wordt echter de waarde van een object referentie doorgegeven, dan wordt natuurlijk feitelijk ook dat object doorgegeven -- alsof het pass by reference was. Men zou dit mechanisme zoiets als "pass by reference-value" kunnen noemen.
 
Bij subprogramma's wordt soms onderscheid gemaakt in de waarden die geretourneerd worden na een aanroep. Sommige talen kennen alleen subprogramma's met een resultaat-waarde, sommige talen kennen alleen subprogramma's zonder, weer andere talen kennen een combinatie.