- 암시적 프로그래밍을 위한 계산 언어의 설계
- ㆍ 저자명
- 이원찬,이광근,Lee. Won-Chan,Yi. Kwang-Keun
- ㆍ 간행물명
- 정보과학회논문지. Journal of KIISE. 컴퓨팅의 실제 및 레터
- ㆍ 권/호정보
- 2012년|18권 7호|pp.568-572 (5 pages)
- ㆍ 발행정보
- 한국정보과학회
- ㆍ 파일정보
- 정기간행물| PDF텍스트
- ㆍ 주제분야
- 기타
많은 프로그래밍 언어들이 암시적 프로그래밍을 지원하고 있다. 대표적인 예로 하스켈 타입 클래스와 C++ 템플릿을 들 수 있다. 하지만, 많은 유용한 기능들이 초기 설계단계에서 빠져있어 그 한계가 드러나고 있는 상황이다. 일례로, 하스켈의 경우 모든 타입 클래스의 인스턴스가 전역 범위로 선언되어야 하고 인스턴스를 값처럼 사용할 수 없다는 한계를 가지고 있다. 본 논문에서는 암시적 프로그래밍을 위한 계산 언어인 ${lambda}_{Rightarrow}$를 제안한다. ${lambda}_{Rightarrow}$ 계산 언어는 널리 사용되는 암시적 프로그래밍 구현의 핵심을 모두 포섭하면서도 그 구현들에서 발견되는 한계점을 지니지 않는다. 또한, 암시적인 인자를 생성하기 위한 규칙이 고차원이 될 수 있으며 규칙들 간의 겹침을 허용한다. 논문에서는 ${lambda}_{Rightarrow}$의 문법과 과정을 드러내는 실행의미, 다형 타입 시스템과 그 안전성을 설명한다. 또한, 효율적인 컴파일 방법으로서 System F로의 타입 기반 변환을 제안한다.
Many programming languages support implicit programming paradigm. Haskell type classes and C++ templates are the most prominent examples in that regards. Nevertheless, many useful features of implicit programming are omitted in the early stage of language design and the limitations of the initial design have been revealed. For example, in Haskell all type class instances should be declared in the global scope and those are not the first-class values. We propose a core calculus ${lambda}_{Rightarrow}$ for implicit programming. The ${lambda}_{Rightarrow}$ calculus supports all useful features of implicit programming, but it does not suffer from the limitations of the current practice. Furthermore, our calculus supports higher-order and overlapping rules. We present the syntax, operational semantics, polymorphic type system, and type soundness. We also provide a type-directed translation into System F as an efficient compilation technique.