Release Notes

Changelog

지음의 버전별 변경 사항을 정리합니다.

v0.3

2026-04-15 latest

v0.2 연구 위에 코어 문법을 넓힌 단계. 메시지 프레임은 건드리지 않고, 제어 구문과 바인딩 표면 문법을 확장했다.

새 기능

가변/불변 바인딩

이다는 const(불변), 넣는다는 let(가변). 불변 이름에 바꾼다를 쓰면 리졸버 에러가 발생한다.

이름은 "철수"이다.          # const, 재대입 불가
점수에 0을 넣는다.          # let, 재대입 가능
점수를 점수 + 10으로 바꾼다.

단문 if-else

동사의 연결형 어미 ~고(돌려주고, 출력하고, 바꾸고)로 then절을 닫고 아니면으로 else절을 연결한다. 만약 prefix도 사용할 수 있다.

작은수 == 0이면 큰수를 돌려주고 아니면 최대공약수(작은수, 큰수 % 작은수)를 돌려준다

만약 숫자 > 0이면 "양수"를 출력하고 아니면 "음수"를 출력한다

가격이 10000보다 크면 "비싸다"를 출력하고 아니면 "괜찮다"를 출력한다

적용 바인딩

X를 Y한 것이다X으로 Y와 동일한 Y(X) 호출로 낮춰진다. 한국어 관형형 어미 으로 자연스러운 어순을 표현한다.

결과는 5를 두배한 것이다.
결과는 -7을 절대값한 것이다.

인덱스 대입

목록[인덱스]를 값으로 바꾼다 형태로 목록 원소를 제자리 수정한다. 상대적 변화(만큼 줄인다/늘린다)도 사용 가능하다.

숫자들은 [10, 20, 30]이다.
숫자들[1]을 99로 바꾼다.
숫자들[0]을 3만큼 줄인다.

for-each 반복문

<컬렉션>의 각각 <변수>에 대해 형태로 목록의 각 요소를 순회한다. while + 인덱스 패턴 없이 간결한 반복이 가능하다.

과일들은 ["사과", "배", "감"]이다.
과일들의 각각 과일에 대해
  과일을 출력한다.

존재 바인딩

<이름>에(는) <값>이/가 있다 형태로 불변 바인딩을 만든다. 이다와 동일한 const 의미이며, 컬렉션에 더 자연스러운 한국어 표면 문법을 제공한다.

냉장고에는 ["우유", "계란", "버터"]가 있다.
냉장고의 각각 재료에 대해
  재료를 출력한다.

버그 수정

  • 한국어 조사/키워드 과분리 수정 — 합격이면, 사이다 등이 잘못 분리되던 문제 해결 (P-1~P-3)
  • while 루프 반복간 스코프 격리 — 이전 반복의 바인딩이 다음 반복에 누출되던 문제 해결 (P-4)
  • 이면/이다 분리 회귀 수정 — P-3 수정 시 빠진 화이트리스트 복구
  • 재귀 깊이 가드 추가 — 무한 재귀 시 스택 오버플로우 대신 명확한 에러 메시지 출력

v0.2

2026-03-18 ~ 03-28 research

새 기능을 대량으로 연 버전이라기보다, 메시지 프레임의 해석 우선순위와 확장 정책을 고정한 단계.

실험 프레임

한국어 비교 조건

보다 크면/작으면/같으면/다르면으로 한국어 어순의 자연스러운 비교문.

점수가 60보다 크면
  "합격"을 출력한다.

상대적 변화

만큼 줄인다/늘린다로 값을 상대적으로 변경한다.

점수를 10만큼 늘린다.
체력을 5만큼 줄인다.

결과 서술 일반화

맨위 외에 맨뒤, 맨앞 요소 접근과 고른 것이다/고른다 선택 프레임을 추가했다.

첫번째는 목록에서 맨앞 요소를 꺼낸 것이다.
마지막은 목록에서 맨뒤 요소를 꺼낸 것이다.
선택은 목록에서 고른 것이다.

아키텍처

  • 실험 프레임을 내부적으로 receiver + selector + arguments 형태의 Send 공통형으로 설명하기로 확정
  • A의 B는 항상 속성 접근 우선, built-in noun message 해석은 lowering/runtime 단계로 위임
  • A으로 B는 모든 호출이 아닌 unary transform frame으로 제한
  • 상태 변경/결과 서술 프레임은 닫힌 built-in 집합으로 관리 확정

v0.1

~ 2026-03-17

문장형 코어와 실행 경로를 세운 단계. 지음의 첫 공개 버전.

코어

  • Rust 기반 lexer → normalizer → parser → resolver → HIR lowering → interpreter 파이프라인
  • 바인딩, 재대입, 출력, 쉬기, if/while, 함수 정의와 괄호 호출
  • 목록/레코드/인덱싱, 속성 접근
  • 실험 프레임: X으로 Y, X 더하기 Y, 에 추가, 레코드로 호출한다
  • 브라우저 WASM playground와 캔버스 하노이탑 데모
  • CLI / REPL, structured diagnostics