Show GN: 지음(ziium) - 한국어 문장 구조로 코드를 쓰는 프로그래밍 언어
(ziium.github.io)한국어 조사와 서술어를 문법 요소로 활용하는 실험적 프로그래밍 언어.
기존 언어의 키워드를 한글로 번역하는 방식이 아니라,
한국어 화자가 읽고 쓰는 흐름에 가까운 표면 문법을 목표로 한다.
Rust로 구현, WebAssembly 브라우저 플레이그라운드 포함.
코딩 처음 배울 때부터 상상만 해봤던 건데, 코덱스 도움 받아서 이렇게 만들어보게 됐습니다.
실용성은 아마 없을 것 같고.. 이런저런 문법들을 실험 중입니다.
핵심은 "한글 키워드 치환"이 아니라 한국어 문장 흐름을 살리는 거였는데,
예를 들면 이런 코드가 됩니다:
이름은 "철수"이다.
나이는 20이다.
나이 > 19이면
"성인이다"를 출력한다.
아니면
"미성년자이다"를 출력한다.
조사가 문법적으로 의미를 갖습니다.
은/는은 바인딩, 을/를은 대상, 의는 속성 접근, 으로는 변환 프레임이에요.
그래서 합은 7 더하기 8이다나 결과는 5의 제곱이다 같은 것도 됩니다.
함수도 한국어 문장 형태로 정의하고 호출합니다:
인사만들기 함수는 이름을 받아
"안녕, " + 이름 + "!"을 돌려준다.
인사문장은 "지음"으로 인사만들기이다.
캔버스 그래픽도 됩니다:
그림판에 { 배경색: "#f6efe2" }으로 지우기.
그림판에 { x: 120, y: 80, 색: 빨강 }으로 점찍기.
내부적으로는 Smalltalk 스타일의 메시지 전송 모델을 쓰고 있어서,
표면은 한국어인데 의미 구조는 꽤 엄격합니다.
Rust로 만들었고, wasm-pack으로 브라우저 플레이그라운드도 돌아갑니다.
하노이탑 캔버스 데모까지는 되는 상태입니다.
아직 v0.1이라 부족한 게 많지만, 피드백 주시면 감사하겠습니다.
나이 > 19이면 부분도 나이가 19보다 크면으로 만들 수 있지 않을까요 이/가 앞 부분과 보다 앞 부분을 각각 좌변과 우변으로 해석하면 될 듯싶어요 ≥는 크거나 같으면 또는 이상이면(대신 이 경우는 보다를 쓰지 않고, 즉 나이가 19 이상이면 이런 식으로 표현해야 하긴 하겠네요 그러면 이/가를 기준으로 좌우를 구별해야 하니 조금 해석할 때 복잡도가 올라가겠네요)
정말 좋습니다!
얼마전에도 '한' 이라는 언어가 올라왔을때 이 누리라는 언어의 소개가 언급이 있었습니다.
https://github.com/suhdonghwi/nuri/
누리라는 언어도 자연스레 한국어와 같은 어순으로 하더군요.
지음 언어도 자연스런 문장이라 읽기도 쉽습니다. 좀더 나아가:
나이 > 19이면
"성인이다"를 출력한다.
아니면
"미성년자이다"를 출력한다.
=> 나이가 19살 이상이면 '성인이다'출력하고, 아니면 '미성년이다'라고 출력한다.
이렇게 할수 있다면 완벽한 한국어가 되겠습니다.