1

私のコース「プログラミング言語」を読んでいるときにこの質問に出くわし、興味をそそられました。これについて他の人の意見が欲しい:

メモリ内のデータ型の特定の表現を指定する言語定義もあれば、それらの型のセマンティック動作のみを指定する言語定義もあります。

後者のクラスの言語では、特定の表現を保証する実装もあれば、異なる状況で異なる表現を選択する権利を留保する実装もあります。どちらのアプローチが優れていると思いますか? また、その理由は何ですか?

私の意見では、独自のカスタム データ型を定義し、さまざまな場所や状況でさまざまな方法で使用できるため、後者のアプローチの方が優れています。どう思いますか?

4

2 に答える 2

1

回答の説明部分から判断すると、質問を完全に誤解しているようです。

プログラミング言語の標準では、言語の実装、つまり言語コンパイラ、インタープリタ、または仮想マシンからのデータ型の特定の表現が必要です。対応する言語のプログラマーではなく、これらのコンパイラー、インタープリター、および仮想マシンの設計者が表現を決定する際に選択肢を与えられる場合があります。

「どちらのアプローチが優れていると思いますか? またその理由は?」質問の一部では、言語を構築するプログラマーの視点と、その言語でプログラムを作成するプログラマーの視点という 2 つの異なる視点から、言語を設計するプロセスを分析する必要があります。あるグループのプログラマーにとって良いことでも、他のグループにとっては良いことではないかもしれません。さらに、あるグループが良いと考えていることが、実際には継続的なメンテナンスの問題を引き起こす可能性があります。

たとえば、整数は負数に 2 の補数表現を使用する 32 ビットとして表現する必要があると仕様に記載されている場合、言語を符号 + 値表現でハードウェアに移植するプログラミング言語の設計者は、さらに多くの作業を行う必要があります。一方、表現を指定しない言語で記述し、表現がすべてのプラットフォームで同じであると想定するプログラマーは、完全に移植性のないプログラムを作成する可能性があります。

于 2013-10-20T19:32:53.057 に答える
0

何を実装するかによって異なります。

C などの一部の言語はデータを直接メモリに表しますが、Java はデータを Java 仮想マシンに表します。

実際のマシンにどれだけ近いデータを操作したいかを尋ねると、質問はより正確になる可能性があります。

于 2013-10-20T19:33:40.777 に答える