Come aggiungere software a una macchina? [duplicare]

0

Quando costruiamo una nuova macchina, come aggiungiamo software a quella macchina?

So che abbiamo assemblatori e compilatori che convertono il codice di alto livello in codice macchina per farlo capire. Ma avendo progettato una nuova macchina con una nuova architettura, come procedere e aggiungere assemblatori e compilatori a una macchina che comprende solo il linguaggio macchina?

Per quanto ne so, non scriviamo assemblatori o compilatori in linguaggio macchina, quindi come aggiungiamo questi programmi alla nuova macchina in modo che possa eseguire programmi in linguaggio di alto livello?

    
posta sarthak 16.08.2014 - 09:09
fonte

2 risposte

7

As far as I know, we do not write the assemblers or compilers in machine language, so how do we add these programs to the new machine so that it can run programs in high-level language?

In effetti noi facciamo , almeno se non ci sono altre catene di sviluppo disponibili per la cross-compilation. I primi computer moderni non ne avevano uno, quindi sì, le persone hanno scritto assemblatori in linguaggio macchina, poi compilatori in linguaggio assembly e infine programmi applicativi in linguaggi di livello superiore. Google "bootstrap" per ulteriori informazioni.

Oggi, naturalmente, è molto raro che non sia disponibile una catena di sviluppo cross-compiling, dato che ci sono più kit di compilatori gratuiti o quasi gratuiti che hanno la portabilità come uno dei loro obiettivi principali. In effetti, è improbabile che mai torni ai tempi in cui le nuove macchine hanno l'opzione no per lo sviluppo incrociato di qualsiasi cosa! La catena di programmi che trasformano il programma risalgono alla storia fino all'inizio dei compilatori, proprio come tutta la vita di oggi è in definitiva discendente dalle stesse cellule eoni fa, e la sua perdita sarebbe una catastrofe simile a uccidere tutte le vite più elevate e dovendo permettere alla natura di riqualificarlo da organismi unicellulari. Ma almeno in linea di principio, sì, i compilatori devono essere implementati in modo arduo a un livello inferiore a quello con cui dovrebbero lavorare.

    
risposta data 16.08.2014 - 09:20
fonte
1

Per prima cosa costruiamo assemblatori e compilatori per loro, compilando quelli per i computer esistenti (i risultati sono "incrociati", poiché vengono eseguiti su un host che non ha l'architettura di destinazione). Quelle di solito sono prima di quelle macchine che hanno quell'architettura (e usate con i simulatori per progettare i chip).

Quando lo hai, è esattamente allo stesso modo di un computer che usa un'architettura vecchia. Scrivi un loader che è in grado di caricare un file da qualche parte (HD, USB, rete), mettilo in un posto fisso e poi eseguilo e inserisci il caricatore in una ROM all'indirizzo che viene eseguito all'avvio dal tuo processore.

    
risposta data 16.08.2014 - 20:21
fonte

Leggi altre domande sui tag