Mopsってなに?
Q.Mopsってなに?

A. Mopsというのはパブリックドメイン(つまりタダ)のMacintosh用プログラミングシステムです。
名前の由来はMike's Object-oriented Programming Systemの略だということですが、表記するときは先頭のMだけを大文字にしてほしいそうです。
それはともかく、MopsForth言語をベースに、SmallTalkの流れをくむオブジェクト指向プログラミングを可能にする拡張が施されています。
(ちなみに、C++はSimula 67のオブジェクト指向プログラミングの流れを汲んでいるようです。)
MopsはMacintoshの標準的なインターフェースを構築するためのクラスライブラリとチュートリアル付きのエディタを備えており、ちょっとした実用アプリケーションを作りたいというような要求に十分応えてくれるでしょう。

Q.どんな良い点がありますか?

A. 効率的でなおかつ柔軟なオブジェクト指向プログラミングができるところです。
Mopsではメソッドのバインドは通常C++などと同様に静的に行われます。これは、SmallTalkや(Nextの)Objective-Cがつねに動的バインドであるのと対照的です。静的バインドはコンパイル時にバインドが終了するためより効率的であるといえます。
しかし、コンパイル時にオブジェクトが決定できないときなど静的バインドでは問題があるときがあります。こんなとき、Mopsでは明示的に動的バインドを行うことができます。C++でも動的バインドを行うことができますが、動的バインドをおこなうメソッド(メンバ関数)の定義のところで宣言を行う必要があります。
Mopsでは定義されたメソッドはすべて静的バインド、動的バインドの両方を行うことができます。
動的バインドの場合でもハッシュテーブルを用いて十分高速にバインドされます。またヒープベースのオブジェクトなどの場合、コンパイル時にオジュジェクト自身は決定できないが、そのクラスはわかっている場合などはオブジェクトポインタを用いてメソッドのバインドをコンパイル時に済ませておくことができます。
またMopsは多重継承をサポートしています。メソッド名が衝突するような場合でもMopsでは安心して多重継承を行うことができます。
これらの特徴を持つMopsは簡潔な記述で基本的なクラスを複数組み合わせ、複雑な機能を持つ独立性の高いクラスを簡単に作り出すことができます。

Q.Mopsでコントロールパネルや機能拡張書類はつくれるの?

A. 残念ながら現在のところMopsではアプリケーションしかつくれません。
しかし、PowerMopsの将来のバージョンではshared libraryを生成できるようになるそうです。待ちましょう。

Q.Mopsのアイコンをダブルクリックしたんだけどメニューのない四角いウインドウが出るだけです。どうなってるの?

A. ちゃんと、Readme.1stファイルを読んでください。
Mopsは最初にMops自身のシステムをコンパイルしなければなりません。
とりあえず、終了させたいのなら bye <ENTER>と入力してください。 Mopsのウインドウのなかで命令実行のきっかけになるのはエンターキーです。リターンキーは使えません。注意してください。


戻る