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 riuscivo a pensare ad altre caratteristiche del linguaggio che avrebbero interessato le persone. Essere in grado di aprire la fonte della lingua e capire come vengono 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 su stack. Quel linguaggio basato su stack viene quindi interpretato ed eseguito immediatamente o trasformato in un eseguibile CLR.
Le mie domande si riducono tutte a questo:
- Quali sono le caratteristiche / i costrutti di base di un linguaggio basato su Basic? Ho già questi costrutti di base: assegnazioni, espressioni, variabili, alcune funzioni (Casuale, ToUpper, ToLower), Looping (per e do-while / fino), If (block e single-line) Altre decisioni, input basato su console (Input ) e output (Stampa) e sub-routine (senza ancora parametri).
- Quando ho finito di aggiungere i costrutti di base al mio linguaggio, come devo diramarmi? In quale dominio (i)? In altre parole, quale direzione dovrebbe prendere il mio linguaggio di base open source una volta che tutti i costrutti generici funzionano?
Grazie per il tuo tempo,
Dominick