132 votes

Quelles langues peuvent être compilées dans WebAssembly (ou wasm)?

Quelles langues peuvent être compilés pour web de l'assemblée (ou wasm)?

Je crois que maintenant C, C++, et de la rouille (expérimental) peuvent être compilés pour web de l'assemblée, avec le compilateur llvm backend, avec des langages comme Java, swift, et C# ne peut actuellement être pris en charge, mais le fait d'être candidats possibles pour le développement futur.

Je ne crois pas que le javascript peut être compilé à wasm. https://github.com/WebAssembly/design/issues/219

150voto

ColinE Points 36907

WebAssembly de soutien est en constante évolution. Pour l'instant il est pris en charge par les langues suivantes:

Il y a des solutions aussi:

Concernant JavaScript, il est peu probable d'obtenir de l'appui que WebAssembly est statiquement typé langage d'assemblage.

Il y a également divers plus obscur / amateur langues WebAssembly. De plus amples détails peuvent être trouvés sur la plus exhaustive Génial WebAssembly Langues de la liste.

19voto

nzeemin Points 46

Voir https://github.com/mbasso/awesome-wasm#compilers -- pour l'instant c'est seulement pour le C/C++, d'autres sont en expérimentation, mais le montant de la "expérimental", partie de pousse.

Actuellement WebAssembly prend en charge tout plat de la mémoire linéaire. Adapté pour le C/C++/de Rouille et de beaucoup d'autres langues, mais les plus populaires langues modernes ont besoin de garbage collector à exécuter. C'est le "post-MVP fonctionnalité" de WebAssembly (voir https://github.com/WebAssembly/design/issues/1079). Pour l'instant, la seule option est de mettre en œuvre le collecteur d'ordures à l'intérieur de la wasm avec certains de code personnalisé.

14voto

un5t0ppab13 Points 55

Ce repo

Contient une liste des langues actuellement compilées sur ou ayant leurs ordinateurs virtuels dans WebAssembly (wasm).

Caractéristiques:

  • Utilise emojis pour montrer la maturité de chaque langue
  • Fournit des liens vers les noms de projet et les options de chaque langue

11voto

Mirko Sertic Points 223

TeaVM peut être utilisé pour transpile bytecode JVM pour WebAssembly. Vous pouvez la caisse de la page d'accueil du projet à https://github.com/konsoletyper/teavm.

TeaVM à son noyau peut transpile bytecode JVM JS et WebAssembly. WebAssembly de soutien est à un stade précoce, mais il y a des démos disponibles pour comparer les performances d'un simple JBox2D simulation avec GWT, TeaVM(JS sortie) et TeaVM(WASM de sortie), qui sont assez impressionnants.

Veuillez noter que WebAssembly a actuellement pas d'accès direct vers les DOM ou à d'autres Api JavaScript. Également dans le courant de MVP, il n'y a pas de support pour opaque types de données ou même de la GC. Toutefois, il est possible de faire jusqu'/downcalls JS pour WASM et de retour à nouveau à l'aide de certains JS ruse, comme on le voit dans la démo.

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