Attualmente sto progettando e sviluppando un linguaggio di programmazione da zero. Principalmente come esperienza di apprendimento. Anche se non è interamente correlato alla domanda, è importante conoscere un po 'del retroscena .
Ho un'idea abbastanza precisa di come trasformerò il codice della mia lingua nel codice assembly di destinazione, ma c'è un piccolo problema: quali assemblatori normalmente si usano quando si sviluppa e si crea un linguaggio di programmazione (come per generazione di codice)?
Per Windows, potrei teoricamente compilare la mia lingua nella sintassi MASM , ma non sarebbe disponibile su tutte le macchine Windows di destinazione che utilizzano il mio linguaggio di programmazione. E credo (non credermi sulla parola) ho letto da qualche parte che non ti è permesso raggrupparlo con il tuo software e ridistribuirlo.
Suppongo che si possa usare NASM , dato che funzionerebbe su Linux e ha il potenziale di lavorare anche su Windows. Ma sento che ci deve essere un altro modo. Sicuramente le persone non si sono affidate a software standalone per compilare i loro programmi in passato?
Esiste un assemblatore specifico per l'architettura in bundle con il sistema operativo in uso oppure è necessario fare affidamento su tale software sopra menzionato?
Sono sicuro che si potrebbe compilare solo a uno e zero con nessun passo intermedio di linguaggio assembly, ma suona un po 'noioso, non credi? ; -)