プロデル1.7をプレリリースしました。Ver.1.6までは、手順の名前をすべて動詞として扱っていましたが、Ver.1.7では「名詞型手順」と「動詞型手順」に分けることに致しました。
動詞型手順と名詞型手順とは
プロデルでプログラムを書いていると、手順を定義する際に名付ける手順名として「動詞」が含まれる手順名と「名詞」である手順名との2つがあるかと思います。ただ、これまでは言語仕様として明確な区別はありませでした。そこでVer.1.7より「動詞型手順」と「名詞型手順」に分けて言語仕様として明確に定義することにしました。
動詞型手順
「動詞型手順」は、手順名の動詞部分が活用される手順です。動詞手順では、「~しない」などの否定形や、「~して」の接続詞などに対応します。この手順名の動詞部分は、次のような活用形で書くことができます。
活用の種類 | 表記例 | 備考 |
連用形 | 取得して | 複文で使用します |
否定形 | 存在しない | 戻り値の真偽が逆転します |
仮定形 | もし存在すれば | もし文の一部で使用します |
否定仮定形 | もし存在しなければ | もし文の一部で使用します。 戻り値の真偽が逆転します |
名詞形 | 取得したもの | 式で使用します |
終止形 | 取得する, 送る | 文で使用します |
(この分類はプロデルにおけるプログラミング言語仕様としての分類です。日本語文法としての体系とは異なります)
上記のうち「終止形」以外の活用は、戻り値を返す手順が存在する場合のみ使用できます。戻り値が無い手順の動詞を活用して書くと、構文エラーとなります。
プロデルでは、上記の活用の他に、動詞の送り仮名を自由に指定できます。例えば「取得せよ」「回転させる」などのような表記も可能です。この場合、文法としては「終止形」もしくは「名詞形」として扱われます。
同じ動詞の扱い
プロデルでは、動詞部分の末尾のひらがなを省いた名前が同じ場合、同一の動詞として扱います。ただし動詞の末尾が次のような動詞はひらがなを省きません。
- ~できる
- ~ない
- ~したもの
- ~である
- ~にする
名詞型手順
「名詞型手順」は、名前が名詞である手順です。名詞型手順の例としては、「サイン」や「絶対値」,「十進数」などが挙げられます。
名詞型手順は、式で戻り値を返す用途に適した手順です。名詞型手順では、助詞に「の」が使えます。また、xxx(ppp)のような関数表記で書くこともできます。複文やもし文の一部として利用したり、否定形で書くことはできません。
//名詞型手順を呼び出す式の例
10のサインを報告する
サイン(10)を報告する //関数表記
マイドキュメントのファイルの一覧を報告する
フォルダ一覧は、フルパスでマイドキュメントのフォルダの一覧
[ファイル:一覧(マイドキュメント)]を報告する
名詞型手順は、次のような手順定義で宣言できます。
- [手順名]の手順
- [手順名]を求める手順
- [手順名]かどうかを判定する手順
- [手順名]かどうかの手順
//名詞型手順の定義例
【A】と【B】の最大公約数を求める手順
終わり
処理済みかどうかを判定する手順
終わり
【対象】が完了かどうかの手順
終わり
今日の運勢の手順
終わり
なお、「選択(する)」や「四捨五入(する)」といったサ変名詞は、動詞型手順として定義してください。
変更点について
これまでプロデルの手順は、すべて動詞型手順として扱われていましたが、一部の手順が名詞型手順に変更されました (今後リファレンスに名詞型手順かどうかの表記を加えます) 。名前型手順は、手順名の末尾を活用できません。つまり名詞型手順となった手順では、手順名の末尾に送り仮名を自由に付けることができましたが、 Ver.1.7以降 厳密化により、送り仮名は付けられなくなり文法エラーとなります。
これまで作成したプログラムの多く(特に最近のサンプルプログラムに基づいたプログラム)はそのまま動作しますが、一部古い時期のプログラムなどで文法エラーとなる可能性があります。
この仕様変更でプログラムの修正が必要となる場合がありますが、厳密化により適切なエラーメッセージを表示できるようになり、また処理速度の改善などの利点があります。ご了承下さい。