4

asp.net、php、javaを橋渡しして一つのページにすることはできないかと考えていました。

実際、今のところそのようなものは必要ありません。いくつかの言語のいくつかの機能は優れていて、いくつかの機能や他の言語は優れているので、これらすべての機能を1つにまとめたらどうなるかを考えていました。

つまり、asp.net php と java の 3 つの言語すべてのコードを含むページを作成しています。

<asp code></asp code>
<php code></php code>
<java code></java code>

また

<html>
    <asp code>
    <php code></php code>
    <java code></java code>
    </asp code>
</html>

またはそのようなコンパイラは、コードのさまざまなセグメントを認識し、それらをコンパイラで実行するように送信して実行します。また、出力は XML の他の言語で認識および使用できます。

すべての言語が相互に作用するとは言っていません。ただし、XML を介して相互に対話できます。ただし、ファイルは、それぞれのコンパイラに送信されて実行され、最終的に親コンパイラに戻る、さまざまなプログラミング言語コードを持つ単一のエンティティとしてコンパイルされると言いたいだけです。

MSILなどの.netフレームワークで行われるように、さまざまな言語コードを認識してコンパイラに送信できるコンパイラを考えています。

4

6 に答える 6

5

出来ますか?

The Simpsons の Lovejoy 牧師を引用すると、「if でノーと答える短い答え。but でイエスと答える長い答え」です。

いいえ、現在利用可能な技術を使用する 場合、現在は不可能です。

はいただし、シムとして機能する独自のサーバーをロールし、コードのさまざまなセクションを分割して必要な言語パーサーとコンパイラーに送信し、それらの個別のセクションをまとめてページを表示する必要があります。

編集: @Shantanu:私の喜び。このようなことはまったく調査していないため、実装は完全にあなたに任されています。

最終的には、おそらく多数の問題に遭遇する可能性があるため、これは最も生産的なことではないと思います。

最大の特徴: ある言語のコードには、他の言語で行われていることの概念がありません。

つまり、ASP で値を定義した変数がある場合、Java または PHP のバージョンは多大な労力を費やさなければそれを認識できません。言うまでもなく、互いのプロセスからメモリに完全にアクセスできなくなります。

ただし、このルートをたどりたい場合は、ANTLRなどのパーサー ジェネレーターを調べることをお勧めします。これは、特別なタグを検索できるパーサーを作成するのに役立ちます (注: これは、必要に応じて正規表現または手で紡いだパーサーで行うことができます)。

分割コードを取得したら、それを各言語のコンパイラに送信して、テキスト出力を受信できるようにする必要があります。そのテキストを取得したら、それはすべて html + javascript である必要があり、それらを結合してページを表示できます。

3 つの言語を相互に作用させたい場合は、巨大なプロジェクトを作成することになります。.Net フレームワークを使用して PHP および Java (おそらく既に存在する) 言語を作成する方が簡単な場合があります。これにより、サーバー スタック全体を作成する必要がなくなります。

于 2010-01-05T17:27:37.413 に答える
1

そうではありません。スクリプトはサーバー側であり、ファイル全体が各サーバー (asp.net/php/java) に順番に渡され、他のコードが解析エラーを引き起こすと思います。

それはまた恐ろしく非効率的です。

于 2010-01-05T17:17:18.513 に答える
0

ESI

http://www.akamai.com/html/support/esi.html

基本的に、ページは一連のタイルで構成されています。Oracle はこれを Web キャッシュ製品に実装していますが、パーサーを自分で作成するのに十分簡単です。

C.

于 2010-01-05T17:27:57.897 に答える
0

いくつかのタグに基づいて異なるソースコードを認識するように、新しいコンパイラを設計する必要があると思います

いう

<aspX>- asp.netを意味します
<php>- php を意味し
<C#X>ます - C# コード

このコンパイラがこのコードを見ると

対応するコードをコンパイラに送信する必要があります。

例えば

<aspX>
<asp: Textbox....../>
<C#X>
xyz=abc();
</C#X>
</asp>

そんな感じ

于 2010-01-05T17:34:27.133 に答える
0

私は ajax を使用して言語を混合しました。あなたの場合は理にかなっているかもしれませんが、十分な詳細を提供していません。

于 2010-01-05T17:16:34.350 に答える