Skip to content

Releases: sejunch/hanlang

Release list

한랭 0.1.0

Choose a tag to compare

@sejunch sejunch released this 31 Oct 04:02

한랭의 첫 공개판. 조사가 인자 이름표가 되는 한글 프로그래밍 언어로, 컴파일러는 한랭으로 짜여 있고(셀프호스팅) x86-64 기계어로 컴파일한다.

가와 나를 더하다 란 { 가 + 나를 돌려주다. }
(3과 4를 더하다)를 말하다.

설치 (리눅스 x86-64)

아래 hanlang-0.1.0-linux-x86_64.tar.gz 를 받아 풀고:

bin/han examples/demo.han            # 컴파일하고 바로 실행
bin/hanc 프로그램.han -o 프로그램      # 실행 파일 만들기

필요한 건 gcc 뿐. 창(X11·Xft)·GPU(Vulkan)·소리(ALSA)·인터넷 요청(libcurl)은 그 기능을 쓰는 프로그램만 링크한다.
소스로 빌드하려면 make (bootstrap/hanc.s 를 gcc 로 링크 — 다른 컴파일러가 필요 없음).

들어 있는 것

  • 언어: 정수·소수·문자·목록·격자·사전·묶음(구조체)·벡터, 흐름 따라 바뀌는 타입, 다형 함수(템플릿식), 함수 값·이름 없는 함수, 전역·지역 변수, 값에 따라 { }, 이름공간 있는 불러오기
  • 실패 처리: 해보다 { } 안 되면 (까닭) { } — 실행 오류도 전부 잡힘
  • 스레드: (인자를 F로 따로 부르다) · 기다리다 · 나눠 부르다 · 잠금. GC 가 여러 스레드를 같이 훑음
  • 창·게임: 그리기, 실시간 키·마우스, 누르고 있는 키, 마우스 가두기(1인칭), 크기 바뀌는 창, 삼각형·픽셀로 3D
  • GPU: 한랭 함수를 그대로 SPIR-V 로 번역해 Vulkan 에서 수십만 번 동시에 — 결과를 창에 바로 그리기(그려내다)
  • 소리: 소수 목록 표본이나 wav 를 소리내다. (겹쳐 틀기), lib/소리.han 으로 합성
  • 표준 라이브러리 18개 (전부 한랭): 수학·목록·문자·정렬·통계·격자·분수·큰수·힙·표(CSV)·시간·정규식·그래프·요청(https)·입체(3D)·GPU·GPU32·소리
  • 낮은 수준: 낮은수준을 쓰다. 파일에서 메모리·C 함수 — 런타임 대부분이 한랭으로 짜여 있음
  • 오류 메시지: 한국어로, 소스 줄 + ^ 캐럿 + 고치는 법
  • VS Code 확장: 문법 색칠, 오류 밑줄, 실행 버튼, 디버거(멈춤점·한 줄씩·변수), 자동완성

예제

examples/게임/ — 빛구슬사냥(1인칭 총 게임, GPU 레이 트레이싱·점광원·효과음), 구슬굴리기(3D), 상자모으기, 모양채우기
examples/GPU/ — 만델브로, 광선추적

문서: 문법.md · 라이브러리.md