Domanda

Sto cercando una guida per la programmazione PolyGlot in queste due lingue.

So che interopera tra loro è possibile , poiché sono entrambi in esecuzione sulla stessa Java VM , ed entrambi sono stati compilati allo stesso bytecode. Ma ci sono alcuni cumbersomi:

    .
  • Posso usare per compilare codice clojure ?
  • posso usare per compilare codice Scala ?

( Sì, sì, so che posso solo collegare JAR da una lingua al progetto in altri Lang.)

Quindi la domanda è come configurare lo sviluppo di PolyGlot in Scala e Clojure?

È stato utile?

Soluzione

Non l'ho usato, ma Leiningen ha Supporto SALAC .

Altri suggerimenti

Il breve ANSER: Usa MAVEN3

maven3 con il zi plugin for clojure e Maven-Scala-Plugin ti permetterà di avere un progetto PolyGlot ben integrato dove puoiUsa qualsiasi lingua che vuoi finché è Java;)

Uno dei grandi cambiamenti di MAVEN3 è stata una spinta verso la programmazione PolyGlot JVM, inclusa la capacità di scrivere POMS in molte lingue.Perdi lo smalto di Leiningen quando prendi questa strada, anche se ottieni in abbondanza in cambio.

Personalmente, starei lontano dall'uso di Maven direttamente nonostante sia la risposta accettata. Ecco la semplice definizione del progetto Leingen che:

    .
  • Genera fonti Java da Antlr4 Grammar (come bonus);
  • Compila sorgenti java;
  • Compila sorgenti Scala (preferisco utilizzare Scala in cima al codice Generato Antlr4 Java da quando è molto più conciso e piacevole da lavorare);
  • continua con cose 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"])
.

Per utilizzare il download del plugin antlr4 e 'Lein Install' the lein-antlr4 plugin. Se non ne hai bisogno, basta rimuovere linee pertinenti dalla definizione del progetto.

Per utilizzare la plugin Scala di cui avevo bisogno per Scarica e modifica

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

a

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

In Plugin's Project.CLJ, quindi 'Lein install' è localmente. Con la versione di dipendenza più antica stavo ottenendo

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

Dal compilatore Scala.

Come alternativa di Maven: gradle è in grado di compilare entrambe le lingue.

Il tratto Dynamic di Scala è stato creato per abilitare l'integrazione più semplice con le lingue digitalizzate dinamicamente, ma dovrai scrivere il proprio spedizioniere.Inoltre, dovrai riscriverlo con Scala 2.10, dal momento che è stato cambiato un po '.Forse, infatti, dovresti usare Scala 2.10 (Milestone 2 è disponibile).Scala 2.10 Il supporto per gatti può anche aiutarti con l'integrazione sul lato della scala.

You Can Utilizzare SBT per compilare Clojure, poiché SBT è molto flessibile, ma, più pragmaticamente, non vi è alcun supporto per la raccolta di clouformi prontamente disponibile.Puoi guardare a Questo plug-in come esempio di come aggiungere compilazione di altre lingue. Trovo curioso che così piccola integrazione tra Scala e Clojure sembra esistere.Sono spesso confrontati, e spesso vedrai persone che dicono che lo sceglie uno sopra l'altro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top