3강 프로그램의 기계수준 표현(2)
CHAPTER 3 프로그램의 기계수준 표현 3.7 프로시저 프로시저 호출 : 스프트웨어에서의 주요 추상, 지정된 인자들과 리턴 값으로 특정 기능을 구현하는 코드를 감싸주는 방법을 제공 잘 설계된 소프트웨어 : 무슨 값이 게산되는가, 이 프로시저가 프로그램 상태에 무슨 효과를 갖는가 에 대한 간결한 인터페이스 정의 제공 일부 동작의 구체적인 구현은 감춰주는 방식으로 프로시저를 추상화 메커니즘으로 이용 ex. 프로시저 P가 프로시저 Q를 호출, Q가 실행한 후 다시 P로 리턴 제어권 전달 : 프로그램 카운터는 진입할 때 Q에 대한 코드의 시작주소로 설정되고, 리턴할 때는 P에서 Q를 호출하는 인스트럭션 다음의 인스트럭션으로 설정되어야 함 데이터 전달 : P는 하나 이상의 매개변수를 Q에 제공할 수 있어야 하며, Q는 다시 P로 하나의 값을 리턴할 수 있어야 함. 메모리 할당과 반납 : Q는 시작할 때 지역변수들을 위한 공간을 할당할 수도, 리턴할 때 이 저장소를 반납할 수 있음. 3.7.1 런타임 스택 C언어와 다른 대부분의 언어에서의 프로시저 호출 동작방식 : 스택 자료구조가 제공하는 후입선출 메모리 관리 방식을 활용 ...