[解決済み] angularコンパイラは何を「コンパイル」するのですか?
質問
今日も聞かれたのですが、うまく答えられませんでした。
TypescriptはJSにトランスパイルされます。そして、ツリーシェイク、"less" (オプション)、および配置を作成するプロセスにおける他のものがあります。しかし、(afaik) そのようなものは何も "compiling" とは関係ありません。すべてはバンドルされ、高度に最適化されますが、実際にはコンパイルされていないのですね?
さらに "ahead of time"-compiler があり、これは本当に顕著な仕事をします。何が足りないのでしょうか?
Javascript自体はまだインタプリタなんですよね?
どのように解決するのですか?
あなたは、コンパイルとは、ソースコードからマシンコードや低レベルのコードなどを生成することだと思い込んでいます。しかし、コンパイルとは実際には、あるソース コードを別のソース コードに変換することを意味するだけです。ですから、Typescript を取って JavaScript を生成するというのは合理的であるように思えますが、これは 形式 であると言うことができます。これは、(たとえば) c# が IL 言語にコンパイルされたときに行うことと似ていなくもない。
とはいえ、より良い言葉としては トランスパイル . 私は、Typescript コンパイラが より良い Transpiler として記述されることを提案します。
この違いは微妙で、トランスパイルはコンパイラの一種と考えることができます。しかし、(純粋な)コンパイル言語は、(通常は)C# の例のように、高レベルの言語を(機械語に近い)低レベルの言語に変換するものです。トランスパイラとは、高レベルの言語を同じようなレベルの(抽象化された)言語(高レベルの言語)に変換するものです。 *
コンパイルされたコードの結果は、通常 自分で書くような言語ではありません。 . トランスパイラの結果は、別の高級言語です。理論的には、(例として)ILを書くことはできますが、それは実際にはコンパイラによって生成されるように設計されており、これを行うためのツールやサポートはなく、C#/vb.netをコンパイルすることによってILを生成するだけです。一方、Javascript はそれ自体で使用可能な (そして使用される) プログラミング言語です。
*これらの言葉の定義とその使用方法はかなり曖昧であるため、多くの注意事項があります。
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み】JavaScript版sleep()とは?)
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] bootstrap のポップオーバーがすべての要素の上に表示されない
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
-
[解決済み] CORS: 認証モードは 'include' です。
-
[解決済み] これは純関数ですか?
-
[解決済み] Fetch: ステータスがOKでない場合、プロミスを拒否し、エラーをキャッチするか?
-
[解決済み] Angularのビルドと実行方法