Oppure

Loading
06/05/07 18:11
lorelapo
Vorrei sapere quali step seguire per creare un compilatore che generi una specie di assembly. GRAZIE:D
aaa
07/05/07 14:28
Hacker
apri un file .exe in esadecimale e trasforma dopo aver fatto il parsing del sorgente ogni istruzione in codice esadecimale:D
ovviamente all'inizio devi mettere tutti gli header degli .exe
aaa
07/05/07 15:02
lorelapo
Si questo lo sapevo già, volevo sapere cosa fare per il parsing del file.......
aaa
07/05/07 17:39
Hacker
là devi buttare un sacco di codice,ma sinceramente io non ne ho idea degli step che esegue.

Lascio parlare queste pagine di wikipedia che forse ti possono interessare:
en.wikipedia.org/wiki/…
en.wikipedia.org/wiki/…
:)
aaa
07/05/07 17:50
lorelapo
GIà viste, e cmq gli step non erano quelli del compilatore, quelli li conosco, erano quelli che dovevo seguire io per crearlo.

Il problema che mi si pone sta nel fatto che nella traduzione da un linguaggio di alto livello a uno di livello più basso (anche assembly, non necessariamente linguaggio macchina) ci sono più possibilità e comunque non sò come fare un programma che tenga a mente di non interferire con una operazione che sta eseguendo per eseguirne un altra, per esempio se c'è una informazione memorizzata nel registro x che serve da accumulatore, il programma invoca una funzione che usa il registro x cambiando inevitabilmente il suo contenuto e solo un essere umano sarebbe in grado di rendere il codice fluido e non troppo ingombrante in memoria e senza interferire con il contenuto dei registri che occupa, il problema del compilatore è che deve fare questo però seguendo un procedimento lineare, un algoritmo che una macchina esegua senza dover avere l'intelligenza di controllare che quello che fà abbia senso logico. Grazie dell'aiuto.8-|
aaa
09/05/07 18:24
lorelapo
Comunque la questione dei registri si può dire risolta per il fatto che avendo implementato due strutture LIFO (due pile) si può salvare temporaneamente grandi quantità di informazione con una, con l'altra ho risolto un'altra cosa ma sino alla prima beta non posso ancora dire cosa.
aaa