trilogのためのZIPスタイルのProlog VM
A ZIP-style Prolog VM for trilog (github.com)
要約
このプロジェクトは、PrologコンパイラとZIP仮想マシン(VM)をC言語で開発するものです。ZIP VMは、1984年のClocksinによる論文で提案された抽象マシンを基盤としています。開発者は、このZIP VMを既存のtrilogランタイムと比較可能にするレベルまでスキャフォールディング(足場を組む)することを目指しており、成功すればtrilogのバックエンドとなるか、より高速なスタンドアロンPrologランタイムとして機能する可能性があります。
全文翻訳
zipc(仮称)
このプロジェクトの目標は、VMを現在のtrilogランタイムと比較できるレベルまでスキャフォールディングすることです。
C言語で書かれた、ZIP仮想マシンへのPrologコンパイラ、およびVMそのものです。ZIPは、Clocksinの著書『Design and Simulation of a Sequential Prolog Machine』(1984年)に登場する抽象マシンです。関連論文はdoc/にあります。
zipcは、MVP(Minimum Viable Product)が成功すればtrilogのバックエンドになることを意図していますが、あるいは単に、より高速なスタンドアロンPrologコンパイル可能ランタイムとして存続するかもしれません。まだはっきりとは決まっていません。いずれにせよ、trilogは節(clause)をABCアルゴリズムで項(term)として解釈しますが、それらをZIPにコンパイルすることで、同じプログラムがより少ない命令数と少ないメモリで実行できるようになり、trilogの主な目標に役立つはずです。
コンパイラはPrologで書かれており、Scryer Prolog上で動作します。バイナリイメージを生成し、src/にあるVMがそれをロードして実行します。