問題タブ [interpreted-language]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# は部分的に解釈されていますか、それとも実際にコンパイルされていますか?
これについては、多くの矛盾する情報があります。C# はコンパイルされていると言う人もいますが (IL にコンパイルされ、実行時にネイティブ コードにコンパイルされるため)、.NET が必要なため解釈されると言う人もいます。ENウィキは次のように述べています。
多くのインタープリター型言語は、最初に何らかの形式の仮想マシン コードにコンパイルされ、実行時にネイティブ コードに解釈またはコンパイルされます。
だから私はかなり混乱しています。誰かがこれを明確に説明できますか?
interpreted-language - vbscriptをマシンコードに変換するものは何ですか?
C#やjavaなどのコンパイル言語には、(バイトコードから)マシンコード(0と1)に変換するジャストインタイムコンパイラがあります。VBScriptのようなインタプリタ言語はどのようにして機械語に変換されますか?それはオペレーティングシステムによって行われますか?
javascript - Is Javascript compiled or an interpreted language?
Can Javascript be called a pure interpreted language? Or does it also have some compiled flavor to it? Could someone guide at the reasons behind both the things whichever being true.
java - 独自の解釈されたスクリプト言語で Apache Velocity を使用する
私の Java アプリケーションでは、オブジェクト指向の解釈されたスクリプト言語 (ANTLR を使用して指定) を使用しており、それを Velocity と共に使用したいと考えています。
私の言語のオブジェクトは、次のように見える DataObject のインスタンスによって表されます (簡略化):
オブジェクト インスタンス $foo のプロパティは、$foo.bar としてアクセスできます。
ここで、$foo を VelocityContext に入れたとします。
私の知る限り、次のいずれかの方法でプロパティ (DataObject.properties に存在する) に速度でアクセスできます。
ここで私の主な質問: $foo.bar が Java プロパティ dataObject.bar ではなく直接 dataObject.properties.get("bar") をアドレス指定するように動作を変更して、$ を使用できるようにする方法はありますか?自分のスクリプト言語で行うのと同じように、Velociy 内で foo.bar を使用しますか?
optimization - インタープリター言語でループを切り替えないことの有用性は何ですか?
私は GCC が -O3 で何をするか (すべてのコードがコンパイルされることを確認するもの) を見ていて、インタープリター言語でループの切り替えを解除することの有用性を疑問に思っていました。Google のクロージャ コンパイラを使用する場合など、「プロダクション」対応のコードに価値があるかどうか疑問に思っていました。とにかく、これは本当にどのくらいの利益を生み出しますか?yループのxチェックだと思います。ここで、x は if else if またはケース スイッチの数、y はループの数です。つまり、x*y です。しかし、インタープリター言語を使用している場合、どれだけの価値があるでしょうか?
私はそれについて疑問に思っていたので、完全に理論的な方法でそれを尋ねています.それは何かの疑いがあり、実行中にすべての文字を読み取る必要があるため、逆になる可能性さえあります.
OK、これがループの切り替え解除について話していることです。
また、実行時にコンパイルされたり、VM を介して実行されたりする言語の意味も解釈されます。例は次のとおりです。PHP、JavaScript、BASH、Ruby、Perl など
すぐ上に言ったかどうかはわかりません。しかし、それが私が意味していたことです。入力をバイトごとに読み取ってから、使用できるものに変換する必要がある言語で。速度を上げるためにできることは他にもあることは知っていますが、それは私が考えることができる最も簡単な方法です。
通常ループ。
切り替えられていないループ(clangのドキュメントから収集できたものによると(gccのがらくた)。
上記のコードは、おそらく彼らが行うことです。
javascript - Google Chrome(V8)を使用する場合、Javascriptは解釈された言語と見なすことができますか?
私は、GoogleのJavascriptエンジンであるV8に関するこの優れた記事を読んでいました:https ://developers.google.com/v8/design#mach_code 。
ある時点で、彼らはJavascriptがバイトコードやインタプリタなしで直接機械語にコンパイルされると言います。
引用するには:
V8は、JavaScriptソースコードを最初に実行されたときにマシンコードに直接コンパイルします。中間バイトコードやインタプリタはありません。
では、(少なくともV8では)明確にコンパイルされているのに、なぜJavascriptが「スクリプト」および「インタープリター」言語とともにリストされているのでしょうか。
編集:コンパイルされている場合、Javascriptから実行可能ファイルを作成できますか?それにはどういうわけかそれをV8にリンクする必要がありますか?
その質問を考慮して、私はこの引用を見つけました:
V8はスタンドアロンで実行することも、任意のC++アプリケーションに組み込むこともできます。
ここ:http ://code.google.com/p/v8/ 。
python - 短い変数名から得られるものはありますか?
Pythonのような言語で変数名を短くすることで、メモリとスピードの面で得られるものはありますか?
もしそうなら、どのような状況を考慮するのが合理的でしょうか?
ノート
私は決して短い変数名を主張しているわけではありません。疑問に思っているだけです。質問を(再)読んでください。
注 2 説明的な変数名の値は理解しています。短い名前よりもわかりやすい名前を好むように十分なコードを調べ、その価値を理解しました。単純な No は実際には役に立ちません。
optimization - 定数計算のパフォーマンス
次の 2 つの疑似コード ブロックは、コンパイルされた言語とインタープリターされた言語の両方の速度に関してどのように比較されますか? (桁数無視)
基本的に、事前に計算するのではなく、いくつかの定数の関数として変数を記述することによってパフォーマンスが低下することはありますか? これにより、多くの場合、コードがより明確になります。
.
ありがとう!
serialization - Smalltalk にイメージの永続化を可能にするものは何ですか? Ruby/Python のような言語は自分自身をシリアライズできないのはなぜですか?
smalltalk では、世界の状態を画像ファイルに保存できます。これは、Smalltalk 自体を「シリアル化」する機能、つまり、オブジェクトが独自のソース コードを生成できることに関係していると思います。
1) これは正確な理解ですか?
2) この機能を現代の言語 (明らかに非 Lisp) に追加する際の課題は何ですか?
3) 「シリアル化」は正しい言葉ですか? 正しい専門用語は何ですか?
php - インタープリター型言語 (PHP など) でのオブジェクト指向プログラミングは効率的ですか?
速度のために非 OOP コードに固執する価値があるかどうかは疑問に思っていました。また、商用Webアプリケーションでは、OOPは一般的に使用されていますか、それとも回避されていますか? どれが基準ですか?
どうもありがとう、
エド