Yuki

Yuki/詳細

Yukiは、動作の記述(コーディング)を、プログラミング言語/スクリプト言語等を用いずに、グラフィカルなインターフェースで行うためのサブシステムです。

データ、及び作りは汎用的であり、Neptune、2Dゲーム開発に限らず、ありとあらゆるプログラムを記述可能とします。

このサブシステムでは、ユーザへの表示(View)と入力の処理コンポーネント、データの管理とソースコードの生成までを行います。

データ構造

Yuki 0.1

Yuki 0.1ではとりあえずリスト型のデータ構造とします。このリストは、プラグインの呼び出しの構造体やif等を数珠繋ぎにしたものです。

Yuki 1.0以降

Yuki 1.0以降では、ニューラルネットワークのようなネットワーク型の構造を取ります。

・・・別にニューラルネットワークを採用して人工知能的なうんたらとかではありません。
よくよく考えてみると、プログラムの構造と言うのはほぼネットワーク型みたいなものなのです。

・・・まぁ一本のソースだけで見ればそうではないのですが・・・。しかしYukiにはソースコードファイルという概念が存在しません。 全てのソースを合わせて、一本のYukiなのです。

また、そのデータ構造は、関数ごとで分離するような事もありません。 全ての処理は、一つのネットワーク構造の中に含まれ、関数と言う概念は(おおよそ)存在しません。

Yuki IL

Yukiのデータ構造は抽象的なものであり、実際にそのままソースコードに変換するには不便な部分がままあるため、一旦中間言語(Intermediate Language=IL)へ落とし込みます。

この中間言語は、Yukiのデータ形式とそれ程大きく異なるものではありませんが、 しかし将来的にYukiのデータ形式が変更(例えばネットワーク型化)された時にも柔軟に対応可能とするためのものであり、 また、実際のソースコードにかなり近い形へと落とし込む(Cの#include、Javaのpackage宣言までをも落とし込む)事により 実際のソースコードの生成を容易に、また、柔軟(*1)に生成するためのものでもあります。

*1 : 実際のソースコードにかなり近い状態へ落とし込むと抽象度が落ちるのでは?と思われるかもしれないが 実際にはどの言語も似たりよったりである。もし、多くの言語と異なるような場合には、IL独自に含まれる「アリガタイデータ」に頼らず、独自に処理を行ってもらうことになる。

Yuki Converter

中間言語から実際のソースコードを生成します。
このコンポーネントは抽象化され、様々な言語のソースコードを生成可能にします。
とりあえず当面は C++ Converter を。余力があれば Java Converter も作りたいです。

Yuki View

「View」の通り、Yuki データの画面への表示と、ユーザからの入力を処理するコンポーネントです。
このコンポーネントは抽象化され、自由に入れ替えることが可能です。