Pregunta

Estoy buscando una guía para programación políglota en estos dos lenguajes.

Yo sé eso la interoperabilidad entre ellos es posible, ya que ambos se ejecutan en la misma máquina virtual Java y ambos se compilaron con el mismo código de bytes.Pero hay algunos engorrosos:

  • Puedo usar para compilar el código Clojure?
  • Puedo usar compilar código Scala?

(Sí, sí, sé que puedo enchufar el jar de un idioma para proyectar en otro lang).

Entonces la pregunta es ¿Cómo configurar el desarrollo políglota en Scala y Clojure?

¿Fue útil?

Solución

No lo he usado, pero Leiningen tiene Soporte de Scalac .

Otros consejos

El ANSER corto: Use MAVEN3

maven3 con la plugin de ZI para Clojure y el maven-scala-plugin le permitirá tener un proyecto POLYGLOT MUCHIPE INTEGRADO donde puedaUse cualquier idioma que desee, siempre y cuando su Java;)

Uno de los grandes cambios en Maven3 fue un empuje hacia la programación POLYGLOT JVM, incluida la capacidad de escribir Poms en muchos idiomas.Pierdes el polaco de Leiningen al tomar esta ruta, aunque ganas mucho a cambio.

Personalmente, me mantendría alejado de usar Maven directamente a pesar de ser la respuesta aceptada. Aquí está la definición de proyecto Leiningen simple que:

  • genera fuentes de Java de la gramática antlr4 (como un bono);
  • compila las fuentes de Java;
  • compila las fuentes Scala (prefiero usar Scala en la parte superior del código Java AntlR4 generado ya que es mucho más conciso y agradable para trabajar);
  • continúa con cosas de Clojure.
(defproject polyglot "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :plugins [[lein-antlr4 "0.1.0-SNAPSHOT"]
            [lein-scalac "0.1.0"]]
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [org.antlr/antlr4 "4.0"]
                 [org.scala-lang/scala-library "2.10.1"]]
  :warn-on-reflection true
  :antlr4-source-paths ["antlr4"]
  :antlr4-options {:package "parser" :listener true}
  :antlr4-compile-path "target/antlr4/parser"
  :java-source-paths ["target/antlr4/parser" "src/java"]
  :scala-source-path "src/scala"
  :prep-tasks ["antlr4" "javac" "scalac" "compile"])

Para usar la descarga de plugin antlr4 y 'lein instalar' la lein-antlr4 plugin. Si no lo necesita, simplemente elimine las líneas relevantes de la definición del proyecto.

Para usar el plugin Scala que necesitaba para descargar y cambia

[org.scala-lang/scala-compiler "2.9.1"] 

a

[org.scala-lang/scala-compiler "2.10.1"]

en el proyecto.clj de plugin, entonces 'Lein lo instale' localmente. Con la versión de dependencia más antigua que estaba recibiendo

java.lang.Error: typeConstructor inapplicable for <none>

del compilador SCALA.

Como una alternativa de Maven: Gradle es capaz de compilar ambos idiomas.

Escala Dynamic El rasgo se creó para permitir una integración más sencilla con lenguajes escritos dinámicamente, pero tendrás que escribir tu propio reenviador.Además, tendrás que reescribirlo con Scala 2.10, ya que ha cambiado un poco.Quizás, de hecho, deberías usar Scala 2.10 (el hito 2 está disponible).El soporte CAT de Scala 2.10 también puede ayudarle con la integración en el lado de Scala.

poder use SBT para compilar Clojure, ya que SBT es muy flexible, pero, más pragmáticamente, no hay soporte de compilación de Clojure disponible.puedes mirar este complemento como ejemplo de cómo agregar compilación de otros idiomas.

Me parece curioso que parezca existir tan poca integración entre Scala y Clojure.A menudo se comparan y, a menudo, verás a personas diciendo que eligen uno sobre el otro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top