2018/03/21 17:40

問題の分析には、現在ではUMLがあります。また、テキストでUMLの各種記述を行なう記法もあります。

では、テキストでのUMLを用いての仕様記述を考えているかと言うと、考えていません。

まず、文芸的プログラミングをベースに、特に「珠玉のプログラミング」における不変表明においてはVDMを参考にした記法が可能ではないかと考えています。

そのあたりはあり物を参考にできるのですが、問題はデータ構造です。UMLの場合、あくまで「オブジェクト」ですので、データ構造は書きやすいものとしてはレコードに制限されます。

対して、データ構造としては木、リスト、グラフ、スタックなどなどがあります。ここをうまく書ける方法はないか調べ、および検討しています。

木やリストの場合なら単純に a := [ a | a ] というような書き方ができます。

木とリストは区別したいところでもあるのですが、この時点ですでに悩んでいます。

書き方としては、a := [ h | a ] , h := a というような書き方もできないことはありません。

ただ、リストによって木を書けることも考えると、区別する必要があるのかという疑問もあります。

基本的なデータ構造は数が限られているので、a := tree と書いてしまうこともできないわけではないかと思いますが。