서지주요정보
(A) study on the execution mechanisms of a functional logic language with lazy evaluation = 지연 연산을 하는 함수 논리 언어의 수행 방법에 관한 연구
서명 / 저자 (A) study on the execution mechanisms of a functional logic language with lazy evaluation = 지연 연산을 하는 함수 논리 언어의 수행 방법에 관한 연구 / Jong-Ho Nang.
저자명 Nang, Jong-Ho ; 낭종호
발행사항 [대전 : 한국과학기술원, 1992].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8002511

소장위치/청구기호

학술문화관(문화관) 보존서고

DCS 92003

SMS전송

도서상태

이용가능

대출가능

반납예정일

초록정보

This thesis aims at developing a cost-effective mechanism incorporating functional programming into logic programming, so that both programming styles can be expressed naturally and executed efficiently in a single framework. For achieving this goal, we first propose a functional logic language, called Lazy Aflog, which is an extension of Prolog with the functional language features such as infinite data structures and high order functions. Second, an abstract machine for Lazy Aflog, called FWAM-II, is proposed as an implementation method on a sequential machine. It is an extension of WAM with the instructions and run-time structures to provide the suspension/reactivation of functional closure. We have shown by experimental results that Lazy Aflog and FWAM-II pair is a good compromise between the expressiveness and efficiency of the combination. Finally, to overcome the speed limitation caused by the sequential nature of FWAM-II, a parallel execution model for Lazy Aflog and its abstract machine, called $PR^3$ (Parallel Resolution and Reduction with RAP) and PFWAM-II (Parallel Functional WAM-II), are also proposed. They are extensions of Degroot's RAP and Hermenegildo's RAP-WAM with the primitives for parallel function reduction, respectively. Upon the simulation results on $PR^3$ and PFWAM-II, the speedup behaviours of parallel reduction is almost the same as the parallel reduction is almost the same as the parallel resolution. It is claimed from this analysis that not only logic programming but also functional programming can be supported in $PR^3$ and PFWAM-II simultaneously with almost the same efficiency of single paradigm programming.

대표적인 선언적 프로그래밍 언어들인 함수 언어와 논리 언어는 각각 다른 언어가 가지고 있지 않는 고유한 프로그래밍 파라다임을 가지고 있다. 본 논문의 목적은 이 두가지 프로그래밍 파라다임을 결합하여 한 프로그램안에서 두 가지 모두를 자연스럽게 표현할 수 있고, 또한 표현된 프로그램을 효율적으로 수행시킬 수 있는 방법을 개발하는 것이다. 이를 위하여 먼저 논리 언어인 Prolog를 고차 함수 및 무한 데이타 구조등의 함수 언어 파라다임을 처리할 수 있도록 확장하여, 새로운 함수 논리 언어 Lazy Aflog를 제안하였다. 이 언어는 요구가 있을때만 연산을 시작하는 지연 연산을 기본적으로 제공하기 때문에 Prolog등의 논리 언어에서 제공하지 못하는 함수 언어 파라다임을 제공할 수 있다. 제안한 함수 논리 언어 Lazy Aflog를 순차적으로 수행시키기 위한 효율적인 방법으로서 FWAM-II (Functional WAM-II)를 제안하였는데, 이 추상 머신은 논리 언어를 위한 추상머신인 WAM (Warren Abstract Machine)을 functional closure를 처리할 수 있도록 확장하여 설계하였다. 실제 구현을 통한 FWAM-II의 성능 분석에 따르면, 한 Lazy Aflog 프로그램안에 표현된 논리 언어 및 함수 언어 파라다임을 수행상의 큰 부담없이 모두 효율적으로 수행할 수 있음을 알 수 있다. 비록 FWAM-II가 Lazy Aflog 프로그램을 효율적으로 수행시킬 수 있지만, 이 추상 머신은 순차적인 수행을 하기 때문에 제공할 수 있는 성능에 한계가 있다. 이 문제를 해결하기 위하여 Lazy Aflog에 대한 병렬 계산 모형 ($PR^3$)을 제안하였으며, 또한 이를 위한 병렬 추상 머신(PFWAM-II)도 설계하였다. 제안된 병렬 수행 모델은 논리 언어를 위한 DeGroot의 병렬 수행 모델에 병렬 함수 감축 기능을 첨가하여 설계하였으며, 병렬 추상 머신은 FWAM-II에 병렬 처리를 위한 기능을 첨가하여 설계하였다. PFWAM-II에 대한 시뮬레이션 결과에 의하면, $PR^3$ 및 PFWAM-II는 병렬 resolution 및 병렬 함수 감축을 Lazy Aflog 프로그램에 있는 병렬성을 이용하여 동시에 효율적으로 수행할 수 있음을 알 수 있다. 본 논문에서 제안한 논리 프로그래밍과 함수 프로그래밍의 결합 방법과 이를 위한 순차 및 병렬 수행 방법은 인공 지능과 같은 복잡한 응용 분야를 자연스럽게 프로그램할 수 있게 하여주며, 또한 표현된 프로그램을 한 가지 파라다임에 기초한 프로그램과 거의 같은 성능으로 수행시킬 수 있도록 하여준다.

서지기타정보

서지기타정보
청구기호 {DCS 92003
형태사항 iv, 108 p. : 삽도 ; 26 cm
언어 영어
일반주기 Appendix : A, Basic compilation rules for rewrite rules. - B, Benchmark programs
저자명의 한글표기 : 낭종호
지도교수의 영문표기 : Seung-Ryoul Maeng
지도교수의 한글표기 : 맹승렬
학위논문 학위논문(박사) - 한국과학기술원 : 전산학과,
서지주기 Reference : p. 84-89
주제 Logic programming.
논리 프로그래밍. --과학기술용어시소러스
Functional programming languages.
지연 연산
함수 논리 언어
QR CODE qr code