Skąd się wzięło pojęcie „wywołania” funkcji?

17

Zawsze zastanawiałem się, dlaczego wywołuje się funkcję, a nie na przykład ją wykonuje .

Wyszukiwarka Google function call etymologyi podobne hasła nie okazują się przydatne, Wikipedia nie wspomina o tym, słowniki internetowe nie mają żadnego wpisu lub nie zawierają sekcji etymologii .

Skąd się wzięło pojęcie „wywołania” funkcji?

Timo
źródło
Prawdopodobnie pochodzi z innej semantyki do obsługi argumentów - wywołanie według wartości, wywołanie przez odniesienie, wywołanie według nazwy itp. Wyobrażam sobie również, że termin pochodzi od „wywołania procedury” lub „wywołania podprogramu” i został zastosowany tylko do funkcji później . W matematyce przypisujesz funkcje do ich argumentów, a my nazywamy funkcje prawie zawsze procedurami / podprogramami (ponieważ funkcje matematyczne nie mają skutków ubocznych).
Doval
@Doval: Tak, ale dlaczego używać samego „call” w „wywołaniu procedury” zamiast innego czasownika?
FrustratedWithFormsDesigner
2
@FrustratedWithFormsDesigner Brak pojęcia, ale pomyślałem, że będą mieli więcej szczęścia, próbując znaleźć źródło „wywołania podprogramu” lub „wywołania procedury” niż „wywołania funkcji”, co nie ma historycznego sensu. Zdaję sobie sprawę, że komentarz nie odpowiada na pytanie, ale właśnie dlatego zrobiłem z niego komentarz, a nie odpowiedź.
Doval
2
W rachunku lambda stosuje się funkcję (a operator lambda tworzy abstrakcje ). Niektóre języki mówią o wywoływaniu , a nie wywoływaniu funkcji.
Basile Starynkevitch
2
W niektórych dialektach języka asemblera (takich jak asembler x86) nazwy kodów calli / retlub niektóre ich warianty. Możliwe jest, że języki programowania odziedziczyły terminologię od podstawowego sprzętu, choć nadal pozostawiłoby pytanie, dlaczego projektanci sprzętu wybrali te nazwy do operacji.
David Conrad,

Odpowiedzi:

15

Słowo call zawraca przynajmniej do Fortran, pierwszego powszechnie używanego języka programowania. W Fortranie CALLjest to słowo kluczowe, które przekazuje kontrolę podprogramowi . Nie jest jasne, dlaczego John Backus wybrał to słowo, aby wywołać podprogramy - może być konieczne przeczytanie jednej lub więcej biografii Backusa, aby to odkryć - ale wydaje się prawdopodobne, że użycie w Fortranie jest powodem, dla którego używamy dziś słowa call w odniesieniu do funkcji, metod itp.

Zauważ, że użycie wywołania w odniesieniu do funkcji i innych podprogramów również dobrze pasuje do kilku anglojęzycznych definicji wywołania :

  • zrobić krótką wizytę
  • żądać czegoś
  • budzić się ze snu
  • zaprosić
Caleb
źródło
3
OP chce przede wszystkim wiedzieć, dlaczego CALL.
Tulains Córdova
5
Artykuł Davida Wheelera ACM z 1952 r. Zastosowanie podprogramów w programach opisuje tę koncepcję, i założę się, że użycie terminu „wywołanie” ewoluowało od tego czasu do pojawienia się CALLi RETURNw FORTRAN II w 1958 r., Jeśli nie był używany w samym artykule. (Jestem zbyt tani, aby zapłacić 15 USD ACM, aby się dowiedzieć.)
Blrfl
2
@ Timo Chociaż nie mogę wskazać źródła tego terminu, moim celem w tej odpowiedzi było przybliżenie cię do tego punktu. Wiedza o tym CALLpojawia się w tym kontekście w Fortranie (utworzonym w 1954 r.) Powinna znacznie zawęzić poszukiwania pochodzenia. Powyższy komentarz Blrfl wygląda na dobry początek na początku, więc razem skróciliśmy okres, w którym termin ten wydaje się być używany od kilku lat.
Caleb
2
@Caleb: CALLnie był częścią pierwszej wersji FORTRAN. Patrz strona 1 Podręcznika referencyjnego IBM Fortran II .
Blrfl,
2
@Blrfl Przejrzałem gazetę, nie używa tego terminu callani żadnego innego terminu, głównie mówi o use ofpodprogramach.
Lars Viklund,