マルチパラダイム言語TAOにおける論理型プログラム処理系の実装  [in Japanese] Implementation of Logic Computation in a Multi-paradigm Language TAO  [in Japanese]

Access this Article

Search this Article

Author(s)

Abstract

TAOは,関数型,論理型,オブジェクト指向のプログラミング機能を持つマルチパラダイム言語である.TAOの論理型計算は次の2つの特徴を持つ.パターンマッチとガードによって節を選択し,深いバックトラックは陽に呼び出す.関数と述語は互い呼び出すことができ,任意のデータを渡せる.本論文では,このような論理型計算機構を実装するための抽象マシンを提案する.この抽象マシンは,WAMをベースとしており,以下のような特徴を持つ.1)構造データをスタックでなくヒープ上に表現する.2)単一化やパターンマッチでは,レジスタを極力使用しない.3)プロセススイッチする可能性がある時点では,データを必ず無矛盾に保つ.また,他のProlog処理系と比較評価し,Lispとの融合によって性能が劣化しないことを示す.TAO is a Lisp-based multi-paradigm programming language whichincorporates functional, logic and object-oriented programmingparadigms. This paper describes the implementation of logic computation in TAO, which is different from Prolog in thefollowing two points.A clause is selected according to pattern matching and guard testing,and deep backtracking is invoked explicitly.Functions and predicates can invoke each other and pass any type ofdata between them.We propose an abstract machine, based on WAM (Warren's abstract machine), which has the following features.1) Structured data are represented in heap memory instead of stack.2) Almost no extra registers are used at unification and pattern maching.3) Memory configuration is consistent at any potential process-switching point.We also evaluated our implementation comparing with other Prologprocessors, and showed that the paradigm fusion does not degrade theperformance.

TAO is a Lisp-based multi-paradigm programming language which incorporates functional, logic and object-oriented programming paradigms. This paper describes the implementation of logic computation in TAO, which is different from Prolog in the following two points. A clause is selected according to pattern matching and guard testing, and deep backtracking is invoked explicitly. Functions and predicates can invoke each other and pass any type of data between them. We propose an abstract machine, based on WAM (Warren's abstract machine), which has the following features. 1) Structured data are represented in heap memory instead of stack. 2) Almost no extra registers are used at unification and pattern maching. 3) Memory configuration is consistent at any potential process-switching point. We also evaluated our implementation comparing with other Prolog processors, and showed that the paradigm fusion does not degrade the performance.

Journal

  • Transactions of Information Processing Society of Japan

    Transactions of Information Processing Society of Japan 41(1), 136-147, 2000-01-15

    Information Processing Society of Japan (IPSJ)

References:  17

Cited by:  1

  • Structured Data and Undefined Value in TAO  [in Japanese]

    YAMAZAKI KENICHI , YOSHIDA MASAHARU , AMAGAI YOSHIJI , TAKEUCHI IKUO

    情報処理学会論文誌プログラミング(PRO) 42(SIG07(PRO11)), 70-83, 2001-07-15

    IPSJ References (16)

Codes

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