|
Mindセミナーの動画を公開 (2022/06/26)
Mind WorkBench Talk 販売開始 (2018/09)
ウィンドゥ内でコンパイル・実行できる簡易開発環境「Mind WorkBench」
Mind で Androidのアプリ開発! Mind for Android Online をサービス開始しました
最新 Mind Version 8 をフリーソフトとしてリリースしました(2017年3月)
|
最新版 Version 8 のダウンロード (2017年3月 Windows / Linux 同時リリース) | ||||||||||||||||||||||||||
Mindサポート掲示板: Mindのご質問はこちらへ | ||||||||||||||||||||||||||
ブログ: Androidで日本語プログラミング (日本語プログラミング言語「Mind」のAndroid版を開発した記録) | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
単語名だけでなく文法まで、すべて「日本語」で記述できる高性能コンパイラ、それがMindです。日本語を使って、まるで日常会話のような感覚でプログラムを記述できるので、コメントに頼らない抜群のドキュメント性と高い開発効率が実現できます。
プログラム開発コストを引き下げます
習得の容易さ
- C言語のような長いトレーニング期間は要しません。プログラム未経験者も短期間の教育で(Cのほぼ3分の1)実務アプリケーションを組めるようになります。
高い生産性
- 熟練者であっても、記述レベルの高さ、ソースのドキュメント性、再利用性の高さにより、他言語に比べて開発期間は短縮されます。メンテナンスコストも低く、別の担当者への引き継ぎも短期間で確実におこなうことができます。
- ライブラリ化の容易さが自身あるいは他者によるプログラムの再利用を促します。
- Cをしのぐ細かな処理と高い抽象表現ができ、Cより早く安定に動作するプログラムの開発ができます。
- 32ビットアドレシング、32ビット整数演算を標準としており、メモリモデルや数値レンジ、データの型など、細かなことに神経を使う必要がありません(注:小数演算ライブラリも利用可)。
- ビデオ、キーボード、通信、マウスなど、ハードウェアやBIOSに依存するような機能が、マシン/OSの仕様そのままではなく、抽象化・標準化された形で提供されるので、対応するライブラリにさえリンクすれば、ハードやBIOSの知識が無くても、それらを駆使した高性能なプログラムを開発することができます。(DOS/Vライブラリと併用した場合)
- コンパイラでありながら、インタプリタのように対話形式で即実行する機能も持ちます。ライブラリの動作確認やデバックに威力を発揮します。
ワープロ感覚の手軽さです
- プログラムをまるで通常の文書を作るように書くことができ、言語の習得/メンテナンスが容易です。
- 頭で考えたロジックをそのままプログラムとして表現できます。
- 自分で単語を定義し拡張していく言語なので、創造性に富んでいます。
- C言語と比べ、非常に軽い処理系です。極端な例では、2デッキFDのみで、ハードディスクもEMSも無い環境であってもコンパイラは走ります。
午前?とは ←「午前?」の定義 時刻を得て 時が 12より 小さいこと。 メインとは 午前? ←「午前?」の引用 ならば 「おはよう」を さもなければ 「こんにちは」を つぎに 表示し 改行すること。
半分とは 2で 割ること。 ←「半分」の定義 四分の一とは 半分の 半分。 ←「半分」を引用して 「四分の一」を定義 メインとは 値1は 変数 合否は 変数 起動パラメータから 単語切り出し 値1と 合否に 入れ 合否が 偽? ならば 「数値の指定が誤りです。」で 重大エラー つぎに 値1の 四分の一を 数値表示し 改行すること。 ←「四分の一」実証
システム記述に向いています
- ビット操作、シフト演算、メモリの絶対番地アクセス、I/Oポートアクセスなど、あらゆる処理を記述できます。
- Mindレベルのままでシステムコール、BIOSコールができます。さまざまな割り込み番号を使うものや、BPレジスタを使うような呼び出しも可能です。
- デバイスドライバの記述さえ可能です(デバイスドライバーキットはオプション)。
- アセンブラ(MASM Ver.5まで)記述のコードを取り込み、Mindの単語として登録および呼び出すことができます。割り込み処理など、速いレスポンスを要求され場面で利用でできます。
- 特に日本語の文字列操作、ファイル処理、通信機能が優れています。データ処理や通信ソフトの開発に向いています。C言語では面倒なコーディングになることもMindなら簡単に書けます。
接続処理とは モデム初期化し 通信エラー? ならば エラー文字列で 重大エラー つぎに "03-4444-5555"に 接続すること。 送信処理とは "B:MESSAGE.TXT"を ファイル送信すること。 メインとは 接続処理し 送信処理すること。
残量処理とは マウス使用? ならば 「左クリックでメニューに戻ります。」を 指示表示し 残量表示し 左クリックを待ち さもなければ 「リターンキーでメニューに戻ります。」を 指示表示 残量表示し リターンキーを待ち つぎに ユーザウィンドウをクリアすること。
高レベル語が開発時間を短縮します
- 使用頻度の高い重要語は抽象化されており、ややオブジェクト指向的な性質を持たせています。たとえば文字列の代入は数値の代入と同じように、
住所を 住所控えに 入れのように簡単に記述できます。長さを越えた代入に対する保護も入っています。
また、
ファイル1を ファイル2に 入れのように書けばファイルさえも「代入」できます。このように単純変数でなくても、配列/構造体/シーケンシャルファイル/ランダムファイル、すべて「入れる」の1語だけで丸ごとの代入操作をおこなうことができます。
これは「クリア」も同様です。シーケンシャルファイルを除くすべてのデータは「クリアする」と書くだけでクリアされます。
- 通信ライブラリにおいても高レベル語が用意されています。
"03-1111-2222"に 接続しと書けば、オートダイアルしてオンライン状態になります。
その直後で、
"C:\DATA\TEST.TXT"を ファイル送信すると書けば、ファイル転送プロトコルを使ったエラーフリーなファイル転送がおこなわれます。セッションの確立・ファイルのオープン・データの読み出し・パケットの組み立てとデータ転送・エラー処理などがすべてこの1語に隠蔽されており、通信に関する詳しい知識が無くても通信ソフトを組むことが可能です。
自動着信の単語(「着信が有るまで待つ」)を使うことで、ホスト側のソフトも開発 できます。
日本語であることを除けば普通のコンパイラです
- 他の言語のコードを吐き出す、いわゆるトランスレータではありません。ダイレクトにオブジェクトファイルを生成します。
- データの引き渡しに明示的なスタックを使うことを除けば、内部はCと同様のごく普通の手続き型言語です。また徹底した構造化プログラム言語です。
- たとえば、SmalltalkやLISPのように、独自の環境に入るタイプの言語ではありません。コマンドラインから起動すると、ソースファイルを読み込み、オブジェクトファイルを吐き出して終了する、普通のコンパイラです。
- たとえば、PROLOGのように難しい理論で構築される言語ではありません。動作原理や文法は極めてシンプルであり、場合によっては内部動作を見越して最適化したコードを書くこともできます。
オブジェクトファイルとメモリモデルについて
- オブジェクトファイルはDOSのCOMファイルとして生成します。但し、起動直後にメモリ再配置をおこない、メモリ上ではスモールモデルとして走行します。
- コードで64KBまで、データで64KBまでのプログラムを開発することができます。これ以上のアプリケーションでは、子プロセスを使って機能分担する方法があります。また、ランタイムライブラリを主プログラムから分離することで、ユーザのコード域を増やすこともできます。
- リンクとコンパイルを同時に行うので、リンクは不要であり、直ちに実行可能なオブジェトを得ることができます。(分割コンパイル/ライブラリの概念を持ちます)
- ユーザが開発したアプリケーションは自由に譲渡・販売することができます。ランタイム・ロイヤルティは不要です。
日本語によるプログラミングとは?
プログラムを日本語で記述することのメリットは古くから多くの研究者によって指摘されており、実際にプログラム言語を開発する試みも数多く行われました。
しかし残念ながら研究室レベルで終わってしまうものや、実用性を持たない設計がされてしまうことが多く、日本で広く使われるまでには至りませんでした。
日本語によるプログラミングを実務としてのソフト開発に適用し、実用的な多くのアプリケーションの開発実績を持ち、多くの日本語プログラマを生み出したのはMindが初めてと言って良いでしょう。
Mindは,スタック・マシンの機構を計算上の中心概念としながら,処理系に負担をかけずにかなり自由な表現を許すという特徴を持ち,よい処理系と開発環境が整備された現時点でもっとも実用的な日本語プログラミング言語と言えよう.(財)機械システム振興協会『21世紀における新 社会システム開発に関する調査報告書−日本語プ ログラミングの調査−』(昭和63年3月)より抜粋