De onde veio a noção de 'chamar' uma função?

17

Eu sempre me perguntei por que alguém chama uma função em vez de, por exemplo, executar la.

Uma pesquisa no Google function call etymologye termos similares não são úteis, a Wikipedia não menciona, os dicionários on-line não têm entrada nenhuma ou seção de etimologia .

De onde veio a noção de 'chamar' uma função?

Timo
fonte
Provavelmente vem das diferentes semânticas para lidar com os argumentos - chamada por valor, chamada por referência, chamada por nome, etc. Também imagino que o termo tenha se originado com "chamada de procedimento" ou "chamada de sub-rotina" e tenha sido aplicado apenas a funções posteriormente . Em matemática, você aplica funções a seus argumentos, e o que chamamos de funções são quase sempre procedimentos / sub-rotinas (porque as funções matemáticas não têm efeitos colaterais).
Doval
@Doval: Sim, mas por que usar a própria "chamada" em "chamada de procedimento" em vez de um verbo diferente?
FrustratedWithFormsDesigner
2
@FrustratedWithFormsDesigner Nenhuma pista, mas achei que eles teriam mais sorte tentando encontrar as origens de "chamada de sub-rotina" ou "chamada de procedimento" do que "chamada de função", o que não faz sentido historicamente. Sei que o comentário não responde à pergunta, mas foi exatamente por isso que fiz um comentário e não uma resposta.
Doval
2
No cálculo lambda, você aplica uma função (e o operador lambda está fazendo abstrações ). Alguns idiomas falam em invocar , não chamar, uma função.
Basile Starynkevitch
2
Em alguns dialetos da linguagem assembly (como assembly x86), os códigos de operação são nomeados calle retou uma variante dos mesmos. É possível que as linguagens de programação tenham herdado a terminologia do hardware subjacente, embora isso ainda deixe a questão de por que os projetistas de hardware escolheram esses nomes para as operações.
David Conrad

Respostas:

15

A palavra chamada remonta pelo menos ao Fortran, a primeira linguagem de programação amplamente usada. No Fortran, CALLé uma palavra-chave que passa o controle para uma sub-rotina . Não está claro por que John Backus escolheu essa palavra para chamar sub-rotinas - talvez seja necessário ler uma ou mais biografias de Backus para descobrir isso - mas parece provável que o uso no Fortran seja o motivo pelo qual usamos a palavra chamada hoje com respeito a funções, métodos, etc.

Observe que o uso da chamada com relação a funções e outras sub-rotinas também se encaixa bem com várias definições de chamada no idioma inglês :

  • fazer uma breve visita
  • exigir algo
  • despertar do sono
  • convidar
Caleb
fonte
3
A OP quer saber por que CALL em primeiro lugar.
Tulains Córdova
5
Artigo de David Wheeler sobre a ACM de 1952 O uso de sub-rotinas em programas descreve o conceito, e eu apostaria que o uso do termo "chamada" evoluiu entre então e o aparecimento de CALLe RETURNno FORTRAN II em 1958, se não foi usado no próprio papel. (Eu sou demasiado barato para pagar a ACM $ 15 para descobrir.)
Blrfl
2
@Timo Embora eu não consiga apontar a origem do termo, meu objetivo com esta resposta foi aproximar você desse ponto. Saber o que CALLaparece nesse contexto em Fortran (criado em 1954) deve restringir significativamente a busca pela origem. O comentário de Blrfl acima parece um bom limite no início, então juntos reduzimos o período em que o termo parece ter entrado em uso por alguns anos.
Caleb
2
@ Caleb: CALLnão fazia parte da primeira versão do FORTRAN. Consulte a página 1 do Manual de referência do IBM Fortran II .
Blrfl
2
@Blrfl Passei os olhos pelo papel, ele não usa o termo callou qualquer outro termo, mas fala apenas de use ofsub-rotinas.
Lars Viklund