-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
v0.1.0
간단한 브론즈 문제를 풀 수 있다. ✅
- 정수의 입출력을 할 수 있다
- 입력 구문 구현
- 출력 구문 구현
- 정수의 사칙연산을 할 수 있다
- 표현식 구현
- 사칙연산 구현
- 표현식 구현
- psl 런타임과 함께 C로 컴파일할 수 있다
- 코드젠 구현
- 런타임 구현
v0.1.1
조건문을 사용할 수 있다. ✅
-
if문을 사용할 수 있다.multiline if는 추후 지원, if 식 사용 If 표현식 #3 - bool 타입을 사용할 수 있다.
- 비교 연산자를 사용할 수 있다. 다양한 이항 연산 추가 #4
v0.1.2
반복문을 사용하여 n번째 피보나치 수를 구할 수 있다.. ✅
- while 문을 사용할 수 있다 while 구문 구현 #27
- 정수 리터럴을 사용할 수 있다. 정수 리터럴 구현 #28
- 대입 구문을 사용할 수 있다. 대입문 구현 #29
v0.1.3
함수를 선언하고, 호출할 수 있다. ✅
- 함수를 선언할 수 있다.
- 선언한 모든 함수는 forward decl되고, 구현이 top-level로 추출되는 코드젠을 구현한다.
- 함수를 호출할 수 있다.
v0.2.0
핵심 목표: 타입 체크가 되고, 오류 메시지를 볼 수 있다.
- diagnostics crate를 분리한다
- 컴파일러 diagnostics 시스템을 구현한다.
- Visitor 작성 구조를 개선한다
- TypeCheckPass를 만든다
v0.3.0
핵심 목표: 표준 라이브러리가 존재할 수 있다.
세부 목표
- 모듈 시스템을 구현한다.
- 정의되지 않은 외부 심볼에 접근할 수 없도록 한다.
- 일부 테스트용 std를 구현한다. (min, max 등)
아직 순서 안 정한 것
- 입출력에 파서 콤비네이터를 사용할 수 있다
- 내장 파서 콤비네이터인 skip_whitespace, eof, 문자 리터럴 등을 사용할 수 있다
- 자명한 경우에 한해 변수 타입 추론(auto)를 사용할 수 있다
- 문자열을 다룰 수 있다
- utf-8 문자열을 다룰 수 있다
- 벡터를 다룰 수 있다
- 상수 제너릭으로 벡터를 배열만큼의 비용만으로 쓸 수 있다
- numpy식 reshape 고려
- 레퍼런스를 만들 수 있다
- 제너릭을 사용할 수 있다
- 상수 제너릭을 사용할 수 있다
- 부동 소숫점을 사용할 수 있다
- bigint/bigdecimal을 사용할 수 있다
- 다형성을 사용할 수 있다
- for 문을 사용할 수 있다
- 구조체를 사용할 수 있다
- 람다를 사용할 수 있다
- inline(always) 등의 attribute를 사용할 수 있다
- typealias를 만들 수 있다
- 비주얼 디버깅을 할 수 있다
- directive를 지정할 수 있다 (i/o 버퍼 크기 등)
- const 표현식을 사용할 수 있다
- extern, compiler intrinsic을 적절히 기술할 수 있다
- language server가 존재한다
- 커스텀 타입 +는 배경색이 다르게?
- Jupyter Notebook에서 사용할 수 있다
Metadata
Metadata
Assignees
Labels
No labels