우리는 앞서 어셈블리어 수준에서 서브 루틴이라는 것이 무엇이고, 어떻게 구현하는지 알아본 바 있다. 그러한 서브 루틴을 프로그래머가 쉽게 구현하고 사용할 수 있도록 고급 언어가 제공하는 기능이 바로 함수(Function)이다. 함수는 이전 포스팅에서 말했듯, 빈번히 사용되는 코드들의 뭉치를 추상화하여 그 활용성을 높인 것이다. 따라서 프로그래머는 함수라는 고급 언어의 기능을 활용하면 더욱더 직관적이고 효율적으로 프로그래밍을 할 수 있다. 그리고 고급 언어의 함수는 컴파일러에 의해 어셈블리어 수준의 서브 루틴으로 번역이 되는데, 그 구체적인 번역 과정에 대해서도 이번 포스팅에서 다룰 것이다. 고급 언어의 함수가 내부적으로 어떻게 구현이 되는지를 이해하는 것은 상당히 중요하므로 이번 포스팅은 꼼꼼히 읽어보기..