Dari mana datangnya gagasan 'memanggil' suatu fungsi?

17

Saya selalu bertanya-tanya mengapa seseorang memanggil fungsi yang bertentangan dengan, misalnya, menjalankannya .

Pencarian Google untuk function call etymologydan istilah serupa ternyata tidak berguna, Wikipedia tidak menyebutkannya, kamus online tidak memiliki entri sama sekali atau tidak ada bagian etimologi .

Dari mana datangnya gagasan 'memanggil' suatu fungsi?

Timo
sumber
Mungkin berasal dari semantik yang berbeda untuk menangani argumen - panggilan dengan nilai, panggilan dengan referensi, panggilan dengan nama, dll. Saya juga membayangkan bahwa istilah tersebut berasal dengan "prosedur panggilan" atau "panggilan subrutin" dan hanya diterapkan pada fungsi nanti . Dalam matematika Anda menerapkan fungsi ke argumen mereka, dan apa yang kita sebut fungsi hampir selalu merupakan prosedur / subrutin (karena fungsi matematika tidak memiliki efek samping).
Doval
@Doval: Ya, tetapi mengapa menggunakan "panggilan" dalam "panggilan prosedur" yang sangat berbeda daripada kata kerja yang berbeda?
FrustratedWithFormsDesigner
2
@FrustratedWithFormsDesigner Tidak tahu, tapi saya pikir mereka akan lebih beruntung mencoba untuk menemukan asal-usul "panggilan subrutin" atau "panggilan prosedur" daripada "panggilan fungsi", yang tidak masuk akal secara historis. Saya menyadari bahwa komentar itu tidak menjawab pertanyaan, tetapi justru itulah mengapa saya memberikan komentar dan bukan jawaban.
Doval
2
Dalam lambda-calculus Anda menerapkan suatu fungsi (dan operator lambda membuat abstraksi ). Beberapa bahasa berbicara tentang memanggil , bukan memanggil, suatu fungsi.
Basile Starynkevitch
2
Dalam beberapa dialek bahasa rakitan (seperti rakitan x86) opcode dinamai calldan retatau beberapa varian darinya. Ada kemungkinan bahwa bahasa pemrograman mewarisi terminologi dari perangkat keras yang mendasarinya, meskipun itu masih akan meninggalkan pertanyaan mengapa perancang perangkat keras memilih nama-nama untuk operasi.
David Conrad

Jawaban:

15

Kata panggilan kembali setidaknya ke Fortran, bahasa pemrograman pertama yang banyak digunakan. Di Fortran, CALLadalah kata kunci yang memberikan kontrol ke subrutin . Tidak jelas mengapa John Backus memilih kata itu untuk memanggil subrutin - Anda mungkin perlu membaca satu atau lebih biografi Backus untuk menemukan itu - tetapi sepertinya penggunaan di Fortran adalah alasan mengapa kami menggunakan kata panggilan hari ini dengan menghormati fungsi, metode, dll.

Perhatikan bahwa penggunaan panggilan sehubungan dengan fungsi dan subrutin lainnya juga cocok dengan beberapa definisi panggilan berbahasa Inggris :

  • untuk melakukan kunjungan singkat
  • untuk menuntut sesuatu
  • bangun dari tidur
  • untuk mengundang
Caleb
sumber
3
OP ingin tahu mengapa PANGGILAN di tempat pertama.
Tulains Córdova
5
Makalah ACM David Wheeler tahun 1952 Penggunaan sub-rutin dalam program menggambarkan konsep, dan saya bertaruh penggunaan istilah "panggilan" berkembang antara saat itu dan kemunculan CALLdan RETURNdalam FORTRAN II pada tahun 1958, jika itu tidak digunakan di koran itu sendiri. (Saya terlalu murah untuk membayar ACM $ 15 untuk mencari tahu.)
Blrfl
2
@Timo Meskipun saya tidak bisa menunjuk ke asal istilah, tujuan saya dengan jawaban ini adalah untuk membuat Anda lebih dekat ke titik itu. Mengetahui yang CALLmuncul dalam konteks ini di Fortran (dibuat pada tahun 1954) harus secara signifikan mempersempit pencarian asal. Komentar Blrfl di atas terlihat seperti ikatan yang baik di sisi awal, jadi bersama-sama kita mempersempit periode waktu di mana istilah tersebut mulai digunakan untuk beberapa tahun.
Caleb
2
@ Caleb: CALLbukan bagian dari versi pertama FORTRAN. Lihat halaman 1 Manual Referensi IBM Fortran II .
Blrfl
2
@ Blrfl Saya membaca sekilas kertas, tidak menggunakan istilah callatau istilah lain, sebagian besar hanya berbicara tentang use ofsubrutin.
Lars Viklund