Language/Carbon
[Carbon] Value categories and value phases
모든 값에는 값 범주가 있다. 이 범주는 C++과 유사하며 흔히 알고 있듯 l-value(좌측값) 또는 r-value(우측값) 라고 부른다. (여기서 l-value, r-value가 무엇인지는 자세히 설명하지 않는다.) Carbon은 자동으로 l-value을 r-value으로 변환하지만 다른 방향으로는 변환하지 않습니다. 즉 r-value를 l-value로는 변환하지 않는다는 의미이다. l-value에는 메모리 저장을 위한 공간과 해당 공간의 주소가 존재하며 유형이 const(상수형)이 아니라면 l-value의 값은 수정될 수 있다. r-value는 r-value만을 위한 전용 저장 공간이 없을 수 있다. 즉, 수정이 불가능하며 일반적으로 해당 데이터의 주소를 가져올 수 없다. r-value는 value..
[Carbon] #1. Carbon의 자료형, 원시 타입 알아보기
Carbon Language는 지금도 지속적으로 발전 중이며 현재 기준(trunk)으로 정리된 내용을 전달한다. 많은 부분이 아직 컨셉이며 구현이 되어있지 않은 점(컨셉만 정리된 문법이 많음)을 이해하고, 내용은 지속적으로 변경될 수 있으며, 최대한 반영하려 노력하려 한다. Carbon의 자료형, 원시타입! Carbon은 C++언어와 매우 유사한 형태를 띄고 있으며, 자료형도 유사하다. Bool True 및 False 의 두 가지 가능한 값이 있는 타입이다. Int 및 UInt 부호 있는 및 부호 없는 64비트 정수 유형. 표준 크기는 i8, i16, i32, i64, i128 및 i256을 포함하여 부호 있는 및 부호 없는 모두 사용할 수 있고 오버플로우는 오류로 처리된다. Float64 IEEE-75..
[Carbon] #0. C++의 후계자 - Carbon
C++, 오래된 친구이자 적 C++은 1985년 처음 발표된 이후 최근에 C++20 버전까지 매우 오랫동안 전세계적으로 많이 사용되고 있는 언어이다. 지금은 아니지만 10여년 전까지만 해도 프로그래밍의 시작은 C/C++ 언어를 사용하여 시작하는 개발자들이 많았다.(지금은 Python이나 Web 관련 언어들이 더 많은 것 같다.) 오랜시간동안 무수히 많은 시스템 개발에 사용되었고, 지금도 널리 사용되고 있다. 특히 C++는 대규모의 코드베이스와 투자가 증가하면서 성능이 중요한 소프트웨어를 위한 지배적인 프로그래밍 언어로 군림해왔다. 하지만 너무 오랫동안 사용되고 다양한 요구사항을 받아들이다 보니 단점이 점점 커져가고 있다고 생각한다. 특히 기존에 구조에 새로운 기능 추가하기 위해서 매우 오랜시간이 소요된다..