Principalmente come esercizio di apprendimento, sto scrivendo una macchina virtuale, un assemblatore e un compilatore da zero, a seconda degli strumenti esterni.Risorse sulla conversione dell'albero della sintassi sull'assemblaggio?
Credo di avere una comprensione concettuale decente di come funzionano la macchina virtuale e l'assemblatore, nonché alcune parti del compilatore.
Ecco cosa voglio sapere: Nel compilatore, supponiamo di aver trasformato il codice sorgente in un albero di sintassi. Quale processo devo seguire per convertire quindi questo albero di sintassi in assembly?
(Supponiamo che alcune semplici costrutti del linguaggio, come se e mentre. Sto cercando una spiegazione minimale e semplice qui.)
Non sono particolarmente interessato a soluzioni complesse, o soluzioni basate su strumenti esistenti . Piuttosto, mi piacerebbe qualcosa sull'ordine di una descrizione ampia e ampia di idee sulle pagine che vanno dalla sintassi al montaggio.
Qualcuno sa di tale risorsa?
Grazie :)
Sicuro. La 2a e 3a pagina del capitolo 1 di qualsiasi libro del compilatore. Ma penso che tu speri che sia tutto ciò di cui hai bisogno, e non è da poco tempo. Il problema è che tradurre linguaggi procedurali in * buon * codice macchina (anche per una macchina virtuale) richiede molti macchinari, e mentre quelle 2 pagine daranno un vago senso di ciò che è necessario, non si sarà in grado di costruire qualsiasi tipo di generatore di codice sensibile senza leggere le altre 200 pagine del libro del compilatore. –