9가지 프로그래밍 언어로 배우는 개념: 4편 - 하이 레벨 언어와 동적 타입 언어
·2023.01.12 09:00
하이 레벨 언어는 가비지 컬렉터를 통한 메모리 관리와 레퍼런스 기반의 타입 저장 방식을 특징으로 한다.
프로그래밍 언어는 메모리 관리 방식에 따라 하이 레벨과 로우 레벨로 구분된다. C처럼 메모리를 직접 관리하면 로우 레벨, **가비지 컬렉터(Garbage Collector)**를 사용하면 하이 레벨로 분류된다.
하이 레벨 언어의 핵심 특징은 대부분의 타입이 레퍼런스(Reference) 형태로 저장된다는 점이다. Java의 경우 클래스 인스턴스를 변수에 대입할 때 인스턴스 자체가 아닌 레퍼런스가 복사되어, 여러 변수가 동일한 인스턴스를 가리키게 된다.
반면 C/C++의 **값 타입(Value Type)**은 인스턴스 자체를 복사한다. 값 타입은 성능 최적화와 메모리 관리의 간편함을 제공하지만, 타입마다 요구하는 메모리 크기가 달라 업캐스팅 및 다운캐스팅 시 제약이 발생한다.
레퍼런스 타입은 인스턴스 크기와 상관없이 일정한 메모리 주소(32비트 4바이트, 64비트 8바이트)를 저장하므로 계층 구조 간 캐스팅이 자유롭다. 반면 값 타입은 메모리 크기 차이로 인해 Variance(변성) 규칙을 적용하는 데 어려움이 있다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.