함수를 호출한다는 개념은 어디에서 왔습니까?


17

나는 왜 예를 들어 함수를 실행 하는 것과 달리 함수를 호출 하는지 궁금해 했습니다.

구글 검색 function call etymology과 유사한 용어 회전 유용 아무것도까지, 위키 백과 그것을 언급하지 않는, 온라인 사전 중 하나가 없다 전혀 항목 또는 어떤 어원 섹션을 .

함수를 호출한다는 개념은 어디에서 왔습니까?


값으로 호출, 참조로 호출, 이름으로 호출 등의 인수를 처리하기위한 다른 의미에서 비롯된 것일 수도 있습니다. 또한 "프로 시저 호출"또는 "서브 루틴 호출"로 시작된 용어가 나중에 함수에만 적용되었다고 생각합니다. . 수학에서는 함수를 인수에 적용하며 함수라고하는 것은 거의 항상 프로 시저 / 서브 루틴입니다 (수학적 함수에는 부작용이 없기 때문에).
Doval

@Doval : 예. 왜 다른 동사 대신 "프로 시저 호출"에서 "전화"를 사용합니까?
FrustratedWithFormsDesigner

2
@FrustratedWithFormsDesigner 실마리는 없지만 역사적으로 의미가없는 "함수 호출"보다 "서브 루틴 호출"또는 "프로 시저 호출"의 출처를 찾으려고하는 것이 더 좋은 방법이라고 생각했습니다. 나는 그 의견이 그 질문에 대한 답이 아니라는 것을 알고 있지만, 그것이 내가 왜 대답이 아닌 의견을 제시 한 이유입니다.
Doval

2
람다 미적분 에서 함수 를 적용 합니다 ( 람다 연산자는 추상화합니다 ). 어떤 언어 는 함수를 호출하지 않고 호출 하는 것을 말합니다 .
Basile Starynkevitch

2
어셈블리 언어의 일부 방언 (예 : x86 어셈블리)에서는 opcode의 이름 callret/ 또는 그 변형이 있습니다. 프로그래밍 언어가 기본 하드웨어에서 용어를 물려 받았을 수 있지만, 하드웨어 디자이너가 왜 작업을 위해 그 이름을 선택했는지에 대한 의문을 남길 수 있습니다.
David Conrad

답변:


15

이라는 단어 는 적어도 가장 널리 사용되는 프로그래밍 언어 인 포트란으로 돌아갑니다. 포트란에서 CALL입니다 서브 루틴으로 제어를 전달하는 키워드 . 이유는 분명하지 않다 존 배 커스는 당신이 발견하는 배 커스의 하나 또는 그 이상의 전기를 읽어 들일 필요가 있습니다 - - 서브 루틴을 호출하는 그 단어를 선택하지만, 포트란의 사용은 우리가 단어를 사용하는 이유 것으로 보인다 전화 오늘은 기능, 방법 등에 대한

함수 및 기타 서브 루틴과 관련하여 호출 을 사용 하면 여러 가지 영어 호출 정의에 적합 합니다 .

  • 잠깐 방문하다
  • 무언가를 요구하다
  • 잠에서 깨다
  • 초대

3
OP는 왜 전화를해야하는지 알고 싶어합니다.
Tulains Córdova

5
데이비드 휠러 (David Wheeler)의 1952 ACM 논문 프로그램에서 서브 루틴을 사용하는 것은 개념을 설명하고, "호출"이라는 용어를 사용하지 않았다면 1958 년에 FORTRAN II 의 출현 CALL과 출현 사이에 진화 RETURN했다고 생각합니다. 종이 자체에서. (나는 ACM에게 $ 15를 지불하기에 너무 싸다.)
Blrfl

2
@ 티모 (Timo) 용어의 기원을 가리킬 수는 없지만이 대답의 목표는 그 점에 더 가까이 다가가는 것이 었습니다. CALLFortran (1954 년에 만들어 짐)에서 이러한 맥락에서 나타나는 것을 알면 원점 검색 범위가 크게 좁혀 져야합니다. 위의 Blrfl의 의견은 초기에 좋은 경계처럼 보였으므로 함께 우리는이 용어가 몇 년 동안 사용되는 것처럼 보이는 기간을 좁혔습니다.
Caleb

2
@Caleb : CALLFORTRAN의 첫 번째 버전에 포함되지 않았습니다. IBM Fortran II 참조 서 의 1 페이지를 참조하십시오 .
Blrfl

2
@Blrfl 나는 종이를 훑어 보았지만, 용어 call또는 다른 용어를 사용하지 않고 주로 use of서브 루틴에 대해서만 이야기 합니다.
Lars Viklund
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.