SYDEKICK/F の方向を決めました

半年ばかり、SYDEKICKを形式言語で書く試みを行なっており、とくに記述言語の方向を検討していました。案としてあれこれ書いてみたものとしては次のようなものがあります。

  • 一般的なプログラミング言語に似たもの

  • Prolog風な印象を強めたもの

  • オントロジーを意識して、rdfっぽさがある… わかりやすい例で言えばhtmlに似たような雰囲気のもの

加えて、これらの組み合わせも検討していました。その結果、計6個のバリアントを弄っていました。

で、いつまでも6個のバリアントを弄っていても埒が明かないということで、SYDEKICK/Fで使う形式言語をどうするかを決めました。SYDEKICK/Fではとりあえず1つめの「一般的なプログラミングに似たもの」を採用します。

ただ、いちいち変数を引数として渡すところを書くとか、呼び出し関係がどうこうという話とか、そもそも特定のモジュールなどをユーザが直接よびだすことだってあるわけだしということがあり、書かれたまま実行すれば機能するというわけでもありません。

それらはそれらとして特徴ではあるのですが、一番の特徴は多名体と呼んでいるものではないかと思います。たとえば、 { "abc" d e } という名前があったとします。これは、 { d "abc" e } と書いても同じものを指し示し、 d とだけ書いても同じものを指し示すと定義しています。このあたりは Syntax というよりも Semantics の話になるので、そういう書き方を認めるのは難しくありません。これがなんのために必要と考えたのかという点ですが、たんに「翻訳の手間を削減する」ためです。多名体として定義された名前の一部を残しておき、そこに母語の名前を追加すれば翻訳は終わるくらいのイメージで考えています。もちろん、多名体を徹底して用いるとすると、やはり手間にはなるわけですが。それでも全文を訳す手間であるとか、元バージョンとの比較といった手間は削減できると考えています。

こういうことを考えたのは、SYDEKICKはSDKであるという前提があるためです。SYDEKICKそのものがSDKでもありますが、開発されたライブラリなりモジュールなりといったものの使用・運用の垣根を低くすることを考えると、日本語や英語に大きく依存したものではないほうがいいのではないかという理由です。

SYDEKICK/F のSyntaxとSemanticsは、それぞれモジュールとして記述します。ただ、いまのところProduct IDをどうするかは決めていません。SYDEKICK/F BASIC EXAMPLE は、BASIC EXAMPLEのバリアントとして書けばいいと考えていますが、そうするとSyntaxとSemanticsはそれより前に置いたほうがいいのか、それともこれまでのProduct IDは壊さないようにして後に置いたほうがいいのかと悩んでいます。

これらとは別の要素になりますが、文芸的プログラミングという考え方があり、その記述言語としてWEBだったり、C言語に対応したCWEBというものがあります。詳細は省きますが、内容は色々あれマクロのようなものもWEBやCWEBで書けます。このあたりも取り込んで行きたいと考えており、参考書籍を何回か読んでいるところです。まだ、こういう書き方や機能がいいなというところが固まっていないのではありますが。

というような作業を続けて来ており、まだいろいろと決まっていないところは多々あるのですが、ともかく方向は決めました。

なお、基本となる3種類の書き方の他の2つですが、1つはEASY (Easy Adventure SYstem)と、Φ Meta Systemにて活用しようかと考えています。

SYDEKICKについて今後まず BASIC SIZEを現行の書き方に改定し、その後にSYDEKICK/Fで書いたEXAMPLEおよびSyntaxとSemanticsの作業に入ろうと考えています。

とりあえず、6個のバリアントを弄るということからは開放されたので、またちょくちょく進展を書いていけるのではないかと考えています。

ここから先は

0字

¥ 100

この記事が気に入ったらサポートをしてみませんか?