- 한글 키워드로 작성되는 정적 타입의 컴파일형 언어로, LLVM IR을 통해 네이티브 바이너리를 생성함
- Rust로 구현된 컴파일러와 인터프리터를 모두 제공하며,
hglCLI로 빌드·실행·REPL·LSP 기능을 지원함 -
함수,만약,반복,변수등 모든 키워드가 한국어이며, 변수명과 함수명도 한글로 정의 가능함 - 파일 입출력, JSON, HTTP, 정규식, 날짜/시간, 시스템 호출 등 실용적 기능을 내장하고, 예제 18개를 포함함
- 한글의 과학적 구조와 문화적 확산을 프로그래밍 언어로 구현해, 한국어 학습과 코딩을 결합한 새로운 시도로 주목받음
Han 언어 개요
- Han은 한국어 키워드로 작성되는 정적 타입 컴파일 언어로, LLVM IR을 통해 네이티브 바이너리를 생성함
- Rust로 작성된 컴파일러 툴체인과 트리 워킹 인터프리터를 포함
-
hgl명령어로 인터프리터 실행, 빌드, REPL, LSP 서버 구동 가능
- 모든 키워드가 한글로 구성되어 있으며, 예:
함수,만약,반복,변수,출력등 - 한글의 과학적 문자 체계를 프로그래밍 언어로 구현해, 언어적 아름다움과 기술적 정밀성의 결합을 목표로 함
주요 기능
- 한글 키워드 및 식별자 지원: 변수명, 함수명, 구조체명 등을 한글로 작성 가능
-
정적 타입 시스템:
정수,실수,문자열,불,없음의 5가지 기본 타입 제공 - 컴파일 및 인터프리터 모드: LLVM IR → clang → 바이너리 생성 또는 즉시 실행
-
REPL 및 LSP 서버:
hgl repl,hgl lsp명령으로 대화형 실행과 코드 완성 지원 -
내장 기능
- 배열, 구조체, 클로저, 패턴 매칭, 예외 처리, 제네릭
- 파일 I/O, JSON, HTTP, 정규식, 날짜/시간, 시스템 호출
- 형식 문자열, 해시맵, 수학 내장 함수
- 예제 프로그램 18개 포함: Hello World, HTTP API 호출 등
설치 및 실행
- 필수 구성요소: Rust(1.70+), clang
- 설치 절차
-
git clone https://github.com/xodn348/han.git -
cd han && cargo install --path .
-
- VS Code 확장 제공: 구문 강조 및 LSP 지원
-
CLI 명령어
-
hgl interpret <file.hgl>— 인터프리터 실행 -
hgl build <file.hgl>— 네이티브 바이너리 컴파일 -
hgl run <file.hgl>— 컴파일 후 즉시 실행 -
hgl repl— 대화형 모드 -
hgl lsp— LSP 서버 실행
-
현재 구현 상태
-
완전 동작 기능
- 데이터 타입, 제어 흐름, 함수, 문자열, 배열, 해시맵, 구조체, 오류 처리, 타입 검사
- JSON, HTTP, 정규식, 날짜/시간, 시스템, 파일 I/O, 수학 함수, 모듈, 제네릭
-
부분 구현 기능
-
hgl build시 클로저·문자열·배열 메서드의 코드 생성은 미완성
-
-
미구현 기능
- Null 안전성(
Option타입 없음), 비동기/병렬 처리, 가비지 컬렉션, 꼬리 재귀 최적화
- Null 안전성(
한글과 프로그래밍
- 한글은 음운 구조를 시각적으로 표현한 과학적 문자 체계로, 세종대왕이 1443년에 창제
- Han은 이러한 한글의 구조적 명료함을 코드 문법에 반영함
- 전 세계적으로 1,600만 명 이상이 한국어를 학습 중이며, Han은 코딩을 통한 한글 학습 수단을 제공함
- 예시 키워드
-
함수(function),만약(if),반복(for),반환(return),변수(variable),출력(print) 등
-
설계 및 구조
-
Rust 기반 컴파일러 파이프라인
- Lexer → Parser → AST → Interpreter / CodeGen → LLVM IR → clang → Binary
-
프로젝트 구조
-
src/— 핵심 컴파일러 및 인터프리터 코드 -
editors/vscode/— VS Code 확장 -
examples/,spec/,tests/포함
-
-
설계 선택 이유
- LLVM C API 대신 텍스트 기반 IR 생성으로 빌드 단순화
- 인터프리터는 빠른 실행, 컴파일러는 성능 중심
- Rust의 패턴 매칭과 메모리 안전성이 언어 구현에 적합
테스트 및 라이선스
-
cargo test로 46개 테스트(단위 41개, 통합 5개) 수행 - MIT 라이선스로 공개됨
문화적 의의
- Han은 한글의 아름다움과 프로그래밍의 정밀성을 결합한 실험적 언어
- 한국어 학습자와 개발자 모두에게 언어와 코드의 경계를 허무는 새로운 접근을 제시함