Skip to content

로드맵 #1

@RanolP

Description

@RanolP

v0.1.0

간단한 브론즈 문제를 풀 수 있다. ✅
  • 정수의 입출력을 할 수 있다
    • 입력 구문 구현
    • 출력 구문 구현
  • 정수의 사칙연산을 할 수 있다
    • 표현식 구현
      • 사칙연산 구현
  • psl 런타임과 함께 C로 컴파일할 수 있다
    • 코드젠 구현
    • 런타임 구현

v0.1.1

조건문을 사용할 수 있다. ✅

v0.1.2

반복문을 사용하여 n번째 피보나치 수를 구할 수 있다.. ✅

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions