Пятиминутка ИТ-истории А вы когда-нибудь задумывались, почему функции вызывают? Это выражение используется, кажется, применительно ко всем языкам программирования, где вообще есть функции, которые можно вызывать. Оно стало таким привычным, что многие вряд ли задумываются, откуда оно взялось. Очевидно, что в русский язык выражение пришло из английского, а откуда там появилось «call function»? 🔜 История термина начинается с XIX веке — но с изысканий Ады Лавлейс, а в библиотеке. В 1876 году в Oxford English Dictionary впервые упоминается термин__ call number__ — номер, под которым книга значится в библиотечном каталоге. 🔜 После этого первые упоминания «вызова» и «библиотеки» подпрограмм встречаются в 1947 в статье Preparation of problems for EDVAC-type machines: […] the position in the memory at which arguments are placed can be standardized, so that whenever a subroutine is called in to perform a calculation, the subroutine will automatically know that the argument which is to be used is at a specified place. […] Some of them might be written out in a handbook and transferred to the coding of the problem as needed, but those of any complexity presumably ought to be in a library — that is, a set of magnetic tapes in which previously coded problems of permanent value are stored. […] позицию в памяти, где размещаются аргументы, можно стандартизировать так, чтобы при вызове подпрограммы для выполнения вычислений она автоматически знала, что необходимый аргумент находится в определенном месте. […] Некоторые из них можно было бы записать в справочник и вручную вставлять в код по необходимости, но более сложные следует хранить в библиотеке — то есть в наборе магнитных лент с закодированными задачами. Возможность вызвать подпрограмму для выполнения какой-то функции упоминается еще в нескольких других источниках середины прошлого века — например, в мануале FORTRAN II от 1958 года: Each [CALL statement] will constitute a call for the defining subprogram, which may carry out a procedure of any length or complexity […] [The CALL] statement causes transfer of control to the subroutine NAME and presents the subroutine with the arguments, if any, enclosed in parentheses. Каждый [оператор CALL] производит вызов определенной подпрограммы, которая может выполнить операцию любой длины и сложности […] Оператор CALL передает управление подпрограмме с указанным именем и передает ей аргументы, заключенные в скобки. Больше примеров — у автора оригинального поста. Также он подчеркивает, что хотя слово «вызов» применительно к подпрограммам используется регулярно, целиком знакомое нам выражение «вызвать подпрограмму» встречается в 1961 в документе Burroughs Algebraic Compiler: The ENTER statement is used to initiate the execution of a subroutine (to call a subroutine). Оператор ENTER используется, чтобы начать выполнение подпрограммы (то есть чтобы вызывать подпрограмму). Вот такая ИТ-лингвистика. А вы знали историю термина? 👀