10
votes

JavaScript au clojure

Je suis au courant de ClojurScript - Possibilité de compiler le code de clojure à JavaScript, mais est-il possible de faire l'inverse, de prendre un sous-ensemble de code JavaScript et de le traduire en clojure?


3 commentaires

En tout doute, ne peut même pas trouver un JavaScript au compilateur Lisp, bien que vous puissiez toujours en écrire un.


Il y a un analyseur JavaScript écrit en commun Lisp à Marijnhaverbeke.nl/parse-js


Oui, c'est possible, mais cela vaut-il la peine d'effort?


5 Réponses :


2
votes

Oui, il est possible de traduire JavaScript en Robojure. Comme les autres dialectes de la famille LISP, Clojure convient parfaitement à la construction d'analyseurs et de compilateurs pour d'autres langues.


0 commentaires

5
votes

Oui, bien que cela n'aurait pas vraiment de sens.

Clojure -> JavaScript donne un sens parce que:

  • JavaScript est la seule langue cible appropriée pour une large classe d'applications Web
  • Il permet une utilisation efficace du compilateur de fermeture de Google pour une optimisation du programme entier
  • Clojure est une excellente langue "source" en raison de ses caractéristiques de macro et de son excellent support pour définir les DSL expressif

    Clojure serait un choix étrange pour une langue cible - si vous souhaitez exécuter sur la plate-forme JVM, il serait plus naturel de cibler directement Java Bytecode.

    JavaScript serait également un choix étrange pour une langue source Compilation de Clojure - si vous voulez du code de clojure, pourquoi n'écririez-vous pas simplement une clojure directement? En particulier, l'utilisation d'un (sous-ensemble possible de) JavaScript ne vous permettrait pas d'accéder facilement à toutes les caractéristiques qui rendent le clojure vraiment convaincant (programmation fonctionnelle paresseuse, support de concurrence, métaprogrammation macro, structures de données persistantes, etc.)


0 commentaires

4
votes

Oui, c'est certainement possible et une idée très active. Vous pouvez réellement utiliser le compilateur JavaScript Rhino pour convertir le JavaScript en classes Java et pourrait alors placer quelque chose Appeler les classes Java de Clojure. Vous n'obtenez pas le code source, mais vous pouvez exploiter les bibliothèques du code de clojure.


0 commentaires

4
votes

Je viens de rencontrer un JavaScript au transpilateur Lisp commun appelé CL-JavaScript .


0 commentaires

1
votes

Vous ne pouvez le faire que avec chlorinejs, un sous-ensemble de clojure qui partage beaucoup de choses avec JavaScript. https://github.com/chlorinejs/chlorine/wiki https://github.com/chlorinejs/chloride


0 commentaires