Progettare una buona sintassi concreta è ridicolmente difficile. E sfortunatamente, anche se la sintassi migliore del mondo non può salvare una lingua zoppa, la sintassi errata può (ha) condannare (ed) buone lingue.
Se questo è un linguaggio giocattolo, "avanti tutta" dico io! Ma se vuoi creare un linguaggio pratico da usare per le persone, ho le seguenti osservazioni basate sulle mie esperienze personali. YMMV:
- focus sulla semantica e sintassi astratta della tua lingua. Questo è il nucleo di una lingua e in che modo le persone impareranno e capiranno. Scopri come gli elementi della lingua possono essere definiti, combinati e astratti. Assolutamente non lasciare che la sintassi concreta detta la semantica o sintassi astratta della tua lingua.
- parole chiave, parentesi graffe, punto e virgola - questi sono del tutto irrilevanti per quanto riguarda la sintassi e la semantica astratte. Possono esserci più sintassi concrete per lo stesso identico linguaggio.
- implementare le funzionalità come librerie di solito è preferibile implementarle come sintassi
La sintassi - è difficile da risolvere
la sintassi - è difficile da estendere
- la sintassi è difficile da comporre
La sintassi - non è accessibile in fase di esecuzione
Quindi la mia risposta alla tua domanda è: progettare prima la sintassi e la semantica astratte. Senza vederli, è molto difficile trovare una buona sintassi concreta. Una volta acquisiti, una sintassi concreta dovrebbe essere molto più facile da ottenere.
Oppure potresti andare con Lisp. ;)
Inoltre, dal momento che hai menzionato I want it to make sense by just reading the code
, dovrei sottolineare che progettare una sintassi che si legge come un semplice inglese, ma è anche semplice, non ambigua e potente non è mai stato fatto (per quanto ne so). Non credo sia possibile (anche se spero di sbagliarmi).