Mind

出典: Wikipedio


Mindマインド)は、片桐明が開発した日本語ベースのプログラミング言語

MindはForth系の言語であり、日本語による柔軟なプログラミングが可能である。また単に日本語が使えるというのではなく、ステートメントやキーワード、単語等すべてに日本語(漢字・ひらがな・全角カタカナ)が使える。

Forth系のため、インタプリタコンパイラの両方を持ち、インタプリタでテストした後にコンパイラでの高速化や、システム周りの記述も行なえるなどの特徴もある。 <ref>Mindが発表される直前までに、Fifth86という製品があり、i8086アセンブリ言語がソース中に直接書き込めるという特徴があった。Fifthという名称にはForthの上を行くという、片桐明の強い思い入れが感じられる。</ref>

MindはMS-DOS時代からリギーコーポレーションより販売されていたが、MS-DOS版は今はフリーウェア化されている。2003年現在、Windows版(商用)とUNIX版(GPL準拠)があり、スクリプツ・ラボから販売・提供されている。そのほか超漢字版などもある。

目次

構文例

外部リンク1のページより、プログラム例を引用する。

午前?とは                           ←「午前?」の定義 
  時刻を得て
  時が 12より 小さいこと。

メインとは
  午前?                      ←「午前?」の引用 
    ならば 「おはよう」を
      さもなければ
        「こんにちは」を
      つぎに
  表示し 改行すること。

このように、Forth的な語順をとるが、基本的に数式などを除いて、日本語を使う。また、例のように、日本語の単語の定義を決めて、それを以降のプログラム文で使用するといったスタイルをとる。すなわち、Mindのプログラムは、単語の定義の束といっても過言ではない。

C言語Pascalの関数との違いは、引数が表面に表れないことである。他言語のプログラマが最も驚くのはこの点かもしれない。これはスタックを縦横に活用することで実現している。最初は違和感があるが、慣れると非常に簡潔な構文でプログラムを書くことができる。

4と 5を 加え 表示する。

ところで日本語の構文は目的語の後に動詞がくる。 すなわち、オブジェクト(この場合は数値)の後にオペレータ(この場合は表示)がくるMindの構文は、日本語の構文と非常に親和性が高い。 なお、この順の表記法は逆ポーランド記法としても知られている。

同じ外部リンク1のページのある他プログラム例のメイン部分を引用する。

メインとは                                
    接続処理し
    送信処理すること。

このように、プログラムがそのまま、動作記述のドキュメントになっていることが特徴である。

解説

Mindは、CやPascalやBASICのキーワードのみを日本語単語化したような擬似日本語プログラム言語とは一線を介した可能性を秘めた言語である。 すなわち、日本語のソースコードを単に別の言語のコードに転換するトランスレータではなく、Mindはソースコードを直接コンパイルしオブジェクトファイルを生成する。

なお、Mindのコンパイル動作を外からみると日本語がそのまま解釈されているようにもみえるが、それは誤解である。Mindは日本語の日常言語解析を行うような超高級言語ではない。 内部は一般的な、CPascalと同様の構造化された手続き型言語である。 ただ、ソースにおけるデータの引き渡しの表記が引数ではなく、スタックを明示的に使うことが異なる <ref>CやPascalでもコンパイラ後は、データの引き渡しはスタック操作である。</ref>。

実際には、いわゆる「てにをは」などひらがなは内部インタプリタ(あるいはコンパイラ)の構文解析では読み飛ばされる。従い、変数や関数などワードの定義は漢字もしくはカタカナで定義するのが望ましい。

Forth系言語の特徴であるが、実用的なプログラムを作るにはスタックの使用状況を強く意識する必要がある。ワード(関数)呼び出し前後のスタックの消費量をつかんでいないと、たちまちスタックオーバーを招いてしまう危険がある<ref>スタックオーバーの危険はMindに限らず、Cでも存在する。というよりもコンパイラは一般にスタックオーバーのリスクをチェックしてくれない。</ref>。

アプリケーション例

MS-DOS向け日本語ワードプロセッサキムラ太郎はMindで実装されていた。 (一太郎木村太郎の駄洒落)

富士通から発売されていたFM秘書ソースコードはMindで記述されていた。 また、日本語ワードプロセッサ専用機の『OASYS-30シリーズ』のMS-DOS起動システムには、プログラミング言語としてMindが添付されていた。


外部リンク

注釈

Template:Reflist

個人用ツール