0

背景: Eldridgeから、コードの記述とデプロイに関して、時間の異なるフェーズの違いについて説明するように求められました。

彼は知りたいです:

  • 1)次の違いは何ですか:1)設計時間。2)コンパイル時。3)実行時?
  • 2)プログラマーが自分のコードにハードワイヤードできず、実行時までわからないことの具体例は何ですか?
  • 3)より多くの「実行時」の柔軟性を必要とする人々にとって(個人的な好みの理由を除いて)多くの実行時の「トリック」を備えたスクリプト言語は優れていますか?

質問:

私自身のプログラミングの見方に基づいてEldrigeの答えはありますが、「偏った」答えを出さないように、さまざまな視点を得るのは良い考えのように思えました。...では、これらのことを説明するために、どのような偏りのない答えを与えることができますか(どの言語を想定しても)。

4

2 に答える 2

2

さて、誰も試したことがないので、これを試してみます。

設計時間は、ソースファイルの作成に費やされた時間です。テキストファイル、フォーム定義などのコード。

コンパイル時間は、コンパイルのさまざまなフェーズで費やされる時間です。前処理、字句解析/解析、ASTの作成と最適化、コード生成、およびリンク。

実行時間は、実行可能ファイルがロードされてから、テキストページに使用されているメモリが解放されるまでに費やされた時間です。

プログラマーは好きなものを何でも配線できますが、それはいくつかのことにはほとんど意味がありません。

  • ユーザーのホームディレクトリ
  • 外部データベースリソースの場所
  • 実行可能ファイルを実行しているマシンの予想されるハードウェア構成

静的言語と動的言語の両方(私は個人的に「スクリプト言語」という説明が嫌いです)は、コンピューティングに適しています。静的言語ができないことを動的言語ができることは何もありません。唯一の違いは、機能を実装するために必要なコードの量です。

于 2010-02-17T02:12:07.923 に答える
1

設計時-自動化されたツールとグラフィックデザイナーを使用してソースコードを生成する場合です。コントロールのプロパティの有効な値のようなものは、「設計時」に決定できます

コンパイル時-コンパイル時にコンパイラーが判別できるものです。たとえば、コンパイラーは、次の式に常に「86400」の定数値が含まれると判別できます。

const int SecsInDay = 60 * 60 * 24; 

ランタイム-プログラムの実行中にのみ決定できるもの(VMなど)用です。これには、ユーザー入力、動的構成設定などが含まれます。

スクリプト言語は、コンパイルをバイパスし、実行時に入力とロジックに基づいて新しい動作を作成できるため、変更ロジックの作成に柔軟性があります。たとえば、Java Scriptのeval()ステートメントは、ユーザーが入力した、またはWebサービスなど

于 2010-02-17T02:23:43.000 に答える