どの学問分野でも、それを言語で表現することで人に伝えることができます。数学では、記号を使った式で表現することが普通に行われます。これも広い意味で言語表現とされます。この言語の約束は、局外者にとっては全くの暗号ですから、文法(syntax)と意味(semantics)とを厳密に定義しておかなければなりません。しかし、式の表現方法自体だけでなく、その説明においても、説明に使う言語(英語とか日本語など)の枠で制限を受けます。代数式でy=a+bという表現法自体、英語の “y is equal to a plus b” に則った表現です。日本語ならば、動詞が最後にきて「a足すbはyになる」という語順になるからです。
式に表現することの目的は、文章での説明を論理的に明確にするため、雑物を捨てて単純化・抽象化・理想化することにあります。式を書く側とそれを読む側とはどちらも人間を考えていましたが、コンピュータに理解できるように整えた文章や式がプログラミング言語です。コンピュータの発達の初期の段階では、コンピュータ寄りの機械語を使っていました。その後、人もコンピュータも理解できるようなプログラミング言語が開発されるようになりました。さらに、世界のどこでも通用するような標準化が進められてきたのがFORTRANを始めとして最近のC言語に至る世界情勢です。これらの言語の構造は、残念ながら英語文化の影響を強く受けているので、我々日本人にとって外国語の勉強を強いられているような強迫観念にいつも襲われることになります。
コンピュータのプログラミングは、プログラミング言語を使ってコンピュータに対して明確で論理的な意思表示をする文の並び、つまり作文をすることと考えることができます。したがって、プログラミングは学術論文を書くのと似た構成になります。用語はきちんと定義してから使わなければなりませんし、論理の流れが途中から脱線しないように気をつけます。まとまった処理単位は、モジュールとしてまとめ、参考文献の引用のように名前を付けて参照します。これがサブルーチンやファンクションとなります。しかし、この参照が多くなりすぎると、ブラックボックス化してプログラムの見通しが悪くなります。
コンピュータを擬人化してコンピュータと付き合うことを、マン・マシン・コミュニケーション(man-machine communication) またはユーザ・インタフェース(user interface) と言います。擬人化の一つの理想が人工知能です。現実的なコミュニケーションの方法は、人間側が決めたコマンドなどの言葉に対して、コンピュータが適切な計算処理をして結果をメッセージやグラフィックスで返すようにプログラミングを設計します。幾何を応用する処理の代表的なものがCADとコンピュータグラフィックス(computer graphics: CG)です。そのどちらも高度なプログラミングの知識が必要になりますし、初心者にとって中身を理解することが難しい面があります。難しくなる理由の一つが、1.1節で触れたように、幾何学的要素を代数的に扱うことができないことにあります。もともとコンピュータは代数計算に向いた機械(マシン)ですから、すべてのコンピュータ言語は代数計算に向くように設計されています。幾何の計算を便利にするには、幾何の処理に適したコンピュータ言語を工夫することから始めなければなりません。このための工夫は、今までに随分となされてきました。結論から言えば、この著作で筆者が紹介する幾何言語G-BASIC(Geometry-BASIC)も、CADやCGをユーザが使いやすくしたい、というアイディアを実現しようとしたものです。
初等幾何学の勉強の範囲では、形状の特徴を抽象化して扱いますので、寸法や座標といった概念を使わなくても済みました。ギリシャ時代の幾何学は、詭弁術の一歩手前のようなところがあって、図形の性質の説明をすべて言葉で論述します。現代の初等幾何学の参考書では、言葉の一部を代数式のような記号で表現しています。これは代数式とは性質が違いますので、数値計算には直接応用できません。たびたび例に出しますが、三角形の内接円の中心を求める、という処理を考えても感覚的に分かるように、幾何学の原理と実践的な数値計算術との距離はかなりあるのです。幾何学の原理からあまり逸れないで、数値計算に向くコンピュータ言語として、筆者が提案するのがG-BASICです。この言語を有効に利用してもらうには、直接的なマニュアルでは説明しきれないような、哲学的な考え方にも納得が必要です。これが、この章の長い長い前説になりました。
次のページ