스택: 2개의 글
자바 가상머신은 가상머신이 필요로하는 기능 명세서를 구현한 것 중에 하나이다. 따라서 가상머신의 구현체는 명세서를 어떻게 구현하냐에 따라 여러 종류가 있을 수 있다. 가상머신은 일반적으로 어떤 것들을 구현해야할까? 물리적인 CPU에 의해 처리되는 동작들을 흉내낼 수 있어야 한다. 즉, 아래와 같은 컨셉들을 가지고 있어야 한다. [가상머신이라면 구현해야할 컨셉] - 소스 코드를 VM이 실행가능한 바이트 코드로 변환한다. - 명령어와 피연산자를 포함하는 데이터구조를 가지고 있어야 한다. - 함수를 실행하기 위한 콜 스택 - IP(Instruction Pointer) : 다음 실행할 곳을 지정하는 포인터 - 가상 CPU : 다음 명령어를 패치 & 명령어를 해석 & 명령을 실행 위와 같은 명세를 만족하는 가상머..
스택 (Stack) 스택(Stack)은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO- Last In First Out)으로 되어있습니다. 자료를 넣는 것을 PUSH라고 하고 넣어둔 자료를 꺼내는 것을 POP이라고 합니다. ■ 스택 입/출력 방식 실제로 스택이 어떤 식으로 자료가 입/출력 되는지 살펴 보겠습니다. 상자안에 책을 쌓는다고 생각을 하면 됩니다. 즉 가장 먼저 넣은 책은 가장 나중에 꺼낼 수 있으며, 가장 최근에 넣은 책을 가장 먼저 뺄수 있습니다. 가장 먼저 5를 PUSH 합니다. 스택 자료 구조에 가장 아래에 위치하게 됩니다. 차례대로 PUSH 4, PUSH 3을 한 결과입니다. POP 2회를 실시하게 되면 출력 결과는 3,4가 됩니다. 즉 3은 가장 나중에 입력 되었지만 ..