Ho creato diversi compilatori scritti a mano per linguaggi molto semplici, ma ora voglio cimentarmi nello sviluppo di un linguaggio dinamico, simile a un Python o Ruby semplificato. Tuttavia, per me è stato facile capire come funzionano i compilatori. I compilatori primitivi si limitano a tradurre. Ma non posso farlo se la lingua è dinamica. Devo scrivere un interprete o una macchina virtuale che tenga traccia delle informazioni in fase di esecuzione e mi faccia lavorare molto di più.
In breve, ci sono risorse che dovrei controllare considerando che so come funzionano i compilatori ma voglio migrare alla creazione di un interprete? Ci sono alcune macchine virtuali là fuori per i linguaggi dinamici, ma non ho alcun problema con il rolling mio. Questo è tutto solo per la mia esperienza personale.
Sto cercando informazioni su come passare da un compilatore a un interprete. Se ho già creato un compilatore per il linguaggio X, ma ora cosa scrivere un interprete, cosa deve essere fatto e ci sono risorse che superano il processo?
Non voglio risorse ampie o astratte su come funzionano i compilatori o le macchine virtuali. Ho molti libri di testo sull'argomento. Tutte le risorse che ho trovato online presumono che tu abbia 0 esperienze e quindi inizi con analisi lessicali o sintattiche o sono estremamente astratte. Ho un compilatore funzionante, ma ora voglio trasformarlo in un interprete e aggiungere funzioni dinamiche al linguaggio.
Non sono riuscito a trovare risorse su questo processo, potrebbe essere un ambito troppo limitato o risorse sul "back-end" di un interprete senza essere troppo teorico, motivo per cui ho postato qui.