Da dove viene l'idea di "chiamare" una funzione?


17

Mi sono sempre chiesto perché si chiama una funzione anziché, ad esempio, l' esecuzione .

Una ricerca su Google function call etymologye termini simili non risultano nulla di utile, Wikipedia non lo menziona, i dizionari online non hanno alcuna voce o nessuna sezione di etimologia .

Da dove viene l'idea di "chiamare" una funzione?


Probabilmente deriva dalla diversa semantica per la gestione degli argomenti: chiamata per valore, chiamata per riferimento, chiamata per nome, ecc. Immagino anche che il termine abbia avuto origine con "chiamata di procedura" o "chiamata di subroutine" e sia stato applicato solo a funzioni successive . In matematica applichi funzioni ai loro argomenti e quelle che chiamiamo funzioni sono quasi sempre procedure / subroutine (perché le funzioni matematiche non hanno effetti collaterali).
Doval,

@Doval: Sì, ma perché usare la "call" in "call procedure" invece di un verbo diverso?
FrustratedWithFormsDesigner,

2
@FrustratedWithFormsDesigner Nessun indizio, ma ho pensato che avrebbero avuto più fortuna cercando di trovare le origini di "chiamata di subroutine" o "chiamata di procedura" rispetto a "chiamata di funzione", che non ha senso storicamente. Mi rendo conto che il commento non risponde alla domanda, ma è proprio per questo che l'ho fatto un commento e non una risposta.
Doval,

2
In lambda-calcolo si applica una funzione (e l' operatore lambda sta facendo astrazioni ). Alcune lingue parlano di invocare , non chiamare, una funzione.
Basile Starynkevitch,

2
In alcuni dialetti del linguaggio assembly (come assembly x86) gli opcode sono nominati calle reto in qualche loro variante. È possibile che i linguaggi di programmazione ereditino la terminologia dall'hardware sottostante, sebbene ciò lascerebbe comunque la domanda sul perché i progettisti dell'hardware abbiano scelto quei nomi per le operazioni.
David Conrad,

Risposte:


15

La parola chiamata risale almeno a Fortran, il primo linguaggio di programmazione ampiamente utilizzato. In Fortran, CALLè una parola chiave che passa il controllo a una subroutine . Non è chiaro perché John Backus abbia scelto quella parola per invocare le subroutine - potrebbe essere necessario leggere una o più biografie di Backus per scoprirla - ma sembra probabile che l'uso in Fortran sia la ragione per cui usiamo la parola call con rispetto a funzioni, metodi, ecc.

Si noti che l'uso della chiamata rispetto alle funzioni e ad altre subroutine si adatta bene anche a diverse definizioni di chiamata in lingua inglese :

  • per fare una breve visita
  • chiedere qualcosa
  • per svegliarti dal sonno
  • invitare

3
OP vuole sapere perché CHIAMARE in primo luogo.
Tulains Córdova,

5
Documento ACM del 1952 di David Wheeler L'uso delle sub-routine nei programmi descrive il concetto, e scommetterei che il termine "chiamata" si è evoluto tra allora e l'aspetto di CALLe RETURNin FORTRAN II nel 1958, se non fosse usato nel documento stesso. (Sono troppo economico per pagare l'ACM $ 15 per scoprirlo.)
Blrfl

2
@Timo Anche se non posso indicare l'origine del termine, il mio obiettivo con questa risposta era di avvicinarti a quel punto. Sapere che si CALLpresenta in questo contesto a Fortran (creato nel 1954) dovrebbe restringere in modo significativo la ricerca dell'origine. Il commento di Blrfl sopra sembra un buon limite all'inizio, quindi insieme abbiamo ristretto il periodo in cui il termine sembra essere entrato in uso a pochi anni.
Caleb,

2
@Caleb: CALLnon faceva parte della prima versione di FORTRAN. Vedi pagina 1 del Manuale di riferimento di IBM Fortran II .
Blrfl,

2
@Blrfl Ho sfogliato la carta, non usa il termine callo qualsiasi altro termine, parla principalmente di use ofsubroutine.
Lars Viklund,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.