汎用ワークステーション上のウィンドウ・システムについて解説する.最初に,ウィンドゥ・システムとは何かということについて簡単に述べた後,ウィンドウ・システムの階層化について述べ,ハードウェアの階層からツールの階層まで順に検討を行う.その次に,TSSをオペレーティング・システムとした汎用ワークステーション上でのウィンドウ・システムの実現法について述べる.その後で,ウィンドウ・システムにとっての一つの重要な要素であるネットワーク化について簡単に述べる.最後に,現在,ワークステーション上で稼働しているいくつかのウィンドウ・システムを概観する.
従来の部分計算においては,条件式の条件部を評価する際には,基本的にはevalなどのインタープリタが用いられた(したがって従来の部分計算を解釈依存部分計算と呼ぶ).本稿では,条件式の条件部を定理証明により評価する方法とその応用例について述べる.この方法は,一般部分計算と呼ばれ,解釈依存部分計算よりも部分計算を先へ進めることができる.その強力さを示すために,計算時間O (m*n)のプログラムを一般部分計算によりO(m+n)のプログラムに変換する例など,計算時間のorderを変えるプログラム変換例を示す.
CCFG (Coupled Context-Free Grammar)はいくつかのCFG (Context-Free Grammar)を組み合わせた文法である.ひとつのCFGはあるデータ構造を定義しているとみなせるから,それを組み合わせたCCFGはデータ間の関係を記述するプログラム(CCFGプヮグラムと呼ぶ)とみなすことができる.ここでは,このCCFGプログラムのプログラム変換の方式を述べる.CCFGプログラムではプログラムのデータ構造がCFGとして構文上に陽に現れてくるから,そのデータ構造に着目した見通しのよい変換を行うことができる.
一般化したunfold/fold技法に基づく論理プログラムの変換合成の方法を示す.この方法は,定義,正の展開,負の展開,畳み込みの4つの基本的な変換合成規則からなり,新しい手続きを定義する式として一階述語論理式のある部分クラスが許されている.これは,玉木-佐藤のプログラム変換とClarkのプログラム合成(の一部)を含み,同値性の保存も証明される.変換合成の簡単な例と場合分け規則についても示す.
第一階コンパイラは一階論理式による論理プログラミングを可能にすべく開発された一種の自動合成プログラムである.確定節からなる論理プログラムに,
∀Y(p (X, Y)→q (Y, Z))
という形のゴール(実際はもっと複雑でも良い)を許したプログラム(一階プログラム)を入力とし,確定節論理プログラムを出力する.コンパイル自体は全自動で必ず停止するが,人力プログラムによってはコンパイルができないことがある.プログラミングという観点からみると,第一階コンパイラはPrologにある種のループ文を導入したことになっている.しかし論理変数が使用できるので通常のループ文よりはるかに柔軟性がある.また論理的な観点から言うと,第一階コンパイラのしていることは一階プログラムから導かれる普遍継続形式(universal continuationform)と呼ばれる,ある種の論理式のunfold/fold変換である.出力プログラムの計算結果は,常に入力プログラムの完備化の論理的帰結であること(部分的正当性)が証明される.
本論では,属性グラフ文法の概念を導入し,Hichart型プログラム図式に対する構造エディタへのその応用について述べる.属性グラフ文法は,文脈自由グラフ文法を,その各構文規則に意味規則を付随させることにより拡張したものである.属性グラフ文法の定義は,属性文法の場合と全く並行的に行う.そうすることの利点は,属性文法の分野で得られている結果が,そのまま属性グラフ文法の分野に導入できることである,その具体例として,直構文エディタで用いられている逐次的属性評価の手法が,Hichart型プログラム図式に対するエディタでも使用できることを示す.次に属性グラフ文法と属性文法の違いを明確にするために,属性グラフ文法のグラフ特有の問題への応用として,Hichart型プログラム図式における箱のレイアウト問題を取り上げる.そこでは,そのレイアウト問題を解く既存のアルゴリズムが,自然な形で属性グラフ文法に埋め込めることを示す.