읽기 쉬운 코드
세미콜론과 같은 불필요한 장식을 줄이고 변수·함수·제어 흐름이 한눈에 들어오는 문법을 지향합니다.
Arus는 읽기 쉬운 문법과 네이티브 코드 성능을 함께 추구하는 시스템 프로그래밍 언어입니다. 명시적인 메모리 권한과 독자적인 중간 표현 AIR를 바탕으로 코드의 간결함과 시스템 제어 사이의 균형을 설계합니다.
main
fn main() {
println("Hello, Arus!")
let language = "systems programming"
println(f"Welcome to {language}")
}
Arus는 단순히 코드를 짧게 쓰는 데서 그치지 않습니다. 프로그램 구조와 메모리 접근을 명확하게 표현하고, 언어 차원의 분석을 거쳐 네이티브 코드로 이어지는 흐름을 목표로 합니다.
아래 문법, 명령어, 컴파일 과정은 현재의 설계 방향을 보여 주는 예시입니다. 실제 구현 여부나 최종 사양을 보장하지 않으며, 세부 규칙은 개발 과정에서 변경될 수 있습니다.
세미콜론과 같은 불필요한 장식을 줄이고 변수·함수·제어 흐름이 한눈에 들어오는 문법을 지향합니다.
언어 차원의 분석을 마친 뒤 LLVM IR로 변환하고, LLVM 백엔드를 통해 네이티브 머신 코드를 생성하는 것을 목표로 합니다.
읽기와 쓰기 권한을 포인터 타입에 표현해 허용되지 않은 메모리 접근을 컴파일 단계에서 검사하는 방향입니다.
AST와 LLVM IR 사이에 Arus의 의미와 권한 정보를 담는 중간 표현을 두어 분석과 변환의 경계를 명확히 합니다.
print(), println(), input()을 별도 선언 없이 사용하는 간결한 입출력 경험을 구상하고 있습니다.
초기 컴파일러는 Rust로 개발하며, 언어와 도구가 충분히 성숙한 뒤 Arus로 다시 작성하는 것을 장기 목표로 삼습니다.
각 단계는 서로 다른 역할을 담당합니다. 특히 AIR는 LLVM IR을 단순히 복제하는 단계가 아니라, Arus의 타입과 메모리 권한 규칙을 분석하는 언어 고유의 경계입니다.
현재 검토 중인 문법을 짧은 예제로 살펴볼 수 있습니다. 왼쪽 항목을 선택하면 코드와 설명이 바뀌며, 버튼을 눌러 예제 코드를 복사할 수 있습니다.
main
fn main() {
println("Hello, Arus!")
}
script 형태도 별도로 구상하고 있습니다.let count: i32 = 10
mut total: i32 = 20
// 타입 추론 예시
let inferred = 30
mut updated = 40
fn add(a: i32, b: i32) -> i32 {
return a + b
}
if count > 10 {
println("large")
} else {
println("small")
}
let value: i32 = 5
let pointer: i32 r* = &value
let copy = *pointer
println(copy)
// *pointer = 10 // 읽기 전용 포인터라면 오류
포인터가 가리키는 대상뿐 아니라, 해당 포인터로 허용할 메모리 접근을 타입에 나타내는 것이 핵심 아이디어입니다.
두 가지 실행 모드를 구상하고 있습니다. 아래 명령어는 목표 CLI 인터페이스의 예시이며, 현재 구현이 완료되었다는 뜻은 아닙니다.
runtime인터프리터로 코드를 바로 실행하는 모드입니다. 작은 예제를 빠르게 시험하고 개발 흐름을 확인하는 용도로 구상하고 있습니다.
compile코드를 컴파일한 다음 네이티브 프로그램으로 실행하는 모드입니다. 기본 실행 및 배포 방식으로 삼는 것이 목표입니다.
소스 코드와 프로젝트 진행 상황은 GitHub에서 확인할 수 있습니다. 현재 저장소에는 Windows 및 Linux용 컴파일러 바이너리 릴리스가 등록되어 있지 않아, 운영체제별 다운로드는 준비 중입니다.
Arus의 소스 코드, 예제, README와 개발 현황을 확인할 수 있습니다.
GitHub 바로가기Windows용 컴파일러 바이너리는 아직 공개되지 않았습니다. 빌드가 게시되면 릴리스 페이지에서 제공할 예정입니다.
Windows 릴리스 확인 ↗Linux용 컴파일러 바이너리는 아직 공개되지 않았습니다. 빌드가 게시되면 릴리스 페이지에서 제공할 예정입니다.
Linux 릴리스 확인 ↗참고: 릴리스가 등록되기 전까지는 위 버튼으로 실행 파일을 다운로드할 수 없습니다. 최신 상태는 GitHub Releases에서 확인할 수 있습니다.
Arus는 아직 초기 설계 단계입니다. 문법과 의미를 먼저 명확히 하고, 분석기와 백엔드를 단계적으로 연결할 계획입니다.
프로그램 구조, 타입 추론, 함수와 제어문, 포인터 권한 규칙을 정리합니다.
진행중데이터 구조와 AIR 텍스트 규격을 설계하고 표현 가능한 연산을 정의합니다.
진행중타입·권한·메모리 접근과 관련된 언어 차원의 검사를 구현합니다.
계획검증된 AIR를 LLVM IR로 변환하고 네이티브 코드 생성 흐름을 연결합니다.
진행중인터프리터, CLI, 테스트 도구 등 개발 경험을 지원하는 기반을 구축합니다.
계획언어가 충분히 성숙한 이후 컴파일러를 Arus로 다시 작성하는 것을 장기 목표로 삼습니다.
장기 목표Arus는 아직 완성된 도구가 아니라 명확한 원칙을 실제 언어로 구현해 가는 프로젝트입니다. 현재의 예시와 규칙은 그 여정의 출발점입니다.