Lo scambio di dati fra la procedura chiamata e quella chiamante può avvenire con diverse modalità: mediante variabili condivise (ovvero il cui scope comprenda chiamato e chiamante), oppure, in alcuni linguaggi (come Forth o PostScript) utilizzando lo stack (pila), un’area di memoria in cui i dati possono essere accumulati e rimossi sequenzialmente.
Lo scambio di dati fra la procedura chiamata e quella chiamante può avvenire con diverse modalità: mediante variabili condivise (ovvero il cui scope comprenda chiamato e chiamante), oppure, in alcuni linguaggi (come Forth o PostScript) utilizzando lo stack (pila), un’area di memoria in cui i dati possono essere accumulati e rimossi sequenzialmente. Il sistema più diffuso prevede l’uso di parametri, speciali variabili associate alla procedura e dedicate a questo scopo. L’utilizzo dei parametri è molto articolato e può essere assai differente nei vari linguaggi. I parametri possono essere usati per trasferire dati dal chiamante al chiamato o viceversa; una procedura può essere chiamata con un numero variabile di parametri; si possono definire procedure diverse con lo stesso nome, distinte solo per il numero ed eventualmente il tipo dei parametri; nell’invocazione l’associazione fra parametri e loro valore può essere fatta in base alla posizione, ma anche al nome, e così via.