9

入力時にコンパイラがコードをコンパイルできないのはなぜですか?

ユーザーの観点からは、今日の構文の色付けと同じくらいスムーズに機能する可能性があります。十分な時間(おそらく数秒)入力を停止すると、コンパイル(リンクではない)が終了し、構文の色付けなどを使用してコードエラーが識別されます。

私の3GHzクアッドコアモンスターコンピュータが何か他のことをするのに本当に忙しかったわけではありません。いつもコンパイルさせてみませんか?

4

7 に答える 7

6

これはまさに、Visual Studio の VB.NET コード エディターが行うことです。

利点は、C# よりもはるかに正確な IntelliSense です。欠点は、本当に膨大な量のプロセッサ時間とメモリを浪費することです。:-(

于 2010-09-14T21:19:05.693 に答える
5

できる。または、より便利にするために、この質問への答えは以下に依存します

  1. 何語
  2. どの程度の最適化が必要か
  3. 一時的にばかげたことを入力すると、コンパイラがコンパイルして、修正する前にデバッグ中のバイナリに結果を挿入すると、どれほどイライラするでしょうか。

いくつかの非常に強力な最適化は、その場でいじるのが非常に面倒です。一方、基本的なコンパイル、X86 命令のオフセットの割り当てについて心配する必要がない場合は? もちろん。

于 2010-09-14T21:18:38.450 に答える
3

一部の IDE は、入力時にコードをコンパイル (または少なくとも構文とセマンティクスをチェック) します。たとえば、Eclipseがそれを行うと思います。Visual Basic 6 (およびおそらくそれ以前のバージョン) でこれが行われたと思います。

于 2010-09-14T21:18:19.470 に答える
3

使用している IDE を確認してください。ただし、それが VB.NET のしくみです。

于 2010-09-14T21:18:51.403 に答える
2

私はコンパイラーや、コードを IL や機械語に変換する方法などに精通していません。それでも、1 つのフロー制御ステートメントでプログラムを変更すると、コンパイラーが行った作業が完全に無効になることがわかります。その時点まで。1 行のコードを追加または変更するだけで、プログラムの一部全体が使用されなくなったり、使用されなくなったり、何らかの形で再評価が必要になったりする可能性があります。

コードを変更するたびにコードを再コンパイルするのではなく、distributed.net や SETI @ Home のためにそれらの CPU サイクルを節約したいと思います。

于 2010-09-14T21:20:56.703 に答える
0

それは完全に言語に依存します。

コンテキストに依存しない構文を持つ言語は、一度入力すると式をプリコンパイルできます。ただし、このような言語プロジェクトのコンパイルは常に高速です。コードの準備ができたときに作業をすばやくバッチ処理できるのに、なぜCPUを使用するのでしょうか。

悪名高いC++のような他の言語は、コンテキストに依存します。ほとんどの場合、コンパイラは、式の前にコード全体をすでに読み取っていないと、式を理解できません。解析するのは本当に難しいので、コンパイル前にエラーチェックを行うのは今だけです(VS2010やその他の最近のIDEでは)。この場合、あなたが求めている機能を実装することは不可能のように見えます。

とはいえ、私は専門家ではありません。それについて私が知っているのはそれだけです。

于 2010-09-14T21:24:16.683 に答える
0

PHP のようなインタープリター言語でさえ、Komodo エディターでこれをサポートしています。ほぼすべての言語でこれをサポートするエディターが他にもたくさんあると思います。

于 2010-09-14T22:52:58.160 に答える