Ho creato diversi compilatori scritti a mano per linguaggi molto semplici, ma ora voglio provare a sviluppare un linguaggio dinamico, simile a un Python o Ruby semplificato. Tuttavia, è stato facile per me capire come funzionano i compilatori. I compilatori primitivi traducono e basta. 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 dedichi molto più lavoro.
In breve, ci sono delle risorse che dovrei controllare considerando che so come funzionano i compilatori ma voglio migrare alla creazione di un interprete? Esistono alcune macchine virtuali disponibili per linguaggi dinamici, ma non ho problemi a implementare le mie. 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 devo scrivere un interprete, cosa bisogna fare e ci sono risorse che vanno oltre il processo?
Non voglio risorse ampie o astratte che spieghino 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 ti inizi con l'analisi lessicale o sintattica o sono estremamente astratte. Ho un compilatore funzionante, ma ora voglio trasformarlo in un interprete e aggiungere funzionalità dinamiche al linguaggio.
Non sono riuscito a trovare risorse su questo processo, potrebbe essere di portata troppo limitata o risorse sul "back-end" di un interprete senza essere troppo teorico, motivo per cui ho pubblicato qui.