Voglio provare a creare il mio linguaggio di base, con il suo compilatore di base. Tutto utilizzando Java.
Per ora, basterà abilitare il "programmatore" per stampare le cose sullo schermo.
Avevo un'idea su come farlo e quello che volevo sapere è: sarà considerato un vero "compilatore", un vero "linguaggio" e una vera "macchina virtuale"? (Tutto molto, molto semplice, ovviamente).
La mia idea era di creare un programma che fungesse da 'IDE' (editor e compilatore), e un altro che fungesse da 'macchina virtuale'.
Ciò significa che l'IDE non compilerà il codice scritto su un codice macchina esistente, come il Bytecode Java, ma in realtà verrà compilato con una sorta di codice compilato da me.
Questo codice compilato sarà comprensibile solo dal mio programma "macchina virtuale" e sarà in grado di funzionare solo all'interno di questo programma. Il programma "macchina virtuale" utilizzerà le operazioni Java di alto livello per comprendere ed eseguire il codice compilato.
Il programma "macchina virtuale" sarà un programma Java, in esecuzione sulla JVM.
La mia domanda è: Concettualmente , è considerata una macchina virtuale e "codice macchina"? In caso contrario, questo è ancora considerato un "linguaggio di programmazione", anche se è compilato bytecode può essere eseguito solo all'interno di un programma specifico?