はじめに
markdownで内部設計書を起こす際に、ロジック的にごちゃごちゃしているのをまとめるときにすべてフロー図ではちょっとめんどうなので、テキストでロジックを表現しようとするとします。システムエンジニアになってしまうと、もう実装の現場から離れてはやうん年、いまから最新の実装言語でロジックを書こうにも、細かいところはよくわからない。古い言語で書くとなんか若いコにばかにされそうな気がする。そんな、あなたに耳よりなロジック記述方法があります的なお話です。
概要
日本語ロジック仕様記述言語 Re:Mind(リマインド)はオープンな設計言語仕様で、どなたでもこの記法を使いロジックを記述することができます。
制御構文の開始シンボルとして、◇、〇、□、・などの全角記号を用い、箇条書きされた日本文としての体裁を日本語トランスコンパイラ言語 Re:Mindの構文と共有しています。◇は分岐構文、〇はループ構文の開始と終了を表し、冗長な日本語表記がなくてもフロー図の表現に慣れている方が直感的に認識できることを考慮しています。
言語仕様(抜粋)
変数
・整数 年齢 = 34
・文字列 名前 = "花子"
・ブール値 特待区分 = true
□全角文字の中点に続いて、型名を記述し、空白に続いて変数名を記述します。
・型名は一般的なプログラミング言語の半角型名でも可。
・半角等号で初期値を宣言できます。
制御構文
分岐
◇i > 0 の場合
//todo
◇ここまで
□全角記号のひし形◇が条件分岐の開始となります。
・続いて論理式を書きます。半角かっこは不要。
・続いて「の場合」と書きます。半角で書かれた論理式とはくっついていても可。
・全角記号のひし形◇が条件分岐の終了となります。
・つづいて「ここまで」と書くことができます。省略も可。
◇i > 0 の場合
//todo
◇他に i < 0 の場合
//todo
◇他に
//todo
◇ここまで
◇途中で最初の論理式とは排他的な条件をつづける場合は、全角ひし形◇に続いて「他に」と書いて、論理式を書いて、「の場合」と書きます。
・論理式の前後の空白は、論理式を半角で書いている場合は省略できます。
◇最後に例外条件を明示する場合は、全角ひし形◇に続いて「他に」と書きます。
繰り返し
〇i=0,i<10,i++ 繰り返す
//todo
〇ここまで
□全角記号の丸印〇が繰り返しの開始となります。
・続いてカウンタ論理式をカンマ区切りで書きます。カウンタ変数の型名と半角かっこは不要。
・続いて「繰り返す」と書きます。半角で書かれた論理式とはくっついていても可。
・全角記号の丸印〇が繰り返しの終了となります。
・つづいて「ここまで」と書くことができます。省略も可。
〇繰り返す
//todo
〇ここまで
□全角記号の丸印〇に続いて「繰り返す」と書いた場合は無限ループになります。
〇繰り返す
//todo
◇j==0 の場合 やめる
//todo
〇ここまで
・繰り返し構文内で条件分岐文を書いて「やめる」と書くと、直接のループを脱出します。
/** index */
〇int インデックス=0,インデックス<10,インデックス++ 繰り返す
//todo
〇ここまで
・繰り返し構文のカウンタ変数をインラインで日本字で宣言することもできます。
おわりに
意外とシステム開発の現場では、複雑なロジックのモジュールの場合、デベロッパさんとの意思疎通がうまくいかず、SE的な目線的な表現としてはデベロッパさんの爆走を看過してしまい、できあがったモジュールの出来をみたら、こんなんじゃなかった的なことは、(暗によくあるのではといいたいところですが)まったくご経験されたことのないあなたは超優秀マネージャです!