94 votes

Comment TypeScript 100.0% est-il écrit en TypeScript?

Dans le référentiel TypeScript sur GitHub et selon GitHub, le référentiel vient d'inclure 100,0% de TypeScript (fichiers .ts).

entrez la description de l'image ici

Comment ça marche? et comment TypeScript peut-il se compiler lui-même avec JavaScript?

99voto

ssube Points 8838

Ceci est appelé compilateur d'amorçage et il est commun pour un certain nombre de raisons, la moindre n'étant pas la langue que vous avez écrit est souvent le mieux adapté à la langue pour comprendre les concepts que vous êtes la mise en œuvre dans la langue que vous êtes en train de rédiger...

Si vous jetez un oeil à l'article, la plupart des grandes langues ont de l'auto-hébergement, les compilateurs C, C++). Cela signifie que vous avez une grande quantité de code par le biais de votre nouveau compilateur, ce qui est un bon test de la fonctionnalité. Dans le cas d'habitude, vous êtes à l'écriture d'un compilateur parce que vous voulez une nouvelle langue avec certains avantages en plus de votre cours de langue, afin d'être en mesure de profiter de ces avantages lors de l'écriture du compilateur est de bon sens.

La première passe devra être écrit dans une langue existante, mais une fois que vous avez un compilateur, vous pouvez l'utiliser pour compiler la version suivante et ainsi de suite. Évidemment, cela limite votre compilateur uniquement à l'aide des fonctionnalités de l' n-1 révision, mais puisque vous contrôlez le compilateur qui doit être un problème mineur. Citant Wikipédia:

Les principales parties du C++ compilateur clang ont été écrits dans un sous-ensemble de C++ qui peut être compilé par les deux g++ et Microsoft Visual C++.

Depuis le Tapuscrit est un sur-ensemble de JavaScript, le compilateur pourrait (théoriquement) être écrits dans la syntaxe et de les compiler en vertu de l'un ou l'autre. Je ne crois pas que c'est le cas ici, mais la relation ne vous donner un bon départ pour la langue initiale du compilateur.

24voto

daragua Points 715

Typescript s'auto-héberge et maintient une version LKG (Last-Known-Good) de lui-même pour compiler la version suivante. Actuellement (30/08/2016) cette version est dans le répertoire lib .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X