Ho bisogno di un programma che anzichè assemblare direttamente il codice java me lo compila in Assembly MIPS, è possibile fare qualcosa del genere? Uso Linux e windows...
Ho bisogno di un programma che anzichè assemblare direttamente il codice java me lo compila in Assembly MIPS, è possibile fare qualcosa del genere? Uso Linux e windows...
Il compilatore Java GNU (gcj) è in grado di produrre eseguibili nativi, per cui se hai una macchina MIPS puoi compilare il tuo codice Java con gcj e ottenere il codice macchina generato.
In ogni caso, a cosa ti serve?
Amaro C++, il gusto pieno dell'undefined behavior.
Non so se ho una macchina MIPS ma non penso (ho linux in architettura i686, non so se è quello che si intende, in ogni caso come faccio a sapere che tipo di macchina è?)
Se non è MIPS ma è un altra architettura, come posso far compilare un codice in MIPS? Ci sono dei modi che forzano la compilazione in mips?
Ditemi di si, mi serve per vedere come java "traduce" le varie istruzioni in linguaggio assembly, proprio per imparare questo linguaggio che è un po' difficile se non si fa un po' di pratica oltre alle cose che vengono scritte sul libro.![]()
No, i PC "normali" sono macchine con architettura Intel x86 IA32 o IA64.Originariamente inviato da Phobos21
Non so se ho una macchina MIPS ma non penso (ho linux in architettura i686, non so se è quello che si intende, in ogni caso come faccio a sapere che tipo di macchina è?)
Non ne ho idea, non ho mai usato gcj.Se non è MIPS ma è un altra architettura, come posso far compilare un codice in MIPS? Ci sono dei modi che forzano la compilazione in mips?
Credo che imparare l'assembly in questa maniera sia piacevole e utile come dare testate ad un muro. Il codice che genera un compilatore Java è un gran casino perché deve supportare tutte le facility che Java mette a disposizione (classi, garbage collector, eccetera), e soprattutto se è ottimizzato è difficile trovare la corrispondenza istruzione Java-gruppo di istruzioni assembly, perché il paradigma di programmazione è completamente diverso (le classi e i metodi Java devono essere trasformati in una sequenza di istruzioni con salti, rendendo irriconoscibile la struttura originaria) e le ottimizzazioni modificano anche pesantemente il codice (spostandolo prima o dopo, effettuando loop unrolling eccetera) per renderlo più veloce/più compatto pur mantenendo globalmente la medesima funzionalità.Ditemi di si, mi serve per vedere come java "traduce" le varie istruzioni in linguaggio assembly, proprio per imparare questo linguaggio che è un po' difficile se non si fa un po' di pratica oltre alle cose che vengono scritte sul libro.![]()
Insomma, per programmare in assembly devi pensare in maniera diversa rispetto al Java, visto che, come già detto, il paradigma di programmazione è profondamente differente.
Amaro C++, il gusto pieno dell'undefined behavior.
Penso che hai ragione ma vorrei almeno tentarci...
Finora ho solo convertito del linguaggio C in assembly, ma non sembrava affatto MIPS, quindi era inutile...
Con il C ha già più senso, visto che è un linguaggio molto più nudo e crudo e vicino all'assembly; anche qui, ti devi procurare un compilatore C per MIPS e, se non hai una macchina MIPS, cross-compilare per MIPS su x86 (ma non chiedermi come si faccia perché non ne ho la minima idea).
Amaro C++, il gusto pieno dell'undefined behavior.