忍者ブログ

RPG製作ソフト「Role Paint」を作っていくぜ!ツクールのようなRPG製作ソフト「Role Paint」を作っていくブログ。 相互リンク募集中

プログラミング言語の自作か、それともRubyによるDSLか

ビジュアルプログラミングの仕組みがある程度完成した(構想も含めて長かった・・・)ので実際に動く言語の中身の実装をやり始めた。その中で軽い問題が発生

「速さを求めてプログラミング言語を自作するか?それとも遅くてもいいから開発の高速化とか拡張性を求めてDSLにするか?」である。

まず、プログラミング言語の自作。これはツクールのスクリプトのような簡易的な作り方ではなく、関数も実装できる一般的なプログラミング言語の自作である。この方法は問題点がいくつかある。

一つ目はプログラミング言語の自作に時間がかなりかかる事。まぁ、別にこれは大した問題ではない。どうしてもやりたければ時間をかけてやるだけである(その分、待っているユーザーに迷惑がかかるが・・・・)

二つ目はMRubyとの連携が取りづらい事。2つの言語間を連携する形になるため、かなりやりづらい。

三つ目はユーザーの手による拡張が殆ど不可能に成る事。要するに「こういう文法やイベントコマンドを入れたい」という事がかなり難しくなる。一番痛いのはこれである。

そこでもう一つの方法も視野にいれる事にした。DSL(Domain Specific Language)である。難しい名前だが要は「ツクールのイベントコマンドやSQLのような、その環境専用の言語を作る」という意味で、Rubyのような高機能なスクリプト言語はこの作成を得意とする。Role Paintの場合はScratchのようにC言語並に汎用性の高い物になるだろう。また、スクリプト上で作るのでユーザーによる拡張が簡単に出来るようになる。

問題点としては動きが遅い事。本来CやC++で済ませば良い物をRubyで動かすのだから当然である。

どちらにすべきかは2~3日ぐらい考えてやるとする。開発の期限である6月にかなり迫ってしまっているが、まぁ仕方がない。

拍手[2回]

PR
Comment
name
title
color
mail
URL
comment
pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
コメントの修正にはpasswordが必要です。任意の英数字を入力して下さい。