Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Java to MIPS

  1. #1

    Java to MIPS

    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...

  2. #2
    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.

  3. #3
    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.

  4. #4
    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 è?)
    No, i PC "normali" sono macchine con architettura Intel x86 IA32 o IA64.
    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?
    Non ne ho idea, non ho mai usato gcj.
    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.
    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à.
    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.

  5. #5
    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...

  6. #6
    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.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.