web-dev-qa-db-ja.com

スクリプト言語はどのようにコンパイルされますか?

「スクリプト言語」という用語はプログラミング言語のサブセットに過ぎないことは知っていますが、PythonおよびRuby)などのプログラミング言語を参照したいと思います。

  1. まず、これらの言語のコンパイラが必要なのはなぜですか。たとえば、Visual StudioやEclipseなどのIDEには、コードを変換してプログラムを実行するための独自のコンパイラーがあります。プログラミング言語が解釈されるとはどういう意味で、コンパイラーなしでターミナルで実行する前にそれら(Python、Ruby)をどのようにコンパイルするのですか?

  2. また、コーディングを始める前にPythonまたはRuby)をコンピュータにインストールすると、実際に何がインストールされますか?パッケージ?ファイル?コンピュータに理解を促すもの言語?

7
chris

プログラミング言語が解釈されることは何を意味し、ターミナルで実行する前にどのようにコンパイルされますか?

コンパイラとインタプリタは非常によく似ていますが、最後のステップまでです。コンパイラーの場合、最後のステップは出力言語でコードを生成して保存するです。インタープリターにとって、それはあなたのコードを保存しようとするものではありません。 すぐに実行するを試みています。これは、コンパイラが行うように、プログラムを基本的なセマンティックコマンドに分解し、それらをコマンドをソフトウェアに実装するランタイムを介して実行することで実現します。

2)また、コーディングを開始する前にPythonまたはRuby=をコンピュータにインストールする場合、実際に何をインストールしますか?パッケージ?ファイル?コンピュータに許可するもの言語を理解しますか?

一般的に言って、あなたはインタプリタと標準ライブラリをインストールしています。おそらくいくつかの基本的なツール(多くのスクリプト言語の場合のREPLなど)は、標準パッケージの一部としてもインストールされます。

16
Mason Wheeler

インタプリタは基本的にオンザフライのコンパイラです。実行時にコードを取得し、それをマシンコードに変換します。これは、プログラムを実行する前にコンパイラが一度にすべて実行することを除いて、コンパイラが実行することとまったく同じです。通訳者が必要に応じて翻訳し、すぐに実行します。コンパイラを、本を別の言語から母国語に翻訳し、完成した製品をあなたに読んでもらう人と考えてください。通訳とは、別の言語で本を読んで、それを翻訳し、その翻訳を声に出して言う人だと考えてください。実行前ではなく実行時にコンパイルを行いたいいくつかの理由は、

  • インタープリターは実行時にプラットフォーム固有の詳細を考慮することができるため、コードはすべてのプラットフォームで実行されます。標準コンパイラは、コンパイルに使用されているシステムでのみコンパイルできるため、すべての新しいシステム(Windows、OS X、Linuxなど)で再コンパイルする必要があります。

  • 実行時にコードが解釈されると、インタープリターはマシン固有の最適化を行って、すべてのマシンが備えているわけではない特殊なテクノロジー(特殊なCPU命令など)を利用できます。これにより、コードの実行が速くなる場合があります。標準コンパイラは、最終的な結果がさまざまなハードウェアとオペレーティングシステムのバージョンで実行できる必要があるため、コードを最適化することしかできないため、汎用のCPU命令セットと汎用のis機能しか使用できず、利用できません。簡単に利用できる特別なテクノロジーの例(コンパイルされたプログラムはまだ利用できますが、手動で行う必要があり、それほど簡単ではありません)。

コンパイラーの代わりにインタープリターを使用する理由は他にもたくさんあります。詳細を知りたい場合は、「コンパイル済みか解釈済みか」というGoogle検索を実行してください。

インタプリタをインストールすると、Pythonたとえば、インタプリタ(オンザフライコンパイラ)と標準のライブラリセット(たとえば、数学)をインストールします。おそらく他のいくつかのものがIDLEなど、それほど重要ではないものもインストールされています。

2
lochlanna