#noindex ''pagename:'' ''* calling이 아니라 call도 ok?'' ''* aka function_call ? invocation / invoke ?'' ... chkout WtEn:calling WtEn:call WtEn:invocation WtEn:invoke ... Terms [[caller]] { 호출자? } [[callee]] { 피호출자? } Sub: [[호출스택,call_stack]] =,call_stack . [[시스템_호출,system_call]] =,system_call . asynchronous call vs synchronous call Ggl:"asynchronous call synchronous call" [[call_site]] =,call_site . { call site https://en.wikipedia.org/wiki/Call_site Ndict:"call site" Ggl:"call site" } [[호출그래프,call_graph]] =호출그래프,call_graph =,call_graph . 호출그래프 call_graph (w) { '''call graph''' https://en.wikipedia.org/wiki/Call_graph Up: [[제어흐름그래프,control-flow_graph,CFG]] REL? [[실행,execution]] [[호출,call]] [[software_visualization]] =,software_visualization . software_visualization { WpEn:Software_visualization } } // call graph Ndict:"call graph" Naver:"call graph" Bing:"call graph" Ggl:"call graph" [[calling_convention]] =,calling_convention . calling_convention { 호출규약 ? - 이 번역어 대세인 듯 하고 기타 가능한 번역은 호출관습 , 호출관례 , 종류가 상당히 다양. 인자(parameter argument) 전달순서 : 왼쪽부터 or 오른쪽부터 [[레지스터,register]]를 쓰기도 하고 [[스택,stack]]([[호출스택,call_stack]])을 쓰기도 하고 둘다 쓰기도 하고 etc. TBW [[스택프레임,stack_frame]]은 누가 정리할 것인가? caller or callee ? 등으로 여러 가지. bmks ko http://hyacinth.byus.net/moniwiki/wiki.php/C%2B%2B/콜링%20컨벤션%20차이 Twins: WpKo:호출_규약 WpEn:Calling_convention } Rel [[binary_interface]] "binary interface" Ggl:"binary interface" Naver:"binary interface" [[application_binary_interface]] (ABI) application binary interface "application binary interface" Ggl:"application binary interface" Ndict:"application binary interface" // 표현을 normalize하면 좋을텐데.. 혹시 call by value 는 명사구, call-by-value 는 형용사구 ?? 아님 근거없는생각임? call_by_value call-by-value (CBV) fine-grain call-by-value (FGCBV) https://www.pls-lab.org/en/Fine-grain_CBV call_by_push_value call-by-push-value CBPV ? call_by_reference call-by-reference CBR ? [[참조,reference]] call_by_address call-by-address CBA ? [[주소,address]] [[메모리,memory]]주소 [[메모리주소,memory_address]] call_by_name call-by-name [[이름,name]] [[식별자,identifier]] ... [[tail_call_optimization]] = [[last_call_optimization]] { https://foldoc.org/last+call+optimisation [[최적화,optimization]] } MKLINK [[스택프레임,stack_frame]] { MKLINK [[호출스택,call_stack]] - call stack frame ? } RPC remote procedure call https://zetawiki.com/wiki/원격_프로시저_호출_RPC call gate [[call_gate]] =,call_gate . call_gate privilege_escalation 맞나? WtEn:call_gate x [[Date(2023-08-20T14:04:13)]] https://ko.wikipedia.org/wiki/콜_게이트 https://en.wikipedia.org/wiki/Call_gate_(Intel) https://en.wikipedia.org/wiki/Call_gate_%28Intel%29 .... ADDHERE ---- MKLINK [[API]] [[ABI]] [[라이브러리,library]] [[메소드,method]] [[펑션,function]] [[subroutine]] or [[routine]] 서브루틴 루틴 [[주소,address]] esp [[메모리주소,memory_address]] '''호출'''의 대상은? QQQ 일반적으로는 [[API]] [[라이브러리,library]] ...? 일단 알아보기 전에 생각나는 건 distributed가 아닌 상황에서는 같은 machine의 function method subroutine procedure ... 환경에 따라 반드시 어떤 이름지어진(named) / [[식별자,identifier]]가 있는 / ... 게 아닌 임의의 [[메모리주소,memory_address]]를 호출하는 것도 가능하고 (위험) 그것이 실행환경? 에 의해 막힌 경우가 대부분일테고 distributed 상황에서는 RPC RMI 같은 - or Ggl:RESTful+API , Ggl:web+api , ... 뭐 이런 - 이때는 remote machine i.e. [[서버,server]] ? 항상 [[웹서버,web_server]]는 아니겠고.. Google:API+server Google:api+provider ? [[스텁,stub]] [[이벤트,event]] - 이벤트를 발생시킨다 = 이벤트를 호출한다 - 어떤 func/method를 call함으로써? ... Google:호출+call Naver:호출+call