16

迅速な開発に使用できる C++ (perl など) のスクリプト言語はありますか?また、C/C++ プログラムに変換して展開のパフォーマンスを向上させるツールを使用できますか?

編集:
いくつかのコメントに基づいて、質問を明確にさせてください。スクリプトを変更せずに、スクリプトを C/C++ プログラムまたはバイナリに変換できるはずです。

4

12 に答える 12

25

C/C++ インタープリターを使用すると、C/C++ をスクリプト言語として使用できます。


注: これまでのところ、ChCINTのみを試しました。リストをより完全にするためにcconsUnderCを追加しました。

于 2009-10-03T14:56:46.260 に答える
10

ゲーム業界で C++ でよく使用されるLuaを試すことができます。メモリフットプリントが小さく、非常に成熟しており、優れたライブラリがあります...試してみてください.

うーん... 何を達成したいのかわからない: どうにかして、魔法のように C++ ソースに変換されるスクリプト言語を見つけたいですか? それとも、スクリプトから実行可能ファイルを作成するオプションだけが本当に必要ですか? 後者の場合は、py2Exeを試すことができます。

于 2009-10-03T15:00:04.613 に答える
4

(ほとんど) C++ に非常に似ているスクリプト言語に興味がある人は、angelscript (ZLIB)を調べてみてください。

AngelCode Scripting Library (AngelScript とも呼ばれます) は、アプリケーションが外部スクリプトを介して機能を拡張できるように設計された、非常に柔軟なクロスプラットフォーム スクリプト ライブラリです。アプリケーション プログラマーとスクリプト ライターの両方にとって、使いやすいコンポーネントになるように最初から設計されています。

プロキシ関数を必要とせずに、標準の C 関数と C++ メソッドを呼び出せるようにするための努力がなされました。アプリケーションは、スクリプトが操作できる関数、オブジェクト、およびメソッドを登録するだけで、コードを操作する必要はありません。アプリケーションが内部的に使用する同じ機能をスクリプト エンジンでも使用できるため、機能を重複させる必要がありません。

スクリプト作成者にとって、スクリプト言語は広く知られている C/C++ の構文に従いますが (わずかな変更があります)、ポインタやメモリ リークを心配する必要はありません。ほとんどのスクリプト言語とは対照的に、AngelScript はホスト アプリケーションとのより効率的な通信のために共通の C/C++ データ型を使用します。

詳細については、http ://www.angelcode.com/angelscript/sdk/docs/manual/index.html をご覧ください。

于 2010-03-07T21:54:57.087 に答える
2

C++用に設計された新しいパッケージChaiscriptがあります。それは比較的新しく、まだ完全に安定していません。

于 2009-10-04T10:03:28.187 に答える
2

ポーン

pawn は、C に似た構文を持つシンプルで型のない 32 ビット拡張言語です。ポーンの「ソース」プログラムは、実行速度を最適化するためにバイナリ ファイルにコンパイルされます。ポーン コンパイラは、後で抽象マシンで実行される P コード (またはバイトコード) を出力します。実行速度、安定性、シンプルさ、および小さなフットプリントは、言語と抽象マシンの両方にとって不可欠な設計基準でした。

この言語は c 構文に非常に似ているため、c++、c、c#、java を実行したことがある人なら誰でもそれを読むことができ、単純化されているため、コーダーはそれを読むことができません。この言語は現在、 halflife 1およびhalflife2サーバーに対するスクリプト作成など、あらゆる場所で使用されています。

于 2009-10-03T15:58:18.813 に答える
2

多くのプロジェクトは、たとえば C++ と Python を組み合わせています。たとえば、 boost.pythonを参照してください。

私はRを好み、R から C++ へのRcppインターフェイスを使用します。

どちらの場合も、プロトタイピング用のスクリプト言語と、パフォーマンス用の C++ への簡単な「接着剤」を提供します。

于 2009-10-03T14:49:49.097 に答える
1

Python の場合、psycoが役立つ場合があります。ただし、perl に相当するものがあるかどうかはわかりません。

タスクに使用する言語を選択するときは、その仕事に最も適した言語を選択する方が便利だと思います。通常の条件下でスクリプト言語が提供できる以上のパフォーマンスがジョブで要求される場合、コードを高速化するために後ろ向きに曲がるよりも、単に切り替える方が通常は優れています。

于 2009-10-03T15:01:48.950 に答える
0

質問はさまざまな方法で解釈できます...

アプリケーションの一部を既に C++ でコーディングしており、最終的にパフォーマンスを向上させるために C++ コードに追加するモジュールまたはスクリプトを追加する必要がある場合は、堅牢で非常に完全なマルチプラットフォーム フレームワークであるQtを使用できます。

スクリプト(ECMAScript、Javascript の標準化バージョン) のサポートが含まれており、必要に応じてそこから C++ オブジェクトにアクセスできます。また、プラグインのサポートも提供します。

そのアプローチでは、3 つのステップで進めることもできます。

  • 最初にJavascriptでいくつかのテストを行い、
  • 次に、アプリケーションのベースを C++ でコーディングし、スクリプトで一部を使用します (たとえば、別のアルゴリズムを試す必要がある場合)。
  • そして最後に、すべて、または少なくとも重要な部分を C++ に移植します。

もう 1 つのオプションは、Python インタープリターをコードに埋め込むことですが、おそらくより多くの作業が必要になります。

于 2009-10-03T15:33:17.863 に答える
0

GML : www.yoyogames.com

于 2009-10-03T14:55:48.837 に答える
0

D プログラミング言語をスクリプトまたは高速コンパイル出力の両方として使用してコーディングできます。

これは、D とその利点について詳しく説明している記事 「The Case for D」です。

于 2013-07-23T18:36:35.970 に答える
0

Cling は c++ clingのインタープリターです。

于 2016-09-29T19:11:01.620 に答える
0

あなたの質問を理解しているかどうかはわかりませんが、C++ コードとやり取りできる独自のスクリプト言語を実装しようとしている場合は、boost::spirit をご覧ください。文法を指定するだけで、スクリプト言語は C++ で指定したことを実行できます。C++ 演算子を使用して文法を指定すると、非常に簡単で直感的になります。

それは私が最近のニーズに現在使用しているものであり、それはうまく機能するようです. 文法を指定すると、c++ オブジェクトに完全にアクセスでき、ユーザーは非常に単純な言語を習得できます (言語が c++ 自体である CINT と比較して)。

コンパイル時間は今のところ少し遅いですが、非常に複雑な言語を実装する必要がなければ、扱いやすいはずです (c++ のようなもののコンパイル時間は見たくありません)。また、最新バージョンのドキュメントは少し不足しています (最新バージョンは見つけるのが少し難しいです) が、比較的使いやすいので、必要に応じてチェックする価値があるかもしれません。

于 2009-10-04T03:13:06.000 に答える