|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Messaggi: n/a
|
[Ruby] piccolo chiarimento sugli interpreti
Ciao a tutti,
volevo un piccolo chiarimento circa una cosa che mi sfugge su Ruby (ma varrebbe anche per altri linguaggi di scripting immagino): cosa avviene quando il codice viene eseguito sulla JVM come per JRuby? Nel senso: cosa ne fà la JVM del codice Ruby che legge? In Java il codice viene prima pseudo-compilato e poi fatto girare sotto la JVM che traduce le istruzioni in linguaggio macchina corretto? Non è che viene trasformato in codice Java prima vero? Scusate la confusione mentale. |
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
No, il codice di (J)Ruby viene convertito in bytecode Java, ed eseguito dalla JVM.
Dovrebbero essere generati dei file .class per ogni modulo Ruby.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#3 |
|
Messaggi: n/a
|
Ok, quindi che abbia scritto un programma in Java, Ruby o Python poi il codice viene sempre tradotto in bytecode per la JVM ed eseguito corretto?
Tnx. |
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Esattamente. La "lingua franca" è rappresentata dal bytecode della JVM.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Yes, bytecode rulez!
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#6 | |
|
Messaggi: n/a
|
Leggendo un pò ho trovato questo:
Quote:
Grazie ancora. |
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
ma tu hai citato nello specifico jruby
__________________
Khelidan |
|
|
|
|
|
#8 |
|
Messaggi: n/a
|
|
|
|
|
#9 |
|
Messaggi: n/a
|
Un altra cosa che mi è poco chiara: quando vedo le varie VM per linguaggi di scripting come appunto Ruby noto che si tratta spesso di interpreti in C/C++ oppure Java nel caso di JRuby ma ... è per una mera questione di prestazioni oppure perchè non è possibile tradurre del codice di scripting direttamente in linguaggio macchina?
Grazie ancora. |
|
|
|
#10 | |
|
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Quote:
È solo per le prestazioni. È possibile tradurre il codice di scripting direttamente in linguaggio macchina(ma di solito si traduce in assembly). I compilatori generalmente traducono il codice in una versione intermedia(si usa spesso il codice a tre indirizzi; vedi il contest 17). Sul codice intermedio vengono effettuate le ottimizzazioni indipendenti dalla macchina. Il codice intermedio ottimizzato, infine, viene tradotto in assembly per la macchina specifica(o in bytecode Java). Gli interpreti invece creano l'AST e lo eseguono direttamente(vedi sempre il contest 17). |
|
|
|
|
|
|
#11 |
|
Messaggi: n/a
|
Ti ringrazio Vincenzo1968.
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
si direi proprio di si che si riferisse all'interprete originale!
__________________
Khelidan |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:31.




















