本論文では図式をシンタックスに持つ関数型言語を提案する.これは関数型言語によるプログラムの図的表現の提案でもある.関数型言語によって書かれたプログラムは,それによって関数をも含むデータのやりとりを記述していることに着目し,図的に表現されたデータの流れ,モジュール,モジュールの入出力ポートといった概念を,総てλ計算で解釈する.図式は一度,λ計算ヘシュガリングを行った,リダクションによって実行される関数型言語Crescendo[14]ヘ変換され実行される.これにより,データの流れ,モジュール等に対してλ計算により意味が与えられた関数型言語が作成され,リダクションをデータフローという観点から見ることが可能となる.さらにデータの入出力点,データの送受信を明確にとり扱うことが可能になった.
データ駆動の原理は,問題の持つ並列性を自然にかつ最大限に引き出すことができるという点で,他の並列処理方式に比べて大きな長所を持つ.しかし,それを実現するためには,非常に多くの計算資源を必要とし,資源の限られた環境では必ずしも上記利点を有効に利用できるとは限らない.そこでこれまでわれわれは,データ駆動の特徴を引き出しながらかつ有限な資源を有効に利用するための方法として,ワーキングセットの概念の導入を提案し評価を行ってきた. 本論文ではこれらの結果をまとめ,データ駆動型計算機における準動的並列実行制御機構の実現方法について考察する。
時制論理は,オペレーティング・システムやリアルタイム制御システムなど,時間の取り扱いが本質的であるような分野において有用である.時間軸は連続ではなく,離散的な時刻における状態の列として表わされる.ある処理内容に対して本質的な事象が起こった時刻だけを取り出して新しい時間軸を作れば,それはその処理を行うプロセス固有の時間軸であると考えることができる.この抽出された時間軸に基づけば,プロセスをより簡潔に記述できる.抽出された時間軸上で解釈される論理式が与えられた時,元の時間軸上で解釈される同値な論理式が存在する.また,この時間軸の抽出をTemporal Prologに適用すると,プログラムを各々固有の時間軸上で動作するいくつかの部分に分解することができる.論理式の場合と同様,抽出された時間軸上のプログラムを,元の時間軸上のプログラムへ変換することができ,この変換はモデル論的意味を保存する.
近年,情報処理分野で日本語プログラミング言語が話題になっているが,その中の代表的なものにMindがある.Mindは,もともとForthから派生したパソコン用コンパイラ言語である.そして,その日本語記述能力による初心者用言語というイメージに反して,最近では開発用言語として使用されている場合が増えてきている. 本稿では,このMindの概要を述べるとともにそのプログラム記述能力などについても言及する.またMindによるアプリケーションの開発事例を紹介し,今後の課題も含めて考察する.