2

複数の言語を一緒に使用するプロセスの正式な名前は何だろうと思っています。Java 関数を呼び出し (および Java ライブラリを使用)、時には Python 関数を呼び出すプログラムを C++ で書いているとしましょう。次に、それらの呼び出しから結果を収集し、実行を続けます。

このプロセスにどのように名前を付けますか?

4

2 に答える 2

3

使用する異なる言語の数、異なる言語を使用する部分問題がどれほど小さいか、それらの言語が目前の部分問題に対してどの程度具体的であるか、およびその特定の部分問題を解決するために自分で設計した言語の数に応じて、次のようになる可能性があります。Language-Oriented ProgrammingPolyglot Programmingまたは単にProgrammingと呼ばれます。

たとえば、C++ を使用するだけで、実際には 3 つの言語を使用します。C++ 自体、C++ テンプレート言語 (基本的に関数型/論理型のハイブリッド プログラミング言語)、および C++ マクロ言語です。ビルドには JSON、構成には JSON、ドキュメントには Tcl、テストには Tcl を投入すると、8 つの言語が表示されますmakeただし、私はそれを通常のプログラミングと呼ぶだけで、特別なことは何もありません。同じことが、HTML、CSS、ECMAScript、JSON、SQL、Java、XML を組み合わせた典型的な Web プロジェクトにも当てはまります。shroffsh

言語指向プログラミングは、スペクトルの反対側にあります。LOP では、問題をより小さなサブ問題、サブサブ問題などに分割し、その特定のサブ問題に最も適した言語、場合によってはそのサブ問題用に特別に設計した言語を使用して、すべてのサブ問題を解決します。基本的に、LOP では、OOP でオブジェクトを使用するのと同じ方法で言語を使用し、PP でプロシージャーを使用し、FPで関数などを使用します。通常、これらの言語はドメイン固有であり、多くの場合チューリング完全ではありません。

ポリグロット プログラミングはその中間のどこかにあります。異なる大きなコンポーネントには異なる言語を使用しますが、個々のオブジェクトなどと同じレベルの抽象化ではなく、通常、設計の代わりに既存のチューリング完全な汎用言語を使用します。それらを自分で。たとえば、trend.ly では、「思考には Smalltalk、ブルート フォース コンピューティングには Java、視覚化には ECMAScript、これら 3 つを結び付けshて展開するには Ruby」を使用しました。あなたの説明は、私にはポリグロットプログラミングのように聞こえます。

これらの定義は非常に主観的であることに注意してください: たとえば、Lisp では、新しい言語の設計と実装は非常に明白で、自然で、取るに足らないものであるため、Lisp プログラマーは自分のしていることを「言語指向プログラミング」と呼ぶことはありません。彼らはそれを「プログラミング」と呼んでいます。

私は、「5 から 10 の言語は Polyglot であり、より多くは言語指向であり、それより少ないのは単なるプログラミングである」と言って、厳密で迅速なルールを設定するつもりはありません。問題を見て最初に頭に浮かぶのは、「この言語でこれを解決するにはどうすればよいか」、「これを解決するのに最適な言語は何か」、「完璧な言語は何か」などです。この問題を次のように解決するには?

于 2012-08-21T14:08:02.767 に答える
1

それは多言語プログラミングと呼ばれます。

于 2012-08-21T13:30:31.837 に答える