ここから本文です

C#とほかの言語を連携するには?

bla********さん

2014/5/921:55:37

C#とほかの言語を連携するには?

C#とLuaとかと連携させてゲームなどを開発したりしてるのを見たりするのですが
HTML+Javaなど。
あれって、やった事ないんですが基本どうやってやるんですか?
あと、優位性はなんですか?
よくわからないので詳しく教えてください。

閲覧数:
518
回答数:
3

違反報告

ベストアンサーに選ばれた回答

abi********さん

編集あり2014/5/1002:39:03

[プログラミング言語の連携について]

基本的に、あるプログラミング言語と、別のプログラミング言語が、連携し合えるようには、成っていません。
極端な例えになりますが、「イタリア語とフランス語が、互いに関連性を持って、助け合える仕組みになっている」みたいなことは、普通は、ないですよね。
イタリア語が作り上げられたのは、イタリア語単独の歴史があり、フランス語が作り上げられたのは、フランス語単独の歴史があるからです。
それと同じように、普通は、あるプログラミング言語が作れた時に、他のプログラミング言語と連携し合えることまで、考えられていません。
しかし、連携を考慮して作られたプログラミング言語もあります。
PHPは、HTML と言うマークアップ言語を操作するように作られたプログラミング言語です。
同じように、ASP.NET は、HTML を操作するように作られたプログラミング言語です。
Microsoft Silverlight や WPF は、XAML を操作するように作られたプログラミング言語です。
なお、マイクロソフトの開発環境は、昔から、言語と言語の連携を意識しています。
VBは、C言語、又はC++で作ったDLLを呼び出せます。
ASP も、C言語、又はC++で作ったDLLを呼び出せます。


[ CLI ]

上記の通り、マイクロソフトの開発環境は、昔から言語と言語の連携を意識しています。
そこで、.NETテクノロジーが誕生した時は(すなわち、.NETの中心的プログラミング言語のC#が誕生した時は)、プログラミング言語とプログラミング言語が、連携し合うための技術仕様が作られました。
CLI と言う仕様です。
詳しくは、下記を参照して下さい。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1112752681...

よって、Lua が、CLI の仕様を取り込んでいたら、連携可能なのですが、そうではないので無理です。
ちなみに、ASPと言うプログラミング言語は、ASP6.0 以前のバージョンまでは、CLI の仕様を取り込んでいません。
そこで、CLI 仕様を取り込んで、ASP.NET と言うプログラミング言語に生まれ変わりました。
そのため、ASP.NET は、C# や VB.NET と連携可能になっています。
なお、ASP.NET の開発環境自体は、マイクロソフトがC# で作りました。


[Eclipse]

IBM も、昔から言語と言語の連携を意識しています。
そこで、IBM が作った統合開発環境Eclipseでは、Java を中心にして、各種言語が連携し合える仕組みになっています。
なお、Eclipse は、普通に開発環境として活用するだけではなく、開発環境を作る開発環境と言う役目もあります。
Eclipse は、Eclipse 上で動作する開発環境をJava で作れるようになっています。
そのため、Eclipse 上で動作する開発環境は、Java で連携し合えるようになっています。




[回答本編]

Lua は、CLI の仕様を取り込んでいないので、単純に直接連携させるのは、厳しいです。
おそらく、質問で言われていることは、C# で使うデーターを意識して、Lua を活用しているのではないでしょうか(ツールを使うイメージで、間接的に利用)。
よって、質問者さんが、上級者に成った時に、ゲームを作りやすいプログラミング言語を自分で作って下さい。
そして、その開発環境をC# で作って下さい(Eclipse 系ならJavaで)。
なお、「プログラミング言語まで、作る気はない」と言う場合でも、ゲーム用ライブラリならば、将来、作って行く可能性はあります。
自分自身がゲームを作り易い環境を作って行くうちに、それが、だんだんとライブラリと呼べるレベルに成って行きます。
そう言った流れの延長線で、開発環境を作る機会も有るかも知れません。

質問した人からのコメント

2014/5/15 00:07:58

とても丁寧な回答ありがとうございました!!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

dis********さん

2014/5/1009:26:59

o C#にLuaを連携させるには?
→通常、NLua等のインタフェイスライブラリを用いて、C#がLuaを扱えるようにします。

o C#とほかの言語を連携するには?
→ .NET系の言語であれば、特に考えずとも一つのプロジェクト内に混在させながら使う事ができます。他の組み込み系言語であればインタフェイスライブラリを使いますし、外部プログラムを他の言語で書くという話でしたらそれまでです。

o HTML+Javaなど。
→勘違いがあるようです。HTMLは文書の構造を定義しただけのモノなので、プログラム言語のくくりではありません。Javaと組み合わせる(おそらくJSPの事だと思いますが)とか、C#と組み合わせる(ASP.NETという使い方です)をする場合、普通のテキストデータ出力と同じようにして処理を行うだけです。
プログラム言語、つまりロジック同士の組み合わせではないので、プログラム言語のみで開発する場合と変わらないです。

o 優位性
わからないうちには、言われても分からないと思いますが
適材適所、得手不得手で使い分けるといいよね。という話です。

sur********さん

2014/5/923:23:54

何故必要かは、実力が付けばわかります。
分かる実力がないときは優位性も理解できないと思います。「ふーん」ぐらいで終わるでしょう。
作っていてLuaなどが必要になるぐらいゲームを作って作って作りまくってください。
ここだ!って言うのがやがてわかります。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる