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