Langphilia! / Study / Language

Studyphilia


dklic: a Distributed KL1 implementation on KLIC.

KL1は、最も単純な並行論理言語GHC (Guarded Horn Clauses)に基づく 並列論理言語です。通産省の第五世代プロジェクトの核言語に採用され、 Kernel Language 1と名付けられました。

私の研究は、KL1の効率的な並列実装(KLIC)の上に分散KL1を実装するものです。 並行という概念は並列・分散を含むものであり、 GHCの拡張であるKL1をさらに分散拡張するのは容易かつ妥当なことです。

GHCでは独立したプロセス群がデータフローによる同期を行ない、 個々のプロセスを実行する順序や場所を問わないため、 逐次の場合と並列・分散の場合でプログラムの論理的な意味が変化しません。 このためKL1は、手続き型言語の分散拡張に比べて、 プログラムの静的解析を行ないやすく、並列・分散プログラミングが容易です。

卒論では、KLICの上に最低限の分散機能である遠隔呼び出しを実装しました。 reactiveなKL1の述語(一定時間生存しながら反応を返すプロセス)を呼び出すために、 論理変数の輸出入表を実装する必要がありました。 述語の引数は呼び出し側が具体化するとは限らず、 呼び出された述語が具体化するかも知れないし、 呼び出し側と呼び出された述語が徐々に具体化していくかも知れません。 効率の良い輸出入表を実装するには、 核言語が変数の識別機能を提供する必要があることが分かりました。 KLICでは変数の識別ができないため、現在の実装は効率が良くありません。

2000年12月現在、上田研の分散言語班では、 核言語、もっと効率の良い輸出入表、保安・保護モデル、サービス検索など、 言語からミドルウェアまで様々な実装を検討しています。


Copyright 2000-2001, TAKAGI Yusuke.