PDA

View Full Version : [java + LISP] chiamate a programmi lisp in java


Don[ITA]
03-06-2008, 19:58
Salve a tuttiiiiiiiiiiiii!!!
Per l'uni devo fare un progetto che mi richiede l'utilizzo di java e LISP.
In soldoni devo realizzare un simulatore di mercati finanziari in cui sono presenti investitori, emittenti, ecc...
La parte che devo realizzare in LISP è l'intelligenza degli investitori/emittenti, e fin qui nessun problema.
Il sistema invece dev'essere realizzato in java (e anche qui nessun problema).
Mi chiedevo se è possibile far si che il sistema java interagisca con le mie "intelligenze" LISP. Ho gia googlato e ho trovato Jatha che sembra carina, ma ha troppe limitazioni.

Qualcuno di voi ha qualche consiglio? libri o link? anche in inglese :D

Grazie in anticipo

Saluti

shinya
03-06-2008, 20:53
Quale Lisp? Common Lisp? Scheme? Altro?

Cmq, ci sono diverse versioni che compilano su jvm.

http://www.gnu.org/software/kawa/
http://sisc-scheme.org/

Queste sono due implementazioni di Scheme (secondo lo standard R5RS) in grado di interagire con codice java e di compilare su jvm.

Altrimenti puoi provare Clojure, che è un linguaggio nuovo e promette bene (anche se dovrai cambiare qualcosa del tuo codice, perchè questo è un linguaggio a parte)

http://clojure.sourceforge.net/

Spero ti torni utile...

Don[ITA]
03-06-2008, 21:03
Common LISP :D
Purtroppo per direttive dei docenti solo Common Lisp può essere usato :mc:

Cmq grazie :D

shinya
03-06-2008, 21:31
Mi ero dimenticato ABCL. Questo è proprio common lisp e compila sempre su jvm, però non so...sembra un pò abbandonato dal sito...vedi un pò!

http://armedbear.org/abcl.html

marco.r
03-06-2008, 21:36
;22739794']Common LISP :D
Purtroppo per direttive dei docenti solo Common Lisp può essere usato :mc:

Cmq grazie :D

Come devono interagire le due parti ? Se l'interazione non e' eccessiva potrebbe essere piu' ragionevoli farli comunicare semplicemente via socket/pipe... per quanto ci siano diverse implementazioni di lisp per la jvm raramente eccellono per completezza e personalmente ritengo che usare con un linguaggio le librerie scritte per un altro sia come suonare col sax la parte della tromba... puo' funzionare, ma c'e' di meglio :D

Don[ITA]
03-06-2008, 23:09
Mi ero dimenticato ABCL. Questo è proprio common lisp e compila sempre su jvm, però non so...sembra un pò abbandonato dal sito...vedi un pò!

http://armedbear.org/abcl.html

Grazie mille domattina ci dò un occhio :D

@Marco.r
Il mio sistema java deve passare al programma lisp una lista di titoli finanziari (es. (("apple" 10 10 10) ("microsoft" 10 5 10) ....) e il lisp ritorna un'azione che si basa su un comportamento che ho definito (es. compra le azioni che hanno il costo più basso ecc...)

Come potrei fare ad usare socket/pipe?? non sono molto pratico di ste cose in java... :D

Grazie a tutti :D:D

Don[ITA]
05-06-2008, 09:51
abcl funziona benissimo!
Posso eseguire da java qualsiasi funzione lisp...solo che ho un problemuccio...
Il risultato della funzione lisp non mi viene ritornato ma viene stampato su standard output e non riesco a trovare alcun modo per farmelo tornare come stringa...
Qualcuno di voi che ha gia lavorato con questa libreria saprebbe darmi qualche consiglio?

Grazie ancora e ciauz...

shinya
05-06-2008, 14:51
Purtroppo non l'ho mai usato questo e non ne ho la più pallida idea.
Prova a chiedere in mailing list...sulla homepage di abcl c'è un link. In bocca al lupo!