¿De dónde viene la noción de 'llamar' a una función?

17

Siempre me he preguntado por qué uno llama a una función en lugar de, por ejemplo, ejecutarla .

Una búsqueda de Google function call etymologyy términos similares no resulta nada útil, Wikipedia no lo menciona, los diccionarios en línea no tienen ninguna entrada o ninguna sección de etimología .

¿De dónde viene la noción de 'llamar' a una función?

Timo
fuente
Probablemente proviene de las diferentes semánticas para manejar los argumentos: llamada por valor, llamada por referencia, llamada por nombre, etc. También imagino que el término se originó con "llamada a procedimiento" o "llamada a subrutina" y solo se aplicó a funciones más tarde. . En matemáticas, aplica funciones a sus argumentos, y lo que llamamos funciones son casi siempre procedimientos / subrutinas (porque las funciones matemáticas no tienen efectos secundarios).
Doval
@Doval: Sí, pero ¿por qué usar la misma "llamada" en "llamada al procedimiento" en lugar de un verbo diferente?
FrustratedWithFormsDesigner
2
@FrustratedWithFormsDesigner No tengo idea, pero pensé que tendrían más suerte tratando de encontrar los orígenes de la "llamada de subrutina" o "llamada de procedimiento" que "llamada de función", lo que no tiene sentido históricamente. Me doy cuenta de que el comentario no responde la pregunta, pero es precisamente por eso que hice un comentario y no una respuesta.
Doval
2
En el cálculo lambda, aplica una función (y el operador lambda está haciendo abstracciones ). Algunos idiomas hablan de invocar , no llamar, una función.
Basile Starynkevitch
2
En algunos dialectos del lenguaje ensamblador (como el ensamblaje x86) se nombran los códigos de operación cally / reto alguna variante de los mismos. Es posible que los lenguajes de programación hereden la terminología del hardware subyacente, aunque eso dejaría la pregunta de por qué los diseñadores de hardware eligieron esos nombres para las operaciones.
David Conrad

Respuestas:

15

La palabra llamada se remonta al menos a Fortran, el primer lenguaje de programación ampliamente utilizado. En Fortran, CALLes una palabra clave que pasa el control a una subrutina . No está claro por qué John Backus eligió esa palabra para invocar subrutinas (es posible que deba leer una o más biografías de Backus para descubrirlo), pero parece probable que el uso en Fortran sea la razón por la que usamos la palabra call hoy con respeto a funciones, métodos, etc.

Tenga en cuenta que el uso de la llamada con respecto a las funciones y otras subrutinas también encaja bien con varias definiciones de llamada en inglés :

  • hacer una breve visita
  • exigir algo
  • despertar del sueño
  • invitar
Caleb
fuente
3
OP quiere saber por qué LLAMAR en primer lugar.
Tulains Córdova
55
1952 ACM papel de David Wheeler El uso de sub-rutinas en los programas describe el concepto, y yo apostaría el uso del término "llamada" evolucionado desde entonces hasta la aparición de CALLy RETURNen FORTRAN II en 1958, si no se usa en el papel mismo (Soy demasiado barato para pagarle al ACM $ 15 para averiguarlo).
Blrfl
2
@Timo Aunque no puedo señalar el origen del término, mi objetivo con esta respuesta fue acercarte a ese punto. Saber que CALLaparece en este contexto en Fortran (creado en 1954) debería reducir significativamente la búsqueda del origen. El comentario anterior de Blrfl parece un buen límite en el lado inicial, por lo que juntos hemos reducido el período de tiempo en el que el término parece haber entrado en uso durante algunos años.
Caleb
2
@Caleb: CALLno era parte de la primera versión de FORTRAN. Consulte la página 1 del Manual de referencia de IBM Fortran II .
Blrfl
2
@Blrfl Hojeé el documento, no usa el término callni ningún otro término, solo habla sobre use ofsubrutinas.
Lars Viklund