5

多くのプログラミング言語は、一般的でかなり普遍的な機能を共有しています。たとえば、Java、VB6、.NET、PHP、Python を比較すると、制御構造、数値および文字列操作などの共通の関数が見つかります。

これらの機能をメタ言語 (または言語にとらわれない) レベルで定義するために何が行われましたか?

UML はあらゆる面でソフトウェアの説明的な参照を提供しますが、実際の焦点はデータ プロセスにあるようです。UML は関連していますか?

私は、「現在の過多に取って代わる単一の言語がないのはなぜですか」と尋ねているのではありません。私たちは多くの異なるツールを必要としています (少なくともこの時代では)。

私は、すべての言語がテンプレートに適合することを求めているわけではありません -- アセンブリ言語とコンパイル済み言語は、それを実行不可能にするほど十分に異なります (HTML を言語と呼ぶ人もいますが、私はそうは思いません)。どのような試みも、適切に狭い範囲から開始されます。これに沿って、私はモデルが完全な妥当性を持った小さな選択でさえもカバーするとは思わない.

ただし、そのようなモデルを使用して、ある言語から別の言語に転置できると期待しています (目的は限られていますが、一般的な翻訳を考えてください)。

4

6 に答える 6

4

これには多くの試みがありましたが、どれもあまり成功していません。私が知っている最も古いものは、50 年以上前のUNCOLです。

非常に似ているため、多くの共通点を持つ言語のリストを示しました。それらはすべて、共通のルートといくつかの OO 拡張機能が組み込まれた手続き型言語であるため、それほど驚くことではありません。LISP、haskell、erlang、prolog、さらには SQL などのさまざまな言語に目を向け始めると、非常に異なるものが見え始めます。

于 2010-04-13T16:56:24.880 に答える
3

あなたが説明していることは、プログラミング言語の正式なセマンティクスのように聞こえます。さまざまなアプローチがあり、それぞれが何らかのプログラミング言語でプログラムの意味を正式に指定する方法を提供します。場合によっては、この仕様は本質的に、ラムダ計算などの別の言語への翻訳、または SECD などの正式に指定された抽象マシン用のコンパイルです。

ここには非常に多くの作業があるため、特定のリファレンスを選択するのは困難です。しかし、検索を続けるのに役立つキーワードをいくつか教えていただければ幸いです。

于 2010-04-13T18:21:16.577 に答える
0

一般性を失うことなくこれに最も近いのはチューリングマシンだと思いますが、これは実用的な目的にはあまり役に立ちません。しかし、チューリング機械語を「ラベル付け」して再利用できるようにすれば、必要な概念を低レベルから高レベルまで構築することができます。

于 2010-04-13T17:02:05.773 に答える
0

MOFは世界共通言語だと思います。たとえば、UML メタモデルを介して MOF から UML ダイアグラムを作成できます。このメタモデル情報を xmi に保存すると、必要な情報をすべて保存でき、どの言語よりも多くの情報を保存できます。XMI セマンティックは非常に豊富であるため、使用に制限はありません。UML をメタモデルの最上位で xmi にマップし、MOF とライブ同期する場合、これは私にとって普遍的な言語です。

于 2010-04-13T17:44:28.170 に答える
0

UML は通常、実際のコードに移る前に、より簡単な用語でアルゴリズム/コードを定義するために使用されます。

私があなたの質問であると推測していることに答えるために、言語の必要な部分の定義済みセットが既にありますが、for、if、else...これは標準として設定されるか、使用される基本ライブラリになりますか?すべての言語による: いいえ、これは、言語のさまざまな開発者が自分で行うことを好むためです。

于 2010-04-13T16:50:05.643 に答える
0

Pattern Calculusの著者は、そのような普遍的なモデルを提案しているようです。普遍的なモデルを定義しようとする以前の試みと同じくらい有用であることが判明するだろうと私は期待しています。

于 2010-04-13T17:59:17.687 に答える