ISLISP処理系TISLにおけるネイティブインタフェースの設計および実装

Bibliographic Information

Other Title
  • Design and Implementation of a Native Interface for an ISLISP Processor TISL

Search this article

Abstract

プログラミング言語LispのISO標準であるISLISPの言語処理系としてTISLが筆者らにより作成され,公開されている.ISLISPはLispの基本機能である記号処理やリスト処理に加えてオブジェクト指向機能を備えた強力な言語であるが,ISLISPの機能のみではアプリケーション作成に必要な機能を満たせないため外部手続きを利用したい状況がある.このような状況に対応するために,JavaNative Interfaceを参考にTISLのためのネイティブプログラミングインタフェースを設計し,TISLネイティブインタフェースTNIと名付け,実装を行った.本発表ではTNIの機能および実装について報告し,TNIの使用法を説明する.TISL側では,新に導入したdeflink定義形式を使用し,外部手続きとISLISPの関数のリンクを行う.リンクを行ったISLISP関数は他のISLISP関数と同様に呼び出すことが可能である.外部手続き側では,TNIを通してISLISPのオブジェクトを参照したり,ISLISP関数を呼び出したりすることができる.TNIを用いることにより,C言語やC++言語で記述されたアプリケーションとTISLで実行されるISLISPアプリケーションとの相互作用を行うことが可能になる.

ISLISP is the ISO standard Lisp language. We implemented its processor, called the TISL system. There are situations that ISLISP lacks in supporting facilities to realize some applications that incorporate other languages and systems. In order to implement various ISLISP applications for such situations, we designed a native interface for TISL programmer, called the TISL Native Interface (TNI), borrowing some ideas from the Java Native Interface. We implemented the TISL system with the TISL Native Interface. In this presentation, we report the design of the TISL Native Interface and its implementation in TISL. And we explain how to use the TISL Native Interface, using several examples. The 'deflink' construct is introduced into the TISL system to link a ISLISP function to a foreign procedure. A 'deflink' function can be used in the same way as ISLISP functions. The foreign procedures and applications can utilize ISLISP functions through the TISL Native Interface. The TISL Native Interface enables ISLISP applications on TISL to interact with applications written in C and C++.

Journal

Keywords

Details

Report a problem

Back to top