Par 언어, 선형 타입 기반의 혁신적인 기능 공개!

by DD
4개월 전
조회수 6

Par 언어, 선형 타입(Linear Types), 이중성(Duality), 자동 동시성(Automatic Concurrency)을 기반으로 하는 실험적인 언어

새로운 `if` 구문 도입: either types를 조건문에서 활용, 바인딩 유효 범위 확장

암시적 제네릭(Implicit Generics) 지원으로 코드 간결성 향상

새로운 런타임 도입으로 2-3배 성능 향상 달성

향상된 if 구문과 either types

Par 언어는 기존의 `.case` 구문을 대체하는 새로운 `if` 구문을 도입하여 either types(합 타입)를 조건문 내에서 더욱 효과적으로 사용할 수 있도록 했다. 특히, `result is .ok value`와 같은 구문을 통해 바인딩된 변수를 `not` 조건문에서도 사용할 수 있도록 지원한다. 이는 코드 가독성(Code Readability)을 높이고, 복잡한 조건 로직을 간결하게 표현하는 데 기여한다.

암시적 제네릭(Implicit Generics) 도입

Par 언어는 기존의 명시적 제네릭(Explicit Generics) 외에 암시적 제네릭을 지원하여 코드의 간결성을 높였다. 예를 들어, `Reverse(Int.Range(1, 10))`과 같이 제네릭 타입을 명시적으로 지정하지 않아도 컴파일러가 자동으로 추론하도록 함으로써, 코드 작성 편의성(Code Convenience)을 향상시켰다. 이는 System F 스타일의 제네릭을 지원하며, 코드의 가독성을 높이는 데 기여한다.

새로운 런타임의 성능 개선

Par 언어의 새로운 런타임은 기존 런타임 대비 2-3배의 성능 향상을 달성했다. 이는 HVM(High-level Virtual Machine), Bend와 유사하게 상호 작용 네트워크(Interaction Networks)를 기반으로 하며, 특히 동시 I/O(Concurrent I/O)를 지원하는 데 초점을 맞추고 있다. 런타임 성능은 아직 개선의 여지가 있지만, 선형 논리(Linear Logic)를 활용한 언어의 성능 향상에 중요한 발걸음을 내디뎠다.

선형 타입(Linear Types) 기반의 언어 설계

Par 언어는 선형 타입(Linear Types)을 기반으로 설계되어, 메모리 안전성(Memory Safety)동시성(Concurrency)을 보장한다. 선형 타입은 각 값이 정확히 한 번 사용되도록 보장하여, 데이터 레이스(Data Race)와 같은 문제를 방지한다. 또한, Par 언어는 세션 타입(Session Types)을 활용하여 구조적 동시성을 지원하며, 데드락(Deadlock)을 방지하는 특징을 가진다.

Par Language Update: Crazy `if`, implicit generics, and a new runtime