Funzione (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riorganizzate sezioni
Riga 67:
 
=== 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 concetto di funzione è utilizzabile in tutti i [[linguaggi di programmazione]] che implementano il [[programmazione procedurale|paradigma procedurale]].
La maggioranza dei [[linguaggio di programmazione ad alto livello|linguaggi di programmazione ad alto livello]] supporta esplicitamente le funzioni, prevedendo costrutti sintattici dedicati o che in alternativa accorpano diverse varianti del concetto:
 
* i [[C (linguaggio di programmazione)|linguaggi C-like]] prevedono una sintassi dedicata per le funzioni, che supporta anche le [[procedura (programmazione)|procedure]] come caso particolare;
* nei linguaggi fortemente [[programmazione orientata agli oggetti|orientati agli oggetti]] (es. [[Java (linguaggio di programmazione)|Java]]) le funzioni sono disponibili sotto forma di "[[metodo (informatica)|metodi]]";
* nei [[IEC 61131-3|linguaggi per l'automazione industriale]] le funzioni sono disponibili anche sotto forma di "[[Function block diagram|blocchi funzionali]]".
 
Alcuni linguaggi tendono ad utilizzare terminologie diverse:
 
* 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]]);
* 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.
* 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 ===