|
A.9.6 出力およびインターフェース
グラフィックス
3Dグラフィックスでの隠表面除去はディスプレイの解像度とは独立に行われる.
フロントエンドでのグラフィックス描画にはカスタムメードされたPostScriptインタープリタが使用されている.
ノートブックは機種に依存しない専用のビットマップ・イメージ形式を使用する.
フロントエンド
フロントエンドはカーネルとの対話および内部での異なる要素間の対話にMathLinkを使用する.
フロントエンド中のすべてのメニュー項目および他の関数はMathematica式で表されている.
設定および初期設定ファイルはMathematica言語形式を使用している.
ヘルプブラウザは本書で使用されたソースコードから生成され,Mathematicaノートブックに基づいている.
ノートブック
ノートブックはMathematica式で表されている.
ノートブックファイルはMathematicaのコメントの形式で,キャッシュされたアウトライン情報を付加的に含んでいる.この情報を使用することで,より効果的なランダムアクセスが可能となる.
ノートブックは段階的保存されることにより,データの再書き込みやすでに書き込まれたデータの移動を必要な限り最小限にとめることが可能である.
デフォルトでは,機種に依存しないダブルバッファリングが使用され, ウィンドウの内容が更新されるときの画面のチラツキを最小にする.
自動スクロールは,コントロール理論機構を使用して,滑らかさと制御可能性を最適化する.
すべての特殊文字は機種独立にUnicodeで表されている.漢字および他のフォントではマッピング表が用意されている.
スペルチェックとハイフン付けは,2万語の技術用語と5000のMathematicaおよび他の語が追加された辞書,アルゴリズム,それに10万語の標準英語辞書を使用している. スペル訂正は原文と表音韻律法を使用している.
MathLink
OSIの表現では,MathLinkはプレゼンテーションレベルでのプロトコルであり,メッセージおよびストリームに基づいているすべてのトランスポートメディアの上方に重ねることが可能である.
MathLinkはリンク両端が互いに互換なコンピュータシステムであると判断された場合はデータを圧縮したフォーマットでコード化する.
MathLinkは Mathematica式と同様に割込みのようなバンド以外のデータでも転送可能である.
可能な限りMathLinkは動的にリンクされる共有ライブラリを使用して実装されている.
式のフォーマット
フロントエンドはフォーマットされた式のボックス構造を表すため指定された非循環グラフを使用する.
ボックスは演算子優先パーサーの2次元への一般化を使用して解釈される.
段階的パーシングが構造およびディスプレイ更新を少なくするために使用されている.
文字間隔と位置決めはフォントデータと演算表から決定される.
改行はすべての式でTeXのテキストレイアウトに使用されているのと同様な方法で,大域的に最適化されている.
入力中,改行は式での小さな変化が大規模な再フォーマットを起すことは稀なようになっていて,入力がジャンプする場合は,楕円形のカーソル追跡子が瞬間的に現われ,視線を誘導する.
式のフォーマットには約2000ページのCコードを使用している.
|