고차원 함수를 동적 인자전달 방식으로 구현하는 타입 기반 컴파일 방법(A) typed compilation of higher-order functions with dynamic argument passing

Cited 0 time in webofscience Cited 0 time in scopus
  • Hit : 519
  • Download : 0
타입 기반 컴파일 방법론은 일반적으로 컴파일러 자체를 자동으로 디버깅할 수 있고, 타입 정보를 이용해서 프로그램을 최적화 할 수 있고, 프로그램 검증을 통해 안정성이 보장되는 실행 환경을 제공하는 장점을 지닌다. Push-enter 모델은 고차원 함수를 컴파일 하는 일반적인 방법론으로 기존의 함수형 언어 컴파일러에서 이 모델에 기초한 컴파일 방법들을 많이 사용하고 있다. 고차원 함수의 특징은 기존의 정수, 실수, 문자, 문자열 등과 같은 값처럼 함수를 자유롭게 인자로 전달하고 결과 값을 받을 수 있게 하는 것이다. 이 특징으로 인해 고차원 함수를 호출할 때 함수의 형식 인자 수가 함수에 전달되는 실제 인자의 수와 무관하다. Push-enter 모델에 기초한 컴파일 방법들의 특징은, 함수 호출자의 입장에서는 실행 시간에 주어진 실제 인자를 모두 함수에게 전달하고 함수 입장에서는 함수 자신의 형식 인자 수와 무관하게 전달받을 수 있는 실제 인자 수의 모든 가능한 경우에 대해 책임을 지도록 컴파일 하는 것이다. 즉, 실행 시간에 전달될 실제 인자 수에 관한 상태 정보를 반드시 유지해야 한다. 이와 달리 Eval-apply 모델은 함수 입장에서는 항상 정해진 형식 인자 수만큼 실제 인자가 전달된다고 가정하고 함수 호출자의 입장에서는 주어진 실제 인자 수를 조절하여 함수를 호출하는 방식이다. 항상 동일한 수의 실제 인자만 전달하므로 실제 인자 수에 관한 상태 정보를 필요로 하지 않는다. 현재까지 알려진 타입 기반 컴파일 방법론에서 고차원 함수를 컴파일 하는 방법은 모두 Eval-apply 모델에 기초한 컴파일 방법들이었다. Eval-apply 모델에 기초한 컴파일 방법들에 대한 타입 시스템은 Push-enter 모델에 기초한 컴파일 방법들에서 필요로 하는 실제 인자 수에 대한 상태 정보를 다루지 않기 때문에 타입 기반 컴파일 방법론과 Push-enter 모델 기반 컴파일 방법들을 함께 사용할 수 없는 문제가 존재한다. 본 논문에서는 Push-enter 모델에 기초한 컴파일 방법들을 타입 기반 컴파일 방법론과 함께 사용할 수 있도록 하는 타입 시스템 설계 방법을 제안한다. 제안한 방법에서 가장 중요한 점은 Push-enter 모델에 기초하는 컴파일 방법이라면 모두 가지고 있는 실제 인자 수에 대한 상태 정보의 타입이 무엇인가 하는 것이다. 기존의 타입 언어를 이용해 상태 정보의 타입을 결정하기 쉽지 않은 이유는 Push-enter 모델에서 이 상태 정보를 다루는 방법의 특성상 현재 실제 인자가 없음을 나타내는 하나의 특별한 상태 정보가 여러 유형으로 사용되기 때문이다. Push-enter 모델의 특성상 야기되는 다형성을 갖는 상태 정보를 기존의 타입 언어를 가지고 쉽게 표현할 수 없다. Push-enter 모델에 기초해 설계된 컴파일 방법들은 모두 이 문제점을 지닌다. 본 논문에서는 바로 이 다형성을 갖는 상태 정보를 표현할 수 있는 새로운 타입 어휘를 제안하고 이 어휘에 기초한 타입 시스템을 설계함으로써 Push-enter 모델에 기초한 고차원 함수 컴파일 방법과 타입 기반 컴파일 방법론을 함께 사용할 수 있게 되었다. 본 논문에서 제시한 아이디어를 Push-enter 모델에 기초한 두 가지 컴파일 방법인 MPS Conversion과 ZINC Machine에 적용해 타입 시스템을 설계해 보인다. 이 타입 시스템을 통해 Push-enter 모델에 기초한 함수간 인자 전달 방식이 상태 정보와 일관성 있게 구현되었음을 보장할 수 있다.
Advisors
Han, Tai-Sookresearcher한태숙researcher
Description
한국과학기술원 : 전산학전공,
Publisher
한국과학기술원
Issue Date
2003
Identifier
231147/325007  / 000965400
Language
kor
Description

학위논문(박사) - 한국과학기술원 : 전산학전공, 2003.8, [ vi, 127 p. ]

Keywords

Functional Programming Languages; Compiler; Type System; Programming Languages; 프로그래밍 언어; 함수형 언어; 컴파일러; 타입 시스템

URI
http://hdl.handle.net/10203/32846
Link
http://library.kaist.ac.kr/search/detail/view.do?bibCtrlNo=231147&flag=dissertation
Appears in Collection
CS-Theses_Ph.D.(박사논문)
Files in This Item
There are no files associated with this item.

qr_code

  • mendeley

    citeulike


rss_1.0 rss_2.0 atom_1.0