Funzione (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Implementazione: Aggiunta sottosezione
Spostato paragrafo
Riga 9:
 
Le subroutine che implementano funzionalità di base spesso richiamate nel [[codice sorgente]] dal programmatore sono raccolte all'interno delle cosiddette [[Libreria (software)|librerie]].
 
Nei diversi [[linguaggio di programmazione|linguaggi di programmazione]], le funzioni vengono realizzate in modi e con terminologie parzialmente differenti.
 
* il termine subroutine è stato usato fino dagli albori della [[programmazione (informatica)|programmazione]] per riferirsi a sezioni di codice [[Linguaggio assembly|assembly]] o in [[linguaggio macchina]] (e viene usato per estensione in altri contesti ad esempio nelle prime versioni del [[BASIC]]);
* i termini procedura e funzione vengono generalmente usati nel contesto dei [[linguaggio di programmazione ad alto livello|linguaggi di programmazione ad alto livello]]; laddove non siano considerati sinonimi per funzione si intende un sottoprogramma il cui scopo principale sia quello di produrre un valore in output a partire da determinati dati in ingresso (cosa che stabilisce un'analogia con l'omonimo concetto di [[funzione (matematica)|funzione matematica]]), senza modificare lo stato; mentre una procedura è un sottoprogramma che non "produce" alcun particolare valore in output ma modifica lo stato. Alcuni linguaggi (per esempio il [[linguaggio C|C]]) adottano come modello "standard" quello della funzione, e considerano le procedure come caso particolare di funzione che restituisce un valore appartenente all'[[insieme vuoto]].
* il termine sottoprogramma è anch'esso tipico dei linguaggi di programmazione ad alto livello, ed è talvolta usato come termine generale per riferirsi sia a procedure che a funzioni nel senso descritto sopra.
* il termine [[metodo (informatica)|metodo]] è usato invece nell'ambito della [[programmazione orientata agli oggetti]] in luogo di quello di funzione.
 
== Funzionamento ==
Riga 77 ⟶ 70:
 
== Implementazione ==
 
=== Supporto nei linguaggi di programmazione ===
Nei diversi [[linguaggio di programmazione|linguaggi di programmazione]], le funzioni vengono realizzate in modi e con terminologie parzialmente differenti.:
 
* il termine subroutine è stato usato fino dagli albori della [[programmazione (informatica)|programmazione]] per riferirsi a sezioni di codice [[Linguaggio assembly|assembly]] o in [[linguaggio macchina]] (e viene usato per estensione in altri contesti ad esempio nelle prime versioni del [[BASIC]]);
* i termini procedura e funzione vengono generalmente usati nel contesto dei [[linguaggio di programmazione ad alto livello|linguaggi di programmazione ad alto livello]]; laddove non siano considerati sinonimi per funzione si intende un sottoprogramma il cui scopo principale sia quello di produrre un valore in output a partire da determinati dati in ingresso (cosa che stabilisce un'analogia con l'omonimo concetto di [[funzione (matematica)|funzione matematica]]), senza modificare lo stato; mentre una procedura è un sottoprogramma che non "produce" alcun particolare valore in output ma modifica lo stato. Alcuni linguaggi (per esempio il [[linguaggio C|C]]) adottano come modello "standard" quello della funzione, e considerano le procedure come caso particolare di funzione che restituisce un valore appartenente all'[[insieme vuoto]].
* il termine sottoprogramma è anch'esso tipico dei linguaggi di programmazione ad alto livello, ed è talvolta usato come termine generale per riferirsi sia a procedure che a funzioni nel senso descritto sopra.
* il termine [[metodo (informatica)|metodo]] è usato invece nell'ambito della [[programmazione orientata agli oggetti]] in luogo di quello di funzione.
 
=== Supporto hardware ===