質問

私はCSで始まる学生だし、私のクラスは、Javaで、ほとんどです。私は現在、自己学習として「リトル・スキーマー」を経由する、と私はスキームの「実装」への多数の文献を発見したことを行う方法を見つける過程にいますよ。私の質問は、実装何さ?

これらのスキームのサブ方言、またはそれが何か他のものである(DrSchemeは、言語の異なる「味」を可能にするように見える)していますか?それはIDE、通訳、インタラクティブなツールなどを?

を組み込む任意の生態系に与えられた名前だけです 他のすべての言語(例えば、Javaは)また、「実装」の多様性を持っていますか、またはそれは「オープン」の言語に予約何かありますか?

ありがとう、

ジョス・ドラージュ

役に立ちましたか?

解決

プログラミング言語の実装では、その言語のコンパイラやインタプリタです。エコシステムの追加コンポーネントは、IDEのように、実装の一部であってもよいが、必要ではないことができます。スキームのインスタンスDrScheme、ガイル、ギャンビットのため、多くのがあります。

多くのプログラミング言語は、異なる実装を有するが、特定の言語のすべての実装(すなわち、コンパイル)まったく同じ方言を実装する必要があります。言語の明確かつ正式な仕様がある場合、スキームの場合のようにそれは、最も簡単です。もちろん、ほとんどの言語仕様が大きく異なる実装が言語の異なるバージョンをサポートすることができ、多くのバージョンを通過します。

Javaの場合、日、オラクル、IBMからの実装がある、と私は一つの他ます。

だと思います

他のヒント

アンの実装の言語の実行やコンパイル、特定の言語ということ任意のプログラムを意味します。

言語仕様の複数の主要な改正が行われているので、具体的なスキームでは、

は、それは、良い質問です。それ以上に、完全な仕様のいずれかに従わないスキームと呼ばれています(オリジナルのスキーム!を含む)の言語がたくさんあります。 HTDPのための初心者言語は問題は(そしておそらく他の理由のために)解決されるかについてはほとんど制限的であるために小さいです。 GIMPは、ごく最近まで、非標準的なSchemeインタプリタと呼ばれるSIOD(スキームで一つDEFUNまたはスキームのある日)を使用します。他の多くの例があります。スキームのインスタンス方言を参照言語の標準的な支持体上に、PLT Schemeのテイクのためにを。

の実装が実装特定の標準(適合、等を提供する)ことは、特定のベンダーのバージョン/製品である(クラスインターフェース、API、言語仕様等。)。

この単純なアナロジーで理解できるようにするため、コカ・コーラとペプシの両方が(ポップのあなたがそのように、傾斜している場合は、)ソーダの実装であると考えることができます。ソーダ/ポップは、一般的な概念であり、コカ・コーラとペプシは、その概念に準拠し、特定の製品です。

同様に、Mac OS XとLinuxは、単一UNIX仕様の両方の実装があります。 GNU C ++コンパイラーとインテル®C ++コンパイラは、C ++プログラミング言語の実装です。 Sun Java 6 JDK、OpenJDKの、およびJava用のGNUコンパイラ(GCJ)は、Javaのすべての実装である。

あなたはすぐに、単語「道具」を発見すると、

Javaの中で、なぜなら、そのクラスが実装要件を具体的な定義を提供することで、クラスは、関数の具体的な定義は、インタフェースで宣言提供のキーワードとして使用されていますインタフェースにより具現ます。

一般的な概念の

I「実装」の意味の理解を向上させることができます願っています。

実装は、プログラミング言語のコンパイラまたはインタプリタです。それが行動に言語の指示を翻訳する方法です。複数の実装で最も一般的な言語、今日はおそらくJavaScriptのです。

人々は実装について話すとき、

は、それが複数のものを持っていることから生じる問題に対処することの文脈でしばしばです。お好きなものは、物事にあなたのような方法で行います - - そこの利点がありますが、問題はイライラすることができます。 ChromeとFirefoxとIEとSafari若干異なる同じJavaScriptコードを持つすべての振る舞いので、Web開発者は、使用して、とにコードを適応していた1検出、さまざまなブラウザ上で自分のコードをテスト多大な時間を費やす必要がライブラリ、バグなどのわずかに異なるセットます。

はいくつかの言語を標準実装(ルビー、PerlやPython)によってではなく、あなたがそれらの複数の実装を聞いていない理由である文書で定義されています。でも、これらの言語では、あなたは異なる挙動を有する様々なバージョンの関連問題を持っています。

実装は新しい現象ではありません。彼の高校時代に戻って、ビル・ゲイツは、たとえば、多くのBASICの実装の彼の最初の書き込み1つを得た。

どのような他の言語と比べスキームの問題を悪化させるものは仕様が意図的に小さいことである - 試みは非常に少ない指定します。利点は、設計、プログラミング言語は比較的早くきちんとした新しいプロパティを持つ新しい実験スキームの実装を作成することができる人々です。彼らはこれを実行したら、彼らは他の人が便利なものに小さな言語を拡張する方法が示されているので、彼らが書いた小さな言語は「有用」であると主張することができます。しかし、多くの作業は、「プログラミングの単純な問題」であり、および実装の違いは、多くのと大きいので、各実装には、自分自身で非常に多くの意思決定を行う必要があります。こうして複数の実装に関連する問題は、多くの、より完全に指定された言語に比べスキームに大きいです。

はSchemeのコミュニティは小さな仕様の利点と一緒に、問題を認識し、積極的に実験的な言語の標準の新しいバージョンとの明確な有益な言語への移行を作る方法に取り組んでいます。    http://scheme-reports.org/する

今のところ

(2010年)、私は個人的には、新規ユーザーはPLT Schemeで作業を開始する、と私はあなたがそこに開始うれしいことをお勧めします。多くの実装の問題の恐怖にあなたを聞かせてはいけない:プログラミング言語設計者が自分自身のために設計されていることの言語での作業への利益の大きな取引があります。 PLTは、大規模なコミュニティとあなたが上に概説し困難を克服するのに役立ちますライブラリの良いセットを持っています。

ベスト、 Grem

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top