메모리 관리
- 메모리 관리는 인터프리터의 주요 기능 중 하나이다.
- 프로그램이 실행되는 동안 다양한 정보가 생성되어 메모리에 로드되거나 저장된다.
- 예) 지역 변수의 값, 표현식의 임시 값, 함수의 인수 및 반환 값 등.
- 따라서 프로그래밍 언어에서 이러한 메모리 액세스를 처리하는 방법을 결정하는 것이 필요하다.
서브프로그램(Subprogram)
- 서브프로그램은 프로시저, 함수, 루틴, 서브루틴과 동의어이다.
- 실행을 위해 호출할 수 있는 프로그램의 일부
- 모두 서브프로그램의 개념을 표현하기 위해 사용
- 일부 언어에서는 의미가 다를 수 있지만 동일한 것으로 간주한다.
- 이 과정에서는 대부분 프로시저/함수를 같은 의미로 사용한다.
- 이론적으로 둘 사이의 차이점은 함수가 반환 값을 갖는 하위 프로그램이라는 것
스택(Stack)
- 데이터를 쌓아놓은 데이터 구조
- 상자를 데이터로 간주
- 상자를 쌓을 때 파란색 상자가 보라색 상자 전에 놓였으면,
- 보라색 상자를 먼저 선택할 때까지는 파란색 상자를 꺼낼 수 없다.

- 먼저 삽입된 데이터가 나중에 추출된다.
- LIFO(LastIn, FirstOut) : 후입선출
- 데이터를 스택에 푸시(push)하고 스택에서 마지막으로 푸시된 데이터를 팝(pop)할 수 있다.
스택 및 프로시저
- 스택은 LIFO에서 활성화되므로 자연스럽게 프로시저에 적합하다.
- 마지막으로 입력된 프로시저나 블록이 가장 먼저 종료된다.
- 환경 변화도 이런 방식으로 처리될 수 있다.

힙(Heap)
- 힙은 우선순위 큐나 힙 정렬과 관련된 데이터 구조이다.
- 그러나 프로그래밍 언어에서 힙은 프로그램에 할당할 수 있는 메모리의 특정 위치이다.
- 따라서 이 경우 데이터 구조 힙에 대한 명확한 연결이 없다.
'프로그래밍언어론' 카테고리의 다른 글
[프로그래밍언어론] 16. 동적 관리(Dynamic Management) (0) | 2023.10.11 |
---|---|
[프로그래밍언어론] 15. 정적 관리(Static Management) (0) | 2023.10.11 |
[프로그래밍언어론] 13. 가시성 규칙(Visibility Rules), 범위 규칙(Scope Rules) (0) | 2023.10.10 |
[프로그래밍언어론] 12. 블록(Block), 환경(Environment) (0) | 2023.10.10 |
[프로그래밍언어론] 11. 이름(Name), 바인딩(Binding) (1) | 2023.10.10 |
메모리 관리
- 메모리 관리는 인터프리터의 주요 기능 중 하나이다.
- 프로그램이 실행되는 동안 다양한 정보가 생성되어 메모리에 로드되거나 저장된다.
- 예) 지역 변수의 값, 표현식의 임시 값, 함수의 인수 및 반환 값 등.
- 따라서 프로그래밍 언어에서 이러한 메모리 액세스를 처리하는 방법을 결정하는 것이 필요하다.
서브프로그램(Subprogram)
- 서브프로그램은 프로시저, 함수, 루틴, 서브루틴과 동의어이다.
- 실행을 위해 호출할 수 있는 프로그램의 일부
- 모두 서브프로그램의 개념을 표현하기 위해 사용
- 일부 언어에서는 의미가 다를 수 있지만 동일한 것으로 간주한다.
- 이 과정에서는 대부분 프로시저/함수를 같은 의미로 사용한다.
- 이론적으로 둘 사이의 차이점은 함수가 반환 값을 갖는 하위 프로그램이라는 것
스택(Stack)
- 데이터를 쌓아놓은 데이터 구조
- 상자를 데이터로 간주
- 상자를 쌓을 때 파란색 상자가 보라색 상자 전에 놓였으면,
- 보라색 상자를 먼저 선택할 때까지는 파란색 상자를 꺼낼 수 없다.

- 먼저 삽입된 데이터가 나중에 추출된다.
- LIFO(LastIn, FirstOut) : 후입선출
- 데이터를 스택에 푸시(push)하고 스택에서 마지막으로 푸시된 데이터를 팝(pop)할 수 있다.
스택 및 프로시저
- 스택은 LIFO에서 활성화되므로 자연스럽게 프로시저에 적합하다.
- 마지막으로 입력된 프로시저나 블록이 가장 먼저 종료된다.
- 환경 변화도 이런 방식으로 처리될 수 있다.

힙(Heap)
- 힙은 우선순위 큐나 힙 정렬과 관련된 데이터 구조이다.
- 그러나 프로그래밍 언어에서 힙은 프로그램에 할당할 수 있는 메모리의 특정 위치이다.
- 따라서 이 경우 데이터 구조 힙에 대한 명확한 연결이 없다.
'프로그래밍언어론' 카테고리의 다른 글
[프로그래밍언어론] 16. 동적 관리(Dynamic Management) (0) | 2023.10.11 |
---|---|
[프로그래밍언어론] 15. 정적 관리(Static Management) (0) | 2023.10.11 |
[프로그래밍언어론] 13. 가시성 규칙(Visibility Rules), 범위 규칙(Scope Rules) (0) | 2023.10.10 |
[프로그래밍언어론] 12. 블록(Block), 환경(Environment) (0) | 2023.10.10 |
[프로그래밍언어론] 11. 이름(Name), 바인딩(Binding) (1) | 2023.10.10 |