手順呼出し文

手順とは、文をまとめたプログラムの単位です。手順宣言文で定義した手順は、「手順呼出し文」を使って手順を実行させることができます。

手順呼出し文には、補語と動詞を書きます。

例えば、次の文では、2つの実補語と動詞で書かれています。

「文章.doc」をデスクトップへコピーする

手順呼出し文は、次のような書式で書きます。

書式

《式》《助詞》・・・《動詞》
《レシーバオブジェクト》《式》《助詞》・・・《動詞》

《式》《助詞》(実補語)

「○○を」「○○へ」にあたる部分です。
(一般に引数(ひきすう)と呼ばれるものにあたります)

助詞の順序は決められておらず、「、」やスペースによる分かち書きも不要です。

また、《式》には、手順呼出し式をさらに入れ子にして書くことができます。この場合、補語がかかる動詞は、スタックによって管理されます。手順呼出し文の式が長くなる時には、式を[ ]または( )で囲むことで読みやすくなり、意図したとおりに解釈されるようになります。

《動詞》

手順の動詞を書きます。
ここで指定できる動詞は、《レシーバオブジェクト》で指定したオブジェクトによって異なります。
オブジェクトの種類によって使うことができる手順は、異なります。手順を調べるには、「リファレンス」をご覧ください。

《レシーバオブジェクト》

手順を呼び出す対象のオブジェクトを指定する場合に書きます。
オブジェクトとは、プログラムで扱うデータや動作を、種類ごとにまとめた部品です。
オブジェクトによって、呼び出せる手順の《動詞》が異なります。

オブジェクトについては、「種類」の章で解説しています。

実補語

プロデルでは、「~を」のような手順の主語や目的語にあたる部分(式と助詞の組み合わせ)を、補語と呼んでいます。特に実補語は、式と助詞をペアして、手順を実行する際に使うパラメータ(引数:ひきすう)の役割を持っています。

例えば、先ほどの「コピーする」手順を実行する際には、「~を」「~へ」の二つの助詞を使っています。

「文章.doc」をデスクトップへコピーする

この文では、『「文章.doc」を』の部分が実補語です。

レシーバ補語

手順には、実補語の他にも「レシーバ補語」と「形式補語」があります。次のこれらを紹介していきます。
レシーバ補語とは、手順を実行するオブジェクト自身を指し示している補語のことです。

オブジェクト指向では、物(オブジェクト)に対して振る舞いを決めておきます。プロデルでは、その振る舞いを「手順」と呼んでいます。手順を呼び出す際には、その手順を持っている(振る舞いができる)オブジェクトを指名して、手順を実行させます。指名するオブジェクトのことをレシーバオブジェクトと言います。

レシーバオブジェクトを指定するには、実補語と同じように「~を」や「~へ」などの補語で指定します。この補語のことをレシーバ補語と呼んでいます。プロデルでは、自然な日本語でプログラムが書けるように、レシーバオブジェクトを指定する助詞を、手順ごとに変えられます。

例えば、リストボックスの「加える」手順では、リストボックス種類の定義の中でレシーバ補語が「~へ」助詞に対応する補語として宣言されています。『自分に【内容】を加える手順』にある「自分」という字句は、「加える」手順のレシーバオブジェクトが、リストボックス種類であることを示しています。

名簿リストへ「秋山さん」を加える

このように手順を定義すると、「加える」と言う動詞を使う手順を呼び出す際に「へ」助詞に指定されたオブジェクトが、リストボックスのオブジェクトであればリストボックス種類の定義にある「加える」手順のプログラムを実行してくれます。

見かけ上は、実補語もレシーバ補語も見分けがつかないので、難しいように見えますが、動詞ごとにレシーバに指定する助詞を変えられることで、記号に頼らない日本人ならすぐに理解できるプログラム表記ができるように工夫しています。

手順の名前

次に、メールを送信するプログラムを使って説明しています。

お知らせメールという送信メールを作る
お知らせメールの件名は、「定例会議の開催」
お知らせメールの宛先は、「member@zzz-company.co.jp」
お知らせメールの本文は、「来週月曜日の会議は午前10時からです。」
お知らせメールで「Reply-To」というヘッダ情報へ「no-reply@myapp.net」を設定する  
お知らせメールをメールアカウントから送る

このプログラムを見て「プロデルを勉強してなくても、何をしているのか理解できる!」と、思ってもらえたなら嬉しいです。

プログラムを順に説明すると、まず一行目では、「送信メール」という種類のオブジェクトを作り、「お知らせメール」と名前を付けています。

2行目から4行目では、送信メールの件名や宛先の内容を設定しています。「件名」や「宛先」、「本文」がそれぞれ「送信メール」の設定項目です。

5行目では、メールの返信先に別のメールアドレスを使用するように、メールのヘッダを設定しています。

6行目では、送信メールを指定したメールアカウントから送信しています。送信メールの「送る」手順を呼び出すことで、設定した内容でメールを実際に送信します。「送る」手順には、「~を」助詞と「~から」助詞で、送信する対象のメールと、送信元のアカウントを指定します。

なお、このプログラムには書かれていませんが、「メールアカウント」変数も「アカウント」種類のオブジェクトであり、サーバ接続時に使用する送信元のメールアドレスや送信パスワードを設定しておきます。

形式補語

メール送信プログラムの例文では、「送る」という名前の手順を使いました。

多くの場合、手順の名前(手順名)には、動詞がそのまま使われます。ただ、プログラム文のまとまりを手順の名前として、日本語で名前を付けようとすると、動詞だけでは表現しきれないことが多々あります。

プロデルでは、補語の部分を手順の名前の一部として名付けられるように、形式補語を用意しました。形式補語を使うと、補語と動詞をセットにして手順名として使うことができます。

プログラム例の中では、メールのヘッダに情報を加えるために「ヘッダ情報へ設定する」手順を使っています。この手順では、形式補語を使っています。

お知らせメールで「Reply-To」というヘッダ情報へ「no-reply@myapp.net」を設定する

この手順の場合、「ヘッダ情報へ」の部分が形式補語です。形式補語は、実補語やレシーバ補語とは違い、手順名の一部としての役割で使います。

なお、手順呼出し文では、書く補語の順番を変えることができますので、このプログラムのように、形式補語(ヘッダ情報へ)と動詞(設定する)とを離して書くこともできます。

このように、プロデルでは、形式補語と動詞を組み合わせて、1つの手順の名前とすることで、ほとんどの場合で、手順にわかりやすくて的確な名前を付けられるようになりました。

 

手順呼出し式 (値を返す手順)

手順呼び出した後にその実行結果が返される場合は、手順呼出し式によってその結果を式として指定できます。

書式

《変数名》は、《式》《助詞》・・・《動詞》したもの

《変数名》は、《オブジェクト名》《式》《助詞》・・・《動詞》したもの

「~したもの」は、省略することができます。

《式》には、文字定数や変数、数値などの式を書きます。
《変数名》には、一般に文字や数値を格納することができる変数の名前を書きます。
《レシーバオブジェクト》には、ウィンドウやボタンと言った種類のオブジェクトを書きます。

ページ先頭へ