2011-07-22 8 views
8

Jestem świadomy ClojureScript - możliwość kompilacji kodu clojure do javascript, ale czy można zrobić odwrotnie, wziąć jakiś podzbiór kodu javascript i przetłumaczyć go z powrotem na clojure?JavaScript do clojure

+0

Wątpię, nie mogę nawet znaleźć kodu JavaScript do kompilatora LISP, ale zawsze możesz po prostu napisać. – Raynos

+0

Istnieje parser JavaScript napisany w Common Lisp pod adresem http://marijnhaverbeke.nl/parse-js/ –

+0

Tak, jest to możliwe, ale czy jest to warte wysiłku? –

Odpowiedz

4

Tak, chociaż tak naprawdę nie miałoby to sensu.

Clojure -> JavaScript sens, ponieważ:

  • JavaScript to jedyny odpowiedni język docelowy dla szerokiej klasy aplikacji internetowych
  • Umożliwia efektywne wykorzystanie kompilatora Zamknięcie Google dla całej optymalizacji programu
  • Clojure jest świetnym językiem "źródłowym" ze względu na cechy makro i świetne wsparcie dla definiowania ekspresywnych DSL

Clojure byłby o Wybór dd dla języka docelowego - jeśli chcesz uruchomić na platformie JVM, bardziej naturalne byłoby bezpośrednie kierowanie kodu bajtowego Java.

JavaScript byłby także dziwnym wyborem dla języka źródłowego kompilującego Clojure - jeśli chcesz kod Clojure, dlaczego nie napisałbyś bezpośrednio Clojure? W szczególności użycie (możliwego podzbioru) JavaScriptu nie dałoby łatwego dostępu do wszystkich funkcji, które czynią Clojure naprawdę fascynującym (leniwy programowanie funkcjonalne, obsługa współbieżności, makroaprogramowanie makr, trwałe struktury danych itp.)

1

Tak, istnieje możliwość przetłumaczenia kodu JavaScript na Clojure. Podobnie jak inne dialekty z rodziny Lisp, Clojure dobrze nadaje się do tworzenia parserów i kompilatorów dla innych języków.

3

Tak, to jest zdecydowanie możliwy i bardzo praktyczny pomysł. Można faktycznie użyć Rhino Javascript compiler do konwersji klas JavaScript na Java, a następnie można podłączyć coś do wywołania klas Java z Clojure. Nie dostajesz kodu źródłowego, ale możesz wykorzystać biblioteki w kodzie Clojure.