Carbon Language는 지금도 지속적으로 발전 중이며 현재 기준(trunk)으로 정리된 내용을 전달한다.
많은 부분이 아직 컨셉이며 구현이 되어있지 않은 점(컨셉만 정리된 문법이 많음)을 이해하고,
내용은 지속적으로 변경될 수 있으며, 최대한 반영하려 노력하려 한다.
Carbon의 자료형, 원시타입!
Carbon은 C++언어와 매우 유사한 형태를 띄고 있으며, 자료형도 유사하다.
- Bool
- True 및 False 의 두 가지 가능한 값이 있는 타입이다.
- Int 및 UInt
- 부호 있는 및 부호 없는 64비트 정수 유형. 표준 크기는 i8, i16, i32, i64, i128 및 i256을 포함하여 부호 있는 및 부호 없는 모두 사용할 수 있고 오버플로우는 오류로 처리된다.
- Float64
- IEEE-754를 기반으로 하는 의미 체계가 있는 부동 소수점 유형이다.
- f16, f32 및 f128을 포함한 표준 크기를 사용할 수 있으며 16bit float형인 BFloat16도 제공된다.
- String
- UTF-8로 인코딩된 텍스트를 포함하는 것으로 처리되는 바이트 시퀀스이다. 쉽게 말해 문자열 타입이다.
- C++에서도 많이 사용했떤 StringView도 지원한다. StringView는 UTF-8로 인코딩된 텍스트를 포함하는 것으로 처리되는 바이트 시퀀스에 대한 읽기 전용 레퍼런스이다.
각 자료형에 대해 하나씩 상세하게 정리한다.
Bool
Bool 자료형은 True
와 False
두 가지의 값을 가지는 자료형이다. 비교 표현식에서는 Bool 값으로 결과를 제공한다. if 및 while과 같은 흐름 제어문의 조건인수와 if-then-else 조건식은 Bool 값을 사용한다.
정수형 (Integers)
정수형 타입은 C++과 유사하게 부호가 있거나 부호가 없는 타입으로 선언할 수 있다. 부호 있는 정수는 2의 보수를 사용하여 표현되며 개념적으로 무한한 자연수로 모델링된다. C++에서 많은 문제를 일으켰던 양방향 오버플로는 오류로 처리된다.(그럴 것으로 예상) 여기에는 C++와 달리 부호 없는 정수가 포함된다. Int
와 UInt
자료형은 기본 64비트 크기의 정수형을 의미하며, Int8, Int16, UInt32, Uint128, Int256과 같이 8 이상의 2의 거듭제곱의 비트 사이즈의 정수형을 지원한다.
정수형 상수로는 10, 16, 2진수를 지원하려 하고 있다.(컴파일러는 십진수만 컴파일 가능한 상황, 현재 2022-08-01 trunk 버전 기준)
부동소수형
부동 소수점 유형은 IEEE-754에서 제공하는 이진 부동 소수점 형식을 기반으로 한다. Float16, Float32, Float64 및 Float128을 지원한다.
문자열
문자열은 String
과 StringView
타입으로 나뉠 수 있다. String은 UTF-8로 인코딩된 텍스트를 처리하는 바이트 시퀀스이다. StringView는 String과 유사하지만 UTF-8로 인코딩된 텍스트를 포함하는 것으로 처리되는 바이크 시퀀스에 대한 읽기 전용 레퍼런스이다. C++을 사용하지 않는 개발자라면 String과 StringView의 차이를 이해하기 쉽지 않다. 그 부분은 여기서 다루지 않는다.
Reference
'Language > Carbon' 카테고리의 다른 글
[Carbon] Value categories and value phases (0) | 2022.08.21 |
---|---|
[Carbon] #0. C++의 후계자 - Carbon (0) | 2022.07.30 |