TypeScript 100.0%はどのように書かれているのか?
質問
で GitHubのTypeScriptリポジトリ で、GitHubによると、このリポジトリにはちょうど100.0%のTypeScriptが含まれています。 (.ts ファイル)
TypeScriptはどのように動作するのでしょうか。また、TypeScriptはどのように自分自身でJavaScriptにコンパイルできるのでしょうか。
どのように解決するのですか?
これは コンパイラのブートストラップ と呼ばれ、多くの理由で一般的です。特に、書いている言語が、書いている言語で実装している概念を理解するのに最適な言語であることが多いからです...。
記事を見てみると、ほとんどの主要な言語にはセルフホスティングコンパイラがあります(C、C++)。そうすることは、大量のコードを新しいコンパイラーで実行することを意味し、これは機能性の良いテストとなります。通常の場合、コンパイラーを書くのは、現在の言語よりも何らかの利点を持つ新しい言語が欲しいからであり、コンパイラーを書きながらそれらの利点を利用できるのは良いことです。
最初のパスは既存の言語で書かなければなりませんが、いったんコンパイラができれば、次のリビジョンをコンパイルするためにそれを使うことができ、その繰り返しです。明らかに、これはコンパイラが
n-1
リビジョンの機能しか使えないという制限がありますが、あなたがコンパイラをコントロールするのですから、それは些細な問題であるはずです。Wikipedia を引用します。
C++コンパイラclangの主要部分は、g++とMicrosoft Visual C++の両方でコンパイル可能なC++のサブセットで書かれました。
TypeScriptはJavaScriptのスーパーセットなので、コンパイラは(理論的には)共有構文で書かれ、どちらかの下でコンパイルすることができます。ここではそのようなことはないと思いますが、この関係から、最初のコンパイラのための良い出発言語が得られます。
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] AJAX Mailchimp サインアップフォームの統合
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] 文字列がすべて同じ部分文字列で構成されているかどうかを調べるにはどうすればよいですか?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
-
[解決済み] 各オブジェクトに?重複
-
[解決済み] javascriptでオプションのパラメータを扱う
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] V8 Javascript エンジンのスタンドアロン実行
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?
-
[解決済み] これは純関数ですか?