Ho finalmente iniziato a capire la complessità dietro la creazione di un interprete e un compilatore. Ho costruito diverse versioni di TinyBasic, 1964 (Dartmouth) Basic e le mie espansioni su quelle lingue prima di arrivare a questo punto. Il progetto più recente è quello che chiamo Open Source Basic ... perché non ho potuto pensare ad altre caratteristiche del linguaggio che interesserebbero le persone. Essere in grado di aprire la fonte della lingua e capire come sono fatte alcune cose complesse (come vengono eseguite la scansione, l'analisi, l'interpretazione e la compilazione)
Open Source Basic viene prima interpretato in un linguaggio basato sullo stack. Quel linguaggio basato su stack viene quindi interpretato ed eseguito immediatamente o trasformato in un eseguibile CLR.
Le mie domande si riducono a questo:
- Quali sono le caratteristiche / costrutti di base di un linguaggio di base? Ho già questi costrutti di base: Assegnazioni, Espressioni, Variabili, alcune funzioni (Casuale, ToUpper, ToLower), Looping (per e do- while / until), If (block e single-line) decisioni Else, input basato su console (Input) e output (Print) e sub-routine (senza parametri ancora).
- Quando ho terminato di aggiungere i costrutti di base nella mia lingua, come dovrei espandermi? In quale dominio? In altre parole, in che direzione deve seguire il mio linguaggio di base open source quando ho tutti i costrutti generici che funzionano?
Grazie per il tuo tempo,
Dominick