実行機構の類似性に着目した関数型言語と論理型言語の融合  [in Japanese] Amalgamation of Functional and Logic Programming Languages Based on Similarities in Execution Mechanisms  [in Japanese]

Access this Article

Search this Article

Author(s)

Abstract

本論文では Lispをべースとして論理型プログラミングを融合したマルチパラダイム言語TAOについて述べる. これまで研究されたきた融合型言語においては 純粋な関数型言語と論理型言語を融合するものが多かったが TAOではすべてのLispプリミティブと論理型プログラミングを利用できる. TAOでは Lispと論理型言語の実行機構の類似性に着目した融合を行う. ここで 実行機構の類似性とは 状態変数と論埋変数 関数呼び出しと述語呼び出し 大域的脱出とバックトラックなどを指す. たとえば catch/throwのような脱出とバックトラックには類似性があり バックトラックを大域脱出の一種と考えることができる. これにより バックトラックが Lispの大域脱出に関するさまざまなプリミティブを自然に利用できるようになる.This paper describes a Lisp-based multi-paradigm programming language TAO that incorporates a logic programming (LP) paradigm. Whereas previous multi-paradigm languages only supported purely functional and LP facilities, TAO supports all Lisp primitives as well as LP facilities. This amalgamation of Lisp and LP is done by making use of the similarities in their execution mechanisms, giving a natural semantics to the amalgamation. The similarities include state vs. logic variables, function vs. predicate calling, and non-local exit vs. backtracking. For example, the similarity between non-local exit (catch/throw) and backtracking enables backtracking to be regarded as a kind of non-local exit, so that backtracking can use all Lisp facilities which support non-local exit.

This paper describes a Lisp-based multi-paradigm programming language TAO that incorporates a logic programming (LP) paradigm. Whereas previous multi-paradigm languages only supported purely functional and LP facilities, TAO supports all Lisp primitives as well as LP facilities. This amalgamation of Lisp and LP is done by making use of the similarities in their execution mechanisms, giving a natural semantics to the amalgamation. The similarities include state vs. logic variables, function vs. predicate calling, and non-local exit vs. backtracking. For example, the similarity between non-local exit (catch/throw) and backtracking enables backtracking to be regarded as a kind of non-local exit, so that backtracking can use all Lisp facilities which support non-local exit.

Journal

  • Transactions of Information Processing Society of Japan

    Transactions of Information Processing Society of Japan 40(6), 2743-2754, 1999-06-15

    Information Processing Society of Japan (IPSJ)

References:  17

Cited by:  2

Codes

  • NII Article ID (NAID)
    110002725019
  • NII NACSIS-CAT ID (NCID)
    AN00116647
  • Text Lang
    JPN
  • Article Type
    Journal Article
  • ISSN
    1882-7764
  • NDL Article ID
    4764278
  • NDL Source Classification
    ZM13(科学技術--科学技術一般--データ処理・計算機)
  • NDL Call No.
    Z14-741
  • Data Source
    CJP  CJPref  NDL  NII-ELS  IPSJ 
Page Top